Fix TypeScript and C++ highlighting by including sublanguage queries
This commit is contained in:
		
							parent
							
								
									e3d680a813
								
							
						
					
					
						commit
						a01275f310
					
				
					 2 changed files with 41 additions and 8 deletions
				
			
		|  | @ -7,7 +7,8 @@ edition = "2021" | ||||||
| default = ["built-in"] | default = ["built-in"] | ||||||
| built-in = [ | built-in = [ | ||||||
|     "tree-sitter-rust", "tree-sitter-javascript", "tree-sitter-regex", |     "tree-sitter-rust", "tree-sitter-javascript", "tree-sitter-regex", | ||||||
|     "tree-sitter-python", "tree-sitter-cpp", "tree-sitter-typescript", |     "tree-sitter-python", "tree-sitter-c", "tree-sitter-cpp", | ||||||
|  |     "tree-sitter-typescript", | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| [dependencies] | [dependencies] | ||||||
|  | @ -21,5 +22,6 @@ tree-sitter-rust = { version = "0.20.1", optional = true } | ||||||
| tree-sitter-javascript = { version = "0.20.0", optional = true } | tree-sitter-javascript = { version = "0.20.0", optional = true } | ||||||
| tree-sitter-regex = { git = "https://github.com/tree-sitter/tree-sitter-regex.git", rev = "e1cfca", optional = true } | tree-sitter-regex = { git = "https://github.com/tree-sitter/tree-sitter-regex.git", rev = "e1cfca", optional = true } | ||||||
| tree-sitter-python = { version = "0.19.1", optional = true } | tree-sitter-python = { version = "0.19.1", optional = true } | ||||||
|  | tree-sitter-c = { version = "0.20.1", optional = true } | ||||||
| tree-sitter-cpp = { version = "0.20.0", optional = true } | tree-sitter-cpp = { version = "0.20.0", optional = true } | ||||||
| tree-sitter-typescript = { version = "0.20.1", optional = true } | tree-sitter-typescript = { version = "0.20.1", optional = true } | ||||||
|  |  | ||||||
|  | @ -50,6 +50,8 @@ pub fn register_builtin_languages() { | ||||||
|     register_language("python", python_hl_factory); |     register_language("python", python_hl_factory); | ||||||
|     register_language("py", python_hl_factory); |     register_language("py", python_hl_factory); | ||||||
| 
 | 
 | ||||||
|  |     register_language("c", c_hl_factory); | ||||||
|  | 
 | ||||||
|     register_language("cpp", cpp_hl_factory); |     register_language("cpp", cpp_hl_factory); | ||||||
|     register_language("c++", cpp_hl_factory); |     register_language("c++", cpp_hl_factory); | ||||||
| 
 | 
 | ||||||
|  | @ -103,10 +105,23 @@ pub fn python_hl_factory() -> Result<HighlightConfiguration, QueryError> { | ||||||
|     ) |     ) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | pub fn c_hl_factory() -> Result<HighlightConfiguration, QueryError> { | ||||||
|  |     HighlightConfiguration::new( | ||||||
|  |         tree_sitter_c::language(), | ||||||
|  |         tree_sitter_c::HIGHLIGHT_QUERY, | ||||||
|  |         "", | ||||||
|  |         "", | ||||||
|  |     ) | ||||||
|  | } | ||||||
|  | 
 | ||||||
| pub fn cpp_hl_factory() -> Result<HighlightConfiguration, QueryError> { | pub fn cpp_hl_factory() -> Result<HighlightConfiguration, QueryError> { | ||||||
|     HighlightConfiguration::new( |     HighlightConfiguration::new( | ||||||
|         tree_sitter_cpp::language(), |         tree_sitter_cpp::language(), | ||||||
|         tree_sitter_cpp::HIGHLIGHT_QUERY, |         &format!( | ||||||
|  |             "{}{}", | ||||||
|  |             tree_sitter_c::HIGHLIGHT_QUERY, | ||||||
|  |             tree_sitter_cpp::HIGHLIGHT_QUERY | ||||||
|  |         ), | ||||||
|         "", |         "", | ||||||
|         "", |         "", | ||||||
|     ) |     ) | ||||||
|  | @ -115,17 +130,33 @@ pub fn cpp_hl_factory() -> Result<HighlightConfiguration, QueryError> { | ||||||
| pub fn typescript_hl_factory() -> Result<HighlightConfiguration, QueryError> { | pub fn typescript_hl_factory() -> Result<HighlightConfiguration, QueryError> { | ||||||
|     HighlightConfiguration::new( |     HighlightConfiguration::new( | ||||||
|         tree_sitter_typescript::language_typescript(), |         tree_sitter_typescript::language_typescript(), | ||||||
|         tree_sitter_typescript::HIGHLIGHT_QUERY, |         &format!( | ||||||
|         "", |             "{}{}", | ||||||
|         tree_sitter_typescript::LOCALS_QUERY, |             tree_sitter_typescript::HIGHLIGHT_QUERY, | ||||||
|  |             tree_sitter_javascript::HIGHLIGHT_QUERY | ||||||
|  |         ), | ||||||
|  |         tree_sitter_javascript::INJECTION_QUERY, | ||||||
|  |         &format!( | ||||||
|  |             "{}{}", | ||||||
|  |             tree_sitter_javascript::LOCALS_QUERY, | ||||||
|  |             tree_sitter_typescript::LOCALS_QUERY | ||||||
|  |         ), | ||||||
|     ) |     ) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| pub fn tsx_hl_factory() -> Result<HighlightConfiguration, QueryError> { | pub fn tsx_hl_factory() -> Result<HighlightConfiguration, QueryError> { | ||||||
|     HighlightConfiguration::new( |     HighlightConfiguration::new( | ||||||
|         tree_sitter_typescript::language_tsx(), |         tree_sitter_typescript::language_tsx(), | ||||||
|         tree_sitter_typescript::HIGHLIGHT_QUERY, |         &format!( | ||||||
|         "", |             "{}{}", | ||||||
|         tree_sitter_typescript::LOCALS_QUERY, |             tree_sitter_typescript::HIGHLIGHT_QUERY, | ||||||
|  |             tree_sitter_javascript::HIGHLIGHT_QUERY | ||||||
|  |         ), | ||||||
|  |         tree_sitter_javascript::INJECTION_QUERY, | ||||||
|  |         &format!( | ||||||
|  |             "{}{}", | ||||||
|  |             tree_sitter_javascript::LOCALS_QUERY, | ||||||
|  |             tree_sitter_typescript::LOCALS_QUERY | ||||||
|  |         ), | ||||||
|     ) |     ) | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue