aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--runtime/doc/insert.txt5
-rw-r--r--runtime/doc/news.txt4
-rw-r--r--runtime/ftplugin/lua.lua7
3 files changed, 15 insertions, 1 deletions
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index 31e6dd1ec4..51954e5449 100644
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -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
diff --git a/runtime/doc/news.txt b/runtime/doc/news.txt
index 33068cf53a..d79e22e174 100644
--- a/runtime/doc/news.txt
+++ b/runtime/doc/news.txt
@@ -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.
diff --git a/runtime/ftplugin/lua.lua b/runtime/ftplugin/lua.lua
index 75deb6b190..e0f7e95cf6 100644
--- a/runtime/ftplugin/lua.lua
+++ b/runtime/ftplugin/lua.lua
@@ -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<'