mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-04 09:44:31 +00:00 
			
		
		
		
	Problem: Neovim bundles treesitter parsers for bash and python but does not use them by default. This dilutes the messaging about the bundled parsers being required for functionality or reasonable out-of-the-box experience. It also increases the risk of query incompatibilities for no gain. Solution: Stop bundling bash and python parser and queries.
		
			
				
	
	
		
			35 lines
		
	
	
		
			993 B
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			993 B
		
	
	
	
		
			CMake
		
	
	
	
	
	
# Helper function to download treesitter parsers
 | 
						|
#
 | 
						|
# Single value arguments:
 | 
						|
# LANG        - Parser language
 | 
						|
# CMAKE_FILE  - Cmake file to build the parser with. Defaults to
 | 
						|
#               TreesitterParserCMakeLists.txt.
 | 
						|
function(BuildTSParser)
 | 
						|
  cmake_parse_arguments(TS
 | 
						|
    ""
 | 
						|
    "LANG;CMAKE_FILE"
 | 
						|
    ""
 | 
						|
    ${ARGN})
 | 
						|
 | 
						|
  if(NOT TS_CMAKE_FILE)
 | 
						|
    set(TS_CMAKE_FILE TreesitterParserCMakeLists.txt)
 | 
						|
  endif()
 | 
						|
 | 
						|
  set(NAME treesitter_${TS_LANG})
 | 
						|
 | 
						|
  get_externalproject_options(${NAME} ${DEPS_IGNORE_SHA})
 | 
						|
  ExternalProject_Add(${NAME}
 | 
						|
    DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/${NAME}
 | 
						|
    PATCH_COMMAND ${CMAKE_COMMAND} -E copy
 | 
						|
      ${CMAKE_CURRENT_SOURCE_DIR}/cmake/${TS_CMAKE_FILE}
 | 
						|
      ${DEPS_BUILD_DIR}/src/${NAME}/CMakeLists.txt
 | 
						|
    CMAKE_ARGS ${DEPS_CMAKE_ARGS}
 | 
						|
      -D PARSERLANG=${TS_LANG}
 | 
						|
    ${EXTERNALPROJECT_OPTIONS})
 | 
						|
endfunction()
 | 
						|
 | 
						|
foreach(lang c lua vim vimdoc query)
 | 
						|
  BuildTSParser(LANG ${lang})
 | 
						|
endforeach()
 | 
						|
BuildTSParser(LANG markdown CMAKE_FILE MarkdownParserCMakeLists.txt)
 |