Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Enable overriding of compiler arguments

  • Loading branch information...
commit 3c1ca42139f62abe12e15defaaf41a04cf9539ee 1 parent 5e40f1c
Peter Odding authored
Showing with 203 additions and 3 deletions.
  1. +5 −1 README.md
  2. +3 −2 autoload/xolox/lua.vim
  3. +195 −0 doc/luaft.txt
6 README.md
View
@@ -54,7 +54,11 @@ You can manually check the globals using the `:CheckGlobals` command.
### The `lua_compiler_name` option
-The name or path of the Lua compiler used to check for syntax errors. You can set this option to run the Lua compiler from a non-standard location or to run a dedicated syntax checker like [lualint][ll].
+The name or path of the Lua compiler used to check for syntax errors (defaults to `luac`). You can set this option to run the Lua compiler from a non-standard location or to run a dedicated syntax checker like [lualint][ll].
+
+### The `lua_compiler_args` option
+
+The argument(s) required by the compiler or syntax checker (defaults to `-p`).
### The `lua_error_format` option
5 autoload/xolox/lua.vim
View
@@ -3,7 +3,7 @@
" Last Change: June 18, 2011
" URL: http://peterodding.com/code/vim/lua-ftplugin
-let s:version = '0.6.11'
+let s:version = '0.6.12'
let s:miscdir = expand('<sfile>:p:h:h:h') . '/misc/lua-ftplugin'
let s:omnicomplete_script = s:miscdir . '/omnicomplete.lua'
let s:globals_script = s:miscdir . '/globals.lua'
@@ -73,6 +73,7 @@ endfunction
function! xolox#lua#checksyntax() " {{{1
let compiler_name = xolox#lua#getopt('lua_compiler_name', 'luac')
+ let compiler_args = xolox#lua#getopt('lua_compiler_args', '-p')
let error_format = xolox#lua#getopt('lua_error_format', 'luac: %f:%l: %m')
if !executable(compiler_name)
let message = "lua.vim %s: The configured Lua compiler"
@@ -87,7 +88,7 @@ function! xolox#lua#checksyntax() " {{{1
let &makeprg = compiler_name
let &errorformat = error_format
let winnr = winnr()
- execute 'silent make! -p' shellescape(expand('%'))
+ execute 'silent make!' compiler_args shellescape(expand('%'))
cwindow
execute winnr . 'wincmd w'
call s:highlighterrors()
195 doc/luaft.txt
View
@@ -0,0 +1,195 @@
+*luaft.txt* Lua file type plug-in for the Vim text editor
+
+The Lua [1] file type plug-in for Vim makes it easier to work with Lua source
+code in Vim by providing the following features:
+
+ - The |'includeexpr'| option is set so that the |gf| (go to file) mapping knows
+ how to resolve Lua module names using package.path [2]
+
+ - The |'include'| option is set so that Vim follows dofile() [3], loadfile() [4]
+ and require() [5] calls when looking for identifiers in included files
+ (this works together with the |'includeexpr'| option)
+
+ - An automatic command is installed that runs 'luac -p' when you save your Lua
+ scripts. If 'luac' reports any errors they are shown in the quick-fix list
+ and Vim jumps to the line of the first error. If 'luac -p' doesn't report
+ any errors a check for undefined global variables is performed by parsing
+ the output of 'luac -p -l'
+
+ - '<F1>' on a Lua function or 'method' call will try to open the relevant
+ documentation in the Lua Reference for Vim [6]
+
+ - The |'completefunc'| option is set to allow completion of Lua 5.1 keywords,
+ global variables and library members using Control-X Control-U
+
+ - The |'omnifunc'| option is set to allow dynamic completion of the variables
+ defined in all modules installed on the system using Control-X Control-O,
+ however it needs to be explicitly enabled by setting the
+ |lua_complete_omni| option because this functionality may have undesired
+ side effects! When you invoke omni completion after typing 'require '' or
+ 'require('' you get completion of module names
+
+ Screenshot of omni completion, see reference [7]
+
+ - Several |text-objects| are defined so you can jump between blocks and
+ functions
+
+ - A pretty nifty hack of the matchit plug-in (see |matchit-install|) is
+ included: When the cursor is on a 'function' or 'return' keyword the '%'
+ mapping cycles between the relevant keywords ('function', 'return', 'end'),
+ this also works for branching statements ('if', 'elseif', 'else', 'end')
+ and looping statements ('for', 'while', 'repeat', 'until', 'end')
+
+===============================================================================
+ *luaft-installation*
+Installation ~
+
+Unzip the most recent ZIP archive [8] file inside your Vim profile directory
+(usually this is '~/.vim' on UNIX and '%USERPROFILE%\vimfiles' on Windows),
+restart Vim and execute the command ':helptags ~/.vim/doc' (use ':helptags
+~\vimfiles\doc' instead on Windows). Now try it out: Edit a Lua script and try
+any of the features documented above.
+
+===============================================================================
+ *luaft-options*
+Options ~
+
+The Lua file type plug-in handles options as follows: First it looks at buffer
+local variables, then it looks at global variables and if neither exists a
+default is chosen. This means you can change how the plug-in works for
+individual buffers. For example to change the location of the Lua compiler
+used to check the syntax:
+>
+ " This sets the default value for all buffers.
+ :let g:lua_compiler_name = '/usr/local/bin/luac'
+
+ " This is how you change the value for one buffer.
+ :let b:lua_compiler_name = '/usr/local/bin/lualint'
+
+-------------------------------------------------------------------------------
+The *lua_path* option
+
+This option contains the value of 'package.path' as a string. You shouldn't
+need to change this because the plug-in is aware of $LUA_PATH [2] and if that
+isn't set the plug-in will run a Lua interpreter to get the value of
+package.path [2].
+
+-------------------------------------------------------------------------------
+The *lua_check_syntax* option
+
+When you write a Lua script to disk the plug-in automatically runs the Lua
+compiler to check for syntax errors. To disable this behavior you can set this
+option to false (0):
+>
+ let g:lua_check_syntax = 0
+
+You can manually check the syntax using the ':CheckSyntax' command.
+
+-------------------------------------------------------------------------------
+The *lua_check_globals* option
+
+When you write a Lua script to disk the plug-in automatically runs the Lua
+compiler to check for undefined global variables. To disable this behavior you
+can set this option to false (0):
+>
+ let g:lua_check_globals = 0
+
+You can manually check the globals using the ':CheckGlobals' command.
+
+-------------------------------------------------------------------------------
+The *lua_compiler_name* option
+
+The name or path of the Lua compiler used to check for syntax errors (defaults
+to 'luac'). You can set this option to run the Lua compiler from a
+non-standard location or to run a dedicated syntax checker like lualint [9].
+
+-------------------------------------------------------------------------------
+The *lua_compiler_args* option
+
+The argument(s) required by the compiler or syntax checker (defaults to '-p').
+
+-------------------------------------------------------------------------------
+The *lua_error_format* option
+
+If you use a dedicated syntax checker you may need to change this option to
+reflect the format of the messages printed by the syntax checker.
+
+-------------------------------------------------------------------------------
+The *lua_complete_keywords* option
+
+To disable completion of keywords you can set this option to false (0).
+
+-------------------------------------------------------------------------------
+The *lua_complete_globals* option
+
+To disable completion of global functions you can set this option to false
+(0).
+
+-------------------------------------------------------------------------------
+The *lua_complete_library* option
+
+To disable completion of library functions you can set this option to false
+(0).
+
+-------------------------------------------------------------------------------
+The *lua_complete_dynamic* option
+
+When you type a dot after a word the Lua file type plug-in will automatically
+start completion. To disable this behavior you can set this option to false
+(0).
+
+-------------------------------------------------------------------------------
+The *lua_complete_omni* option
+
+This option is disabled by default for two reasons:
+
+ - The omni completion support works by enumerating and loading all installed
+ modules. If module loading has side effects this can have unintended
+ consequences!
+
+ - Because all modules installed on the system are loaded, collecting the
+ completion candidates can be slow. After the first run the completion
+ candidates are cached so this will only bother you once (until you restart
+ Vim).
+
+If you want to use the omni completion despite the warnings above, execute the
+following command:
+>
+ :let g:lua_complete_omni = 1
+
+Now when you type Control-X Control-O Vim will hang for a moment, after which
+you should be presented with an enormous list of completion candidates :-)
+
+===============================================================================
+ *luaft-contact*
+Contact ~
+
+If you have questions, bug reports, suggestions, etc. the author can be
+contacted at peter@peterodding.com. The latest version is available at
+http://peterodding.com/code/vim/lua-ftplugin and http://github.com/xolox/vim-lua-ftplugin.
+If you like this plug-in please vote for it on Vim Online [10].
+
+===============================================================================
+ *luaft-license*
+License ~
+
+This software is licensed under the MIT license [11]. Copyright 2011 Peter
+Odding <peter@peterodding.com>.
+
+===============================================================================
+ *luaft-references*
+References ~
+
+[1] http://www.lua.org/
+[2] http://www.lua.org/manual/5.1/manual.html#pdf-package.path
+[3] http://www.lua.org/manual/5.1/manual.html#pdf-dofile
+[4] http://www.lua.org/manual/5.1/manual.html#pdf-loadfile
+[5] http://www.lua.org/manual/5.1/manual.html#pdf-require
+[6] http://www.vim.org/scripts/script.php?script_id=1291
+[7] http://peterodding.com/code/vim/lua-ftplugin/screenshots/omni-completion.png
+[8] http://peterodding.com/code/vim/downloads/lua-ftplugin.zip
+[9] http://lua-users.org/wiki/LuaLint
+[10] http://www.vim.org/scripts/script.php?script_id=3625
+[11] http://en.wikipedia.org/wiki/MIT_License
+
+vim: ft=help
Please sign in to comment.
Something went wrong with that request. Please try again.