Compare commits

..

No commits in common. "5bed58e55cd9d5b1198853d2c418ccb3da370229" and "40eb9aa808134c8bb474fd75b186c19e074ad9d2" have entirely different histories.

81
vimrc
View File

@ -183,8 +183,7 @@ let g:campo_custom_ctags_args = ""
let g:campo_jai_path = '' let g:campo_jai_path = ''
" Args to include when compiling a Jai file. " Args to include when compiling a Jai file.
let g:campo_jai_compiler_args = '' let g:campo_jai_build_args = ''
let g:campo_jai_metaprogram_args = ''
"||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| "|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@ -1165,57 +1164,44 @@ function! Build(optimized=0, silent=0)
endif endif
let l:is_jai = 0 let l:is_jai = 0
let l:has_jai_build_file = 0
let l:ext = tolower(expand('%:e'))
let l:current_dir = expand('%:p:h')
let l:cmd = "" let l:cmd = ""
if l:ext == "jai" let l:ext = tolower(expand('%:e'))
let l:current_dir = expand('%:h')
let l:parent_dir = expand('%:p:h')
" Check if this is a jai module with a build.jai one directory back. This
" only works when the file is directly inside the modules folder.
let l:jai_module_with_build = (tolower(l:current_dir) == "modules") && filereadable(l:current_dir . "/../build.jai")
if (l:jai_module_with_build == 1) || filereadable(l:parent_dir . "/build.jai")
" Jai build file
let l:is_jai = 1 let l:is_jai = 1
let l:cmd = "jai " . l:parent_dir . "/"
" Check for a build file in the current directory or one directory back if l:jai_module_with_build == 1
" (e.g. we're in modules/ or src/, code/, etc)
if filereadable(l:current_dir . "/build.jai") || filereadable(l:current_dir . "/../build.jai")
let l:has_jai_build_file = 1
let l:cmd = "jai " . l:current_dir . "/"
if filereadable(l:current_dir . "/build.jai") == 1
let l:cmd .= "build.jai"
else
let l:cmd .= "../build.jai" let l:cmd .= "../build.jai"
endif
else else
let l:cmd = "jai % " let l:cmd .= "build.jai"
endif
else
let l:cmd .= './build* '
if a:optimized == 1
let l:cmd .= ' -o'
endif
endif endif
if l:is_jai
let l:cmd .= ' '.g:campo_jai_compiler_args
let l:set_metaprogram_args = 0
if l:has_jai_build_file
if a:optimized == 1 if a:optimized == 1
echo "Compiling release build.jai" echo "Compiling release build.jai"
" @note We pass 'release' as a user metaprogram arg for the " @note We pass 'release' as a user command arg for the build file
" build file to parse. -release is a compiler arg and we don't " to parse. -release is a compiler arg and we don't want to use
" want to use that. Ideally the build script would ignore that " that. Ideally the build script would ignore that completely.
" completely. Also we don't bother adding an import directory
" for local modules because the build file should manage that
" sort of thing for us.
let l:cmd .= " - release" let l:cmd .= " - release"
let l:set_metaprogram_args = 1
else else
echo "Compiling debug build.jai" echo "Compiling debug build.jai"
endif endif
else
" @note We aren't importing the local modules because the build file
" should manage that sort of thing for us.
elseif l:ext == "jai"
let l:is_jai = 1
let l:cmd = "jai % "
if a:optimized == 1 if a:optimized == 1
echo "Compiling release " . expand('%:t') echo "Compiling release " . expand('%:t')
let l:cmd .= " -release" let l:cmd .= " -release"
@ -1224,18 +1210,19 @@ function! Build(optimized=0, silent=0)
endif endif
" If there's a local modules/ directory then we'll import it. " If there's a local modules/ directory then we'll import it.
if isdirectory(l:current_dir . "/modules") if isdirectory(l:parent_dir . "/modules")
let l:cmd .= " -import_dir modules" let l:cmd .= " -import_dir modules"
endif endif
else
let l:cmd .= './build* '
if a:optimized == 1
let l:cmd .= ' -o'
endif
endif endif
if g:campo_jai_compiler_args != "" if l:is_jai
if l:set_metaprogram_args == 1 let l:cmd .= ' '.g:campo_jai_build_args
let l:cmd .= ' '.g:campo_jai_metaprogram_args
else
let l:cmd .= ' - '.g:campo_jai_metaprogram_args
endif
endif
endif endif
" I was originally passing -save=2 to AsyncRun! in order to save all " I was originally passing -save=2 to AsyncRun! in order to save all