mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	feat(runtime): Lua ftplugin sets 'omnifunc', 'foldexpr' #32697
Problem: - Many other ftplugin have defined 'omnifunc', but the Lua one doesn't define one, even though there is `vim.lua_omnifunc()` - Users may want "stupid" completion to fix Lua config with `nvim --clean` in case they breaks it - Nvim doesn't port Lua foldexpr from Vim Solution: - Set 'omnifunc' to 'v:lua.vim.lua_omnifunc' in ftplugin/lua.lua - Set 'foldexpr' to use treesitter
This commit is contained in:
		| @@ -1506,6 +1506,11 @@ both major engines implemented element, even if this is not in standards it | ||||
| will be suggested. All other elements are not placed in suggestion list. | ||||
|  | ||||
|  | ||||
| LUA                                                     *ft-lua-omni* | ||||
|  | ||||
| Lua |ftplugin| sets 'omnifunc' to |vim.lua_omnifunc()|. | ||||
|  | ||||
|  | ||||
| PHP							*ft-php-omni* | ||||
|  | ||||
| Completion of PHP code requires a tags file for completion of data from | ||||
|   | ||||
| @@ -246,6 +246,10 @@ DEFAULTS | ||||
|   • 'number', 'relativenumber', 'signcolumn', and 'foldcolumn' are disabled in | ||||
|     |terminal| buffers. |terminal-config| shows how to change these defaults. | ||||
|  | ||||
| • Options: | ||||
|   • Lua |ftplugin| sets 'omnifunc' to "v:lua.vim.lua_omnifunc". | ||||
|   • Lua |ftplugin| sets 'foldexpr' to "v:lua.vim.treesitter.foldexpr()". | ||||
|  | ||||
| • Snippet: | ||||
|   • `<Tab>` in Insert and Select mode maps to `vim.snippet.jump({ direction = 1 })` | ||||
|     when a snippet is active and jumpable forwards. | ||||
|   | ||||
| @@ -1,4 +1,9 @@ | ||||
| -- use treesitter over syntax | ||||
| vim.treesitter.start() | ||||
|  | ||||
| vim.b.undo_ftplugin = (vim.b.undo_ftplugin or '') .. '\n call v:lua.vim.treesitter.stop()' | ||||
| vim.bo.omnifunc = 'v:lua.vim.lua_omnifunc' | ||||
| vim.wo[0][0].foldexpr = 'v:lua.vim.treesitter.foldexpr()' | ||||
|  | ||||
| vim.b.undo_ftplugin = (vim.b.undo_ftplugin or '') | ||||
|   .. '\n call v:lua.vim.treesitter.stop()' | ||||
|   .. '\n setl omnifunc< foldexpr<' | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Phạm Bình An
					Phạm Bình An