diff --git a/autoload/SpaceVim/layers/lang/java.vim b/autoload/SpaceVim/layers/lang/java.vim index 5f11d65ad..43c02a33d 100644 --- a/autoload/SpaceVim/layers/lang/java.vim +++ b/autoload/SpaceVim/layers/lang/java.vim @@ -146,6 +146,7 @@ function! SpaceVim#layers#lang#java#config() abort call SpaceVim#mapping#space#regesit_lang_mappings('java', function('s:language_specified_mappings')) call SpaceVim#plugins#repl#reg('java', 'jshell') call add(g:spacevim_project_rooter_patterns, 'pom.xml') + call add(g:spacevim_project_rooter_patterns, 'build.gradle') " for neomake " diff --git a/lua/spacevim/plugin/projectmanager.lua b/lua/spacevim/plugin/projectmanager.lua index a52e7e804..cc3950d44 100644 --- a/lua/spacevim/plugin/projectmanager.lua +++ b/lua/spacevim/plugin/projectmanager.lua @@ -145,9 +145,32 @@ local function change_dir(dir) end end +local function compare(d1, d2) + local al = #vim.split(d1, '/') + local bl = #vim.split(d2, '/') + -- logger.debug('al is ' .. al) + -- logger.debug('bl is ' .. bl) + -- the project_rooter_outermost is 0/false or 1 true + if sp_opt.project_rooter_outermost == 0 + or sp_opt.project_rooter_outermost == false then + if bl > al then + return false + else + return true + end + else + if al > bl then + return false + else + return true + end + end +end + local function sort_dirs(dirs) table.sort(dirs, compare) local dir = dirs[1] + -- logger.debug(vim.inspect(dirs)) local bufdir = fn.getbufvar('%', 'rootDir', '') if bufdir == dir then return '' @@ -156,16 +179,6 @@ local function sort_dirs(dirs) end end -local function compare(d1, d2) - local _, al = string.gsub(d1, '/', '') - local _, bl = string.gsub(d2, '/', '') - if sp_opt.project_rooter_outermost == 0 then - return bl - al - else - return al - bl - end -end - local function find_root_directory() local fd = fn.bufname('%') if fd == '' then