From 80a48d01be663205b92902ca3fa137706e3e88c6 Mon Sep 17 00:00:00 2001 From: ourigen <79729735+ourigen@users.noreply.github.com> Date: Fri, 12 Mar 2021 11:40:40 +0000 Subject: [PATCH] Fix texlab#GetProjectRoot (#3610) * Fix texlab GetProjectRoot * Fix indents in texlab#GetProjectRoot * Prevent texlab from starting on every tex file * Update texlab Vader tests * Fix GetProjectRoot to return parent of .git Previously, the function returned `../.git/`. We want the function to return the parent directory above that as the project root. This should help pass Vader tests. --- ale_linters/tex/texlab.vim | 5 ++++- test/command_callback/test_texlab_command_callbacks.vader | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ale_linters/tex/texlab.vim b/ale_linters/tex/texlab.vim index 5ead74b4..dd26fa0a 100644 --- a/ale_linters/tex/texlab.vim +++ b/ale_linters/tex/texlab.vim @@ -1,11 +1,14 @@ " Author: Ricardo Liang +" Author: ourigen " Description: Texlab language server (Rust rewrite) call ale#Set('tex_texlab_executable', 'texlab') call ale#Set('tex_texlab_options', '') function! ale_linters#tex#texlab#GetProjectRoot(buffer) abort - return '' + let l:git_path = ale#path#FindNearestDirectory(a:buffer, '.git') + + return !empty(l:git_path) ? fnamemodify(l:git_path, ':h:h') : '' endfunction function! ale_linters#tex#texlab#GetCommand(buffer) abort diff --git a/test/command_callback/test_texlab_command_callbacks.vader b/test/command_callback/test_texlab_command_callbacks.vader index ca678d2b..c18793da 100644 --- a/test/command_callback/test_texlab_command_callbacks.vader +++ b/test/command_callback/test_texlab_command_callbacks.vader @@ -14,7 +14,10 @@ Execute(The default executable path should be correct): AssertLinter 'texlab', ale#Escape('texlab') Execute(The project root should be detected correctly): - AssertLSPProject '' + call ale#test#SetFilename('tex_paths/sample1.tex') + silent! call mkdir('tex_paths/.git') + + AssertLSPProject ale#path#Simplify(g:dir . '/tex_paths') Execute(The executable should be configurable): let b:ale_tex_texlab_executable = 'foobar'