Files
ale/ale_linters/yara/yls.vim
TcM1911 f0c8eb4fa8 Add Yara yls support (#4886)
This adds Yara support to ALE using Avast's language server for Yara:
https://avast.github.io/yls/

A ".git" folder is used to determine the project_root so this means the
Yara rules must be in a git repo for the integration to work.

The server only have 1 optional argument (-v, --verbose). Since this is
the case, no additional configuration options are available.

---------

Co-authored-by: w0rp <w0rp@users.noreply.github.com>
2025-03-11 12:18:29 +00:00

19 lines
563 B
VimL

" Author: TcM1911
" Description: A language server for Yara.
call ale#Set('yara_yls_executable', 'yls')
function! ale_linters#yara#yls#FindProjectRoot(buffer) abort
let l:project_root = ale#path#FindNearestDirectory(a:buffer, '.git')
return !empty(l:project_root) ? (ale#path#Upwards(l:project_root)[1]) : ''
endfunction
call ale#linter#Define('yara', {
\ 'name': 'yls',
\ 'lsp': 'stdio',
\ 'executable': {b -> ale#Var(b, 'yara_yls_executable')},
\ 'command': '%e -v',
\ 'project_root': function('ale_linters#yara#yls#FindProjectRoot'),
\})