1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-01-24 02:20:03 +08:00
SpaceVim/bundle/vim-haxe/plugin/haxe.vim
2022-04-23 23:06:02 +08:00

157 lines
5.2 KiB
VimL
Vendored

if exists("g:loaded_vaxe_plugin")
finish
endif
let g:loaded_vaxe_plugin = 1
if has("python3")
let g:vaxepy = ":python3 "
elseif has("python")
let g:vaxepy = ":python "
endif
command -nargs=? -complete=file DefaultHxml call vaxe#DefaultHxml(<q-args>)
command -nargs=? -complete=file ProjectHxml call vaxe#ProjectHxml(<q-args>)
command VaxeToggleLogging let g:vaxe_logging = !g:vaxe_logging
" Lime commands
command -nargs=? -complete=file ProjectLime
\ call vaxe#lime#ProjectLime(<q-args>)
command -nargs=? -complete=customlist,vaxe#lime#Targets LimeTarget
\ call vaxe#lime#Target(<q-args>)
command -nargs=? LimeClean
\ call vaxe#lime#Clean(<q-args>)
command -nargs=? LimeUpdate
\ call vaxe#lime#Update(<q-args>)
command -nargs=? LimeRebuildHxml
\ call vaxe#lime#RebuildHxml()
" Flow commands
command -nargs=? -complete=file ProjectFlow
\ call vaxe#flow#ProjectFlow(<q-args>)
command -nargs=? -complete=customlist,vaxe#flow#Targets FlowTarget
\ call vaxe#flow#Target(<q-args>)
command -nargs=? FlowClean
\ call vaxe#flow#Clean(<q-args>)
command -nargs=? FlowRebuildHxml
\ call vaxe#flow#RebuildHxml()
" Completion Server Commands
command VaxeStopCompletionServer call vaxe#KillCacheServer()
command VaxeStartCompletionServer call vaxe#StartCacheServer()
command VaxeCtags call vaxe#Ctags()
autocmd FileType haxe setlocal commentstring=//%s
let g:tagbar_type_haxe = {
\ 'ctagstype' : 'haxe',
\ 'kinds' : [
\ 'a:abstracts',
\ 'c:classes',
\ 'e:enums',
\ 'i:interfaces',
\ 't:typedefs',
\ 'v:variables',
\ 'f:functions',
\ ]
\ }
" a short alias, since I use this all over the place
let Default = function("vaxe#util#Config")
" misc options
let g:vaxe_haxe_version = Default('g:vaxe_haxe_version', 3)
let g:vaxe_logging = Default('g:vaxe_logging', 0)
let g:vaxe_trace_absolute_path = Default('g:vaxe_trace_absolute_path', 1)
" completion options
let g:vaxe_completion_require_autowrite
\=Default('g:vaxe_completion_require_autowrite', 1)
let g:vaxe_completion_disable_optimizations
\= Default('g:vaxe_completion_disable_optimizations', 1)
let g:vaxe_completion_alter_signature
\= Default('g:vaxe_completion_alter_signature', 1)
let g:vaxe_completion_collapse_overload
\= Default('g:vaxe_completion_collapse_overload', 0)
let g:vaxe_completion_write_compiler_output
\= Default('g:vaxe_completion_write_compiler_output', 0)
let g:vaxe_completion_prevent_bufwrite_events
\= Default('g:vaxe_completion_prevent_bufwrite_events',1)
let g:vaxe_completeopt_menuone
\= Default('g:vaxe_completeopt_menuone', 1)
" cache server options
let g:vaxe_cache_server = Default('g:vaxe_cache_server', 0)
let g:vaxe_cache_server_port = Default('g:vaxe_cache_server_port', 6878)
let g:vaxe_cache_server_autostart = Default('g:vaxe_cache_server_autostart', 1)
" lime options
let g:vaxe_lime_test_on_build = Default('g:vaxe_lime_test_on_build', 1)
let g:vaxe_lime_target = Default('g:vaxe_lime_target',"")
let g:vaxe_lime_completion_target = Default('g:vaxe_lime_completion_target', 'flash')
" flow options
let g:vaxe_flow_target = Default('g:vaxe_flow_target', "")
let g:vaxe_flow_completion_target = Default('g:vaxe_flow_completion_target', 'web')
" default build options
let g:vaxe_prefer_hxml = Default('g:vaxe_prefer_hxml', "build.hxml")
let g:vaxe_prefer_lime = Default('g:vaxe_prefer_lime', "*.lime")
let g:vaxe_prefer_flow = Default('g:vaxe_prefer_flow', "*.flow")
let g:vaxe_prefer_openfl = Default('g:vaxe_prefer_openfl', "project.xml")
let g:vaxe_prefer_first_in_directory = Default('g:vaxe_prefer_first_in_directory', 1)
let g:vaxe_default_parent_search_patterns
\= Default('g:vaxe_default_parent_search_patterns'
\, [g:vaxe_prefer_lime, g:vaxe_prefer_flow, g:vaxe_prefer_openfl, g:vaxe_prefer_hxml, "*.hxml"])
let g:vaxe_set_makeprg = Default('g:vaxe_set_makeprg', 1)
" Supported 3rd party plugin options
let g:vaxe_enable_airline_defaults = Default('g:vaxe_enable_airline_defaults', 1)
let g:vaxe_enable_ycm_defaults = Default('g:vaxe_enable_ycm_defaults', 1)
let g:vaxe_enable_acp_defaults = Default('g:vaxe_enable_acp_defaults', 1)
if !exists('g:vaxe_haxe_binary')
let g:vaxe_haxe_binary = 'haxe'
endif
" YCM
if (g:vaxe_enable_ycm_defaults)
if ( exists("g:ycm_semantic_triggers") )
let g:ycm_semantic_triggers['haxe'] = ['.', '(']
else
let g:ycm_semantic_triggers = { 'haxe' : ['.', '('] }
endif
endif
" ACP
if (g:vaxe_enable_acp_defaults)
if !exists('g:acp_behavior')
let g:acp_behavior = {}
endif
function! haxe#meetsForFile(context)
return a:context =~ '\(\.\|(\)$'
endfunction
if !has_key(g:acp_behavior, 'haxe')
let g:acp_behavior['haxe'] = []
endif
let vaxe_entry = {
\ "meets" : "haxe#meetsForFile",
\ "command": "\<C-X>\<C-O>",
\ "completefunc" : "vaxe#HaxeComplete"}
call add(g:acp_behavior['haxe'] , vaxe_entry)
endif