summaryrefslogtreecommitdiff
path: root/uvim/runtime/ftplugin/lua.vim
diff options
context:
space:
mode:
Diffstat (limited to 'uvim/runtime/ftplugin/lua.vim')
-rw-r--r--uvim/runtime/ftplugin/lua.vim190
1 files changed, 0 insertions, 190 deletions
diff --git a/uvim/runtime/ftplugin/lua.vim b/uvim/runtime/ftplugin/lua.vim
deleted file mode 100644
index e3bb3a5ddf..0000000000
--- a/uvim/runtime/ftplugin/lua.vim
+++ /dev/null
@@ -1,190 +0,0 @@
-" Vim filetype plugin file.
-
-" Language: Lua
-" Maintainer: Doug Kearns <dougkearns@gmail.com>
-" Previous Maintainer: Max Ischenko <mfi@ukr.net>
-" Contributor: Dorai Sitaram <ds26@gte.com>
-" C.D. MacEachern <craig.daniel.maceachern@gmail.com>
-" Tyler Miller <tmillr@proton.me>
-" Phạm Bình An <phambinhanctb2004@gmail.com>
-" @konfekt
-" Last Change: 2025 Apr 04
-" 2025 May 06 by Vim Project update 'path' setting #17267
-
-if exists("b:did_ftplugin")
- finish
-endif
-let b:did_ftplugin = 1
-
-" keep in sync with syntax/lua.vim
-if !exists("lua_version")
- " Default is lua 5.3
- let lua_version = 5
- let lua_subversion = 3
-elseif !exists("lua_subversion")
- " lua_version exists, but lua_subversion doesn't. In this case set it to 0
- let lua_subversion = 0
-endif
-
-let s:cpo_save = &cpo
-set cpo&vim
-
-setlocal comments=:---,:--
-setlocal commentstring=--\ %s
-setlocal formatoptions-=t formatoptions+=croql
-setlocal path-=. " Lua doesn't support importing module in path related to current file like JS
-
-let &l:define = '\<function\|\<local\%(\s\+function\)\='
-
-let &l:include = '\<\%(\%(do\|load\)file\|require\)\s*('
-setlocal includeexpr=s:LuaInclude(v:fname)
-setlocal suffixesadd=.lua
-
-let b:undo_ftplugin = "setl cms< com< def< fo< inc< inex< sua< pa<"
-
-if exists("loaded_matchit") && !exists("b:match_words")
- let b:match_ignorecase = 0
- let b:match_words =
- \ '\<\%(do\|function\|if\)\>:' ..
- \ '\<\%(return\|else\|elseif\)\>:' ..
- \ '\<end\>,' ..
- \ '\<repeat\>:\<until\>,' ..
- \ '\%(--\)\=\[\(=*\)\[:]\1]'
- let b:undo_ftplugin ..= " | unlet! b:match_words b:match_ignorecase"
-endif
-
-if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
- let b:browsefilter = "Lua Source Files (*.lua)\t*.lua\n"
- if has("win32")
- let b:browsefilter ..= "All Files (*.*)\t*\n"
- else
- let b:browsefilter ..= "All Files (*)\t*\n"
- endif
- let b:undo_ftplugin ..= " | unlet! b:browsefilter"
-endif
-
-if has("folding") && get(g:, "lua_folding", 0)
- setlocal foldmethod=expr
- setlocal foldexpr=s:LuaFold()
- let b:lua_lasttick = -1
- let b:undo_ftplugin ..= " | setl foldexpr< foldmethod< | unlet! b:lua_lasttick b:lua_foldlists"
-endif
-
-" The rest of the file needs to be :sourced only once per Vim session
-if exists("s:loaded_lua") || &cp
- let &cpo = s:cpo_save
- unlet s:cpo_save
- finish
-endif
-let s:loaded_lua = 1
-
-function s:LuaInclude(fname) abort
- let lua_ver = str2float(printf("%d.%02d", g:lua_version, g:lua_subversion))
- let fname = tr(a:fname, '.', '/')
- let paths = lua_ver >= 5.03 ? [fname .. ".lua", fname .. "/init.lua"] : [fname .. ".lua"]
- for path in paths
- if filereadable(path)
- return path
- endif
- endfor
- return fname
-endfunction
-
-let s:patterns = [
- \ ['do', 'end'],
- \ ['if\s+.+\s+then', 'end'],
- \ ['repeat', 'until\s+.+'],
- \ ['for\s+.+\s+do', 'end'],
- \ ['while\s+.+\s+do', 'end'],
- \ ['function.+', 'end'],
- \ ['return\s+function.+', 'end'],
- \ ['local\s+function\s+.+', 'end'],
- \ ]
-
-function s:LuaFold() abort
- if b:lua_lasttick == b:changedtick
- return b:lua_foldlists[v:lnum - 1]
- endif
- let b:lua_lasttick = b:changedtick
-
- let b:lua_foldlists = []
- let foldlist = []
- let buf = getline(1, "$")
- for line in buf
- for t in s:patterns
- let open = 0
- let end = 0
- let tagopen = '\v^\s*' .. t[0] ..'\s*$'
- let tagend = '\v^\s*' .. t[1] ..'\s*$'
- if line =~# tagopen
- call add(foldlist, t)
- let open = 1
- break
- elseif line =~# tagend
- if len(foldlist) > 0 && line =~# foldlist[-1][1]
- call remove(foldlist, -1)
- let end = 1
- else
- let foldlist = []
- endif
- break
- endif
- endfor
- let prefix = ""
- if open == 1 | let prefix = ">" | endif
- if end == 1 | let prefix = "<" | endif
- let b:lua_foldlists += [prefix..(len(foldlist) + end)]
- endfor
-
- return b:lua_foldlists[v:lnum - 1]
-endfunction
-
-if !has('vim9script')
- let &cpo = s:cpo_save
- unlet s:cpo_save
-
- finish
-endif
-
-delfunction! s:LuaFold
-def s:LuaFold(): string
- if b:lua_lasttick == b:changedtick
- return b:lua_foldlists[v:lnum - 1]
- endif
- b:lua_lasttick = b:changedtick
-
- b:lua_foldlists = []
- var foldlist = []
- var buf = getline(1, "$")
- for line in buf
- var open = 0
- var end = 0
- for t in patterns
- var tagopen = '\v^\s*' .. t[0] .. '\s*$'
- var tagend = '\v^\s*' .. t[1] .. '\s*$'
- if line =~# tagopen
- add(foldlist, t)
- open = 1
- break
- elseif line =~# tagend
- if len(foldlist) > 0 && line =~# foldlist[-1][1]
- end = 1
- remove(foldlist, -1)
- else
- foldlist = []
- endif
- break
- endif
- endfor
- var prefix = ""
- if open == 1 | prefix = ">" | endif
- if end == 1 | prefix = "<" | endif
- b:lua_foldlists += [prefix .. (len(foldlist) + end)]
- endfor
- return b:lua_foldlists[v:lnum - 1]
-enddef
-
-let &cpo = s:cpo_save
-unlet s:cpo_save
-
-" vim: nowrap sw=2 sts=2 ts=8 noet: