Compare commits

..

19 Commits

Author SHA1 Message Date
w0rp e1c8d665d6 #3600 Implement pull model with Neovim Client
Implement the diagnostics pull model with the LSP Neovim client. We
must handle messages a little different and tweak client capabilities
for pull diagnostics to work through the Neovim client.
2025-03-23 16:08:18 +00:00
w0rp fe50a711cb Close #3600 - Implement pull diagnostics in VimL
Implement pull diagnostics in the VimL implementation so ALE is able
to track when servers are busy checking files. Only servers that
support this feature will return diagnostics these ways.
2025-03-23 16:07:46 +00:00
w0rp 19e1b5a9d3 Implement ale.queue for calling ale#Queue in Lua 2025-03-22 01:10:11 +00:00
w0rp 33a902f489 Implement ale.pad in Lua 2025-03-22 00:43:29 +00:00
w0rp a1c57918ef Implement ale.get_filename_mappings in Lua 2025-03-22 00:35:53 +00:00
w0rp 1aae83497d Add ale.has to mirror ale#Has in Lua 2025-03-22 00:04:46 +00:00
w0rp f4af0dc84b Add basic Lua ALE functions and test coverage
Ensure that basic ALE functions `ale.var`, `ale.escape`, and `ale.env`
are available in Lua. Cover all Lua code so far with busted tests,
fixing bugs where ALE variables can be set with Boolean values instead
of numbers. Document all functionality so far.
2025-03-21 23:37:35 +00:00
w0rp 7f43666fb3 Detect the Lua project root using .luarc.json 2025-03-21 12:07:10 +00:00
w0rp bcd1a12949 Implement Lua ALE setup & overhaul documentation
1. Add ale.setup and ale.setup.buffer for pure Lua configuration.
2. Update many global settings to use Booleans instead of numbers to
   make types easiert to work with in Lua.
3. Radically reformat documentation and fix errors to make
   documentation more usable for Neovim users.
2025-03-20 21:52:13 +00:00
w0rp 53f036fe9f Support g:ale_shell with the Neovim LSP client 2025-03-20 21:45:19 +00:00
w0rp 3dfebe45c6 Add Neovim TCP connections to language servers
Support TCP connections to language servers through Neovim's built in
client. In all but what is currently the nightly builds of Neovim
connections via a hostname will fail, but connections via an IP address
should function. We will still enable the built in Neovim client by
default anyway, as LSP clients very rarely connect over TCP.
2025-03-20 21:45:19 +00:00
w0rp 964e0a2e39 Supply language_id values to Neovim LSP API
Change logic so ALE's LSP implementation and the Neovim LSP client
retrieve the language_id for language clients at roughly the same time
via the same means. This makes ALE inform the language server what the
language for the language is for clients.
2025-03-20 21:45:19 +00:00
w0rp ee975196ff Fix tests for Neovim LSP integration 2025-03-20 21:45:19 +00:00
w0rp 3f7ea86ae1 Update documentation for Neovim LSP integration
Update documentation to advertise ALE's integration with Neovim's native
LSP client, and explain how functionality is integrated with ALE,
Neovim's native tools, and other plugins.
2025-03-20 21:45:18 +00:00
w0rp dd8d7cb4b4 Clean up message handling for LSP integration
Now we ought to be able to handle any kind of response for any request
we send, clean up message handling so there are fewer changes to make
to LSP code to adjust for Neovim integration.
2025-03-20 21:45:18 +00:00
w0rp 8216ee4a65 Handle other LSP capabilities via ALE
Save capabilities from language servers ALE connects to via Neovim's LSP
client and handle responses to requests ALE sends to language servers.
This enables ALE to work with Neovim's language client for its commands
while also letting users directly use the connected clients for native
Neovim keybinds and so on.
2025-03-20 21:45:18 +00:00
w0rp 9a251b2865 Remove the log_level line from Lua code 2025-03-20 21:45:18 +00:00
w0rp 61a1fcc92f Handle Neovim LSP diagnostics via ALE's functions 2025-03-20 21:45:18 +00:00
w0rp c9eb8f9d15 Start up language servers with Neovim's API
Get language servers starting and displaying diagnostics with Neovim's
API in Neovim 0.8 and up. With this set up, now ALE needs to take over
handling diagnostics returned by the language servers.
2025-03-20 21:45:18 +00:00
196 changed files with 411 additions and 3686 deletions
+2 -2
View File
@@ -41,10 +41,10 @@ install:
- ps: >- - ps: >-
if (!(Test-Path -Path C:\vim)){ if (!(Test-Path -Path C:\vim)){
Add-Type -A System.IO.Compression.FileSystem Add-Type -A System.IO.Compression.FileSystem
Invoke-WebRequest https://github.com/dense-analysis/ale/releases/download/v4.0.0/vim80-586w32.zip ` Invoke-WebRequest ftp://ftp.vim.org/pub/vim/pc/vim80-586w32.zip `
-OutFile C:\vim.zip -OutFile C:\vim.zip
[IO.Compression.ZipFile]::ExtractToDirectory('C:\vim.zip', 'C:\vim') [IO.Compression.ZipFile]::ExtractToDirectory('C:\vim.zip', 'C:\vim')
Invoke-WebRequest https://github.com/dense-analysis/ale/releases/download/v4.0.0/vim80-586rt.zip ` Invoke-WebRequest ftp://ftp.vim.org/pub/vim/pc/vim80-586rt.zip `
-OutFile C:\rt.zip -OutFile C:\rt.zip
[IO.Compression.ZipFile]::ExtractToDirectory('C:\rt.zip', 'C:\vim') [IO.Compression.ZipFile]::ExtractToDirectory('C:\rt.zip', 'C:\vim')
} }
-1
View File
@@ -1,7 +1,6 @@
--- ---
name: Report a bug name: Report a bug
labels: bug labels: bug
type: Bug
about: Report a bug with ALE. about: Report a bug with ALE.
--- ---
@@ -1,7 +1,6 @@
--- ---
name: Suggest a new linter or fixer name: Suggest a new linter or fixer
labels: new tool labels: new tool
type: Task
about: Suggest a new tool ALE can officially integrate with. about: Suggest a new tool ALE can officially integrate with.
--- ---
@@ -1,7 +1,6 @@
--- ---
name: Suggest an improvement name: Suggest an improvement
labels: enhancement labels: enhancement
type: Feature
about: Suggest some way to improve ALE, or add a new feature. about: Suggest some way to improve ALE, or add a new feature.
--- ---
+1 -2
View File
@@ -7,8 +7,7 @@
"test" "test"
], ],
"workspace.library": [ "workspace.library": [
"/usr/share/nvim/runtime/lua", "/usr/share/nvim/runtime/lua"
"/opt/homebrew/share/nvim/runtime/lua"
], ],
"runtime.pathStrict": true, "runtime.pathStrict": true,
"runtime.path": [ "runtime.path": [
-2
View File
@@ -1,2 +0,0 @@
- For `doc/ale-*.txt` help docs, right-align Vim help tags (`*...*`) to the right margin so tag lines meet ALE's alignment check.
- Keep integration/tool headings in ALE docs sorted in the expected order (alphabetical within each section), and update the corresponding table of contents entries in `doc/ale.txt` when adding/removing headings.
-8
View File
@@ -61,14 +61,6 @@ linting and fixing of code in Vim. ALE offers the following.
* Windows support * Windows support
* Well-integrated with other plugins * Well-integrated with other plugins
## Sponsorship
If you would like to donate to Dense Analysis to say thank you for ALE, please
consider visiting our [Sponsorship page](https://denseanalysis.org/sponsors/).
Funds will be used to pay for our hosting fees and research. Whilst visiting our
site, please feel free to make use of our educational resources and other
recommended tools.
## Supported Languages and Tools ## Supported Languages and Tools
ALE supports a wide variety of languages and tools. See the ALE supports a wide variety of languages and tools. See the
+13 -68
View File
@@ -2,44 +2,11 @@
" Description: ansible-lint for ansible-yaml files " Description: ansible-lint for ansible-yaml files
call ale#Set('ansible_ansible_lint_executable', 'ansible-lint') call ale#Set('ansible_ansible_lint_executable', 'ansible-lint')
call ale#Set('ansible_ansible_lint_auto_pipenv', 0)
call ale#Set('ansible_ansible_lint_auto_poetry', 0)
call ale#Set('ansible_ansible_lint_auto_uv', 0)
call ale#Set('ansible_ansible_lint_change_directory', 1)
function! ale_linters#ansible#ansible_lint#GetExecutable(buffer) abort function! ale_linters#ansible#ansible_lint#GetExecutable(buffer) abort
if (ale#Var(a:buffer, 'python_auto_pipenv')
\ || ale#Var(a:buffer, 'ansible_ansible_lint_auto_pipenv'))
\ && ale#python#PipenvPresent(a:buffer)
return 'pipenv'
endif
if (ale#Var(a:buffer, 'python_auto_poetry')
\ || ale#Var(a:buffer, 'ansible_ansible_lint_auto_poetry'))
\ && ale#python#PoetryPresent(a:buffer)
return 'poetry'
endif
if (ale#Var(a:buffer, 'python_auto_uv')
\ || ale#Var(a:buffer, 'ansible_ansible_lint_auto_uv'))
\ && ale#python#UvPresent(a:buffer)
return 'uv'
endif
return ale#Var(a:buffer, 'ansible_ansible_lint_executable') return ale#Var(a:buffer, 'ansible_ansible_lint_executable')
endfunction endfunction
function! ale_linters#ansible#ansible_lint#GetCwd(buffer) abort
if ale#Var(a:buffer, 'ansible_ansible_lint_change_directory')
" Run from project root if found, else from buffer dir.
let l:project_root = ale#python#FindProjectRoot(a:buffer)
return !empty(l:project_root) ? l:project_root : '%s:h'
endif
return ''
endfunction
function! ale_linters#ansible#ansible_lint#Handle(buffer, version, lines) abort function! ale_linters#ansible#ansible_lint#Handle(buffer, version, lines) abort
for l:line in a:lines[:10] for l:line in a:lines[:10]
if match(l:line, '^Traceback') >= 0 if match(l:line, '^Traceback') >= 0
@@ -136,50 +103,28 @@ function! ale_linters#ansible#ansible_lint#Handle(buffer, version, lines) abort
endfunction endfunction
function! ale_linters#ansible#ansible_lint#GetCommand(buffer, version) abort function! ale_linters#ansible#ansible_lint#GetCommand(buffer, version) abort
let l:executable = ale_linters#ansible#ansible_lint#GetExecutable(a:buffer) let l:commands = {
\ '>=6.0.0': '%e --nocolor -f json -x yaml %s',
let l:exec_args = l:executable =~? '\(pipenv\|poetry\|uv\)$' \ '>=5.0.0': '%e --nocolor --parseable-severity -x yaml %s',
\ ? ' run ansible-lint' \ '<5.0.0': '%e --nocolor -p %t'
\ : ''
let l:opts_map = {
\ '>=6.0.0': ' --nocolor -f json -x yaml %s',
\ '>=5.0.0': ' --nocolor --parseable-severity -x yaml %s',
\ '<5.0.0': ' --nocolor -p %t'
\} \}
let l:command = ale#semver#GTE(a:version, [6, 0]) ? l:commands['>=6.0.0'] :
let l:cmd_opts = ale#semver#GTE(a:version, [6, 0]) ? l:opts_map['>=6.0.0'] : \ ale#semver#GTE(a:version, [5, 0]) ? l:commands['>=5.0.0'] :
\ ale#semver#GTE(a:version, [5, 0]) ? l:opts_map['>=5.0.0'] : \ l:commands['<5.0.0']
\ l:opts_map['<5.0.0']
let l:command = ale#Escape(l:executable) . l:exec_args . l:cmd_opts
return l:command return l:command
endfunction endfunction
function! ale_linters#ansible#ansible_lint#RunWithVersionCheck(buffer) abort
let l:executable = ale_linters#ansible#ansible_lint#GetExecutable(a:buffer)
let l:exec_args = l:executable =~? '\(pipenv\|poetry\|uv\)$'
\ ? ' run ansible-lint'
\ : ''
let l:command = ale#Escape(l:executable) . l:exec_args . ' --version'
return ale#semver#RunWithVersionCheck(
\ a:buffer,
\ l:executable,
\ l:command,
\ function('ale_linters#ansible#ansible_lint#GetCommand'),
\)
endfunction
call ale#linter#Define('ansible', { call ale#linter#Define('ansible', {
\ 'name': 'ansible_lint', \ 'name': 'ansible_lint',
\ 'aliases': ['ansible', 'ansible-lint'], \ 'aliases': ['ansible', 'ansible-lint'],
\ 'executable': function('ale_linters#ansible#ansible_lint#GetExecutable'), \ 'executable': function('ale_linters#ansible#ansible_lint#GetExecutable'),
\ 'cwd': function('ale_linters#ansible#ansible_lint#GetCwd'), \ 'command': {buffer -> ale#semver#RunWithVersionCheck(
\ 'command': function('ale_linters#ansible#ansible_lint#RunWithVersionCheck'), \ buffer,
\ ale_linters#ansible#ansible_lint#GetExecutable(buffer),
\ '%e --version',
\ function('ale_linters#ansible#ansible_lint#GetCommand'),
\ )},
\ 'lint_file': 1, \ 'lint_file': 1,
\ 'callback': {buffer, lines -> ale#semver#RunWithVersionCheck( \ 'callback': {buffer, lines -> ale#semver#RunWithVersionCheck(
\ buffer, \ buffer,
+6 -1
View File
@@ -1,4 +1,9 @@
" Author: rhysd https://rhysd.github.io " Author: rhysd https://rhysd.github.io
" Description: Redpen, a proofreading tool (http://redpen.cc) " Description: Redpen, a proofreading tool (http://redpen.cc)
call ale#handlers#redpen#DefineLinter('asciidoc') call ale#linter#Define('asciidoc', {
\ 'name': 'redpen',
\ 'executable': 'redpen',
\ 'command': 'redpen -f asciidoc -r json %t',
\ 'callback': 'ale#handlers#redpen#HandleRedpenOutput',
\})
-43
View File
@@ -1,43 +0,0 @@
" Description: named-checkzone for bindzone
call ale#Set('bindzone_checkzone_executable', 'named-checkzone')
call ale#Set('bindzone_checkzone_options', '-c IN')
function! ale_linters#bindzone#checkzone#GetCommand(buffer) abort
return '%e' . ale#Pad(ale#Var(a:buffer, 'bindzone_checkzone_options'))
\ . ' example.com %t'
endfunction
function! ale_linters#bindzone#checkzone#Handle(buffer, lines) abort
let l:warning_pattern = '\vzone example.com/IN: (.+)$'
let l:error_pattern = '\v:(\d+): (.+)$'
let l:output = []
for l:match in ale#util#GetMatches(a:lines, l:error_pattern)
let l:lnum = l:match[1]
let l:text = l:match[2]
call add(l:output, {'text': l:text, 'lnum': l:lnum + 0, 'type': 'E'})
endfor
for l:match in ale#util#GetMatches(a:lines, l:warning_pattern)
let l:text = l:match[1]
" Ignore information messages
let l:scrub_match = matchlist(l:text, '\v(loaded serial|not loaded due to) ')
if empty(l:scrub_match)
call add(l:output, {'text': l:text, 'lnum': 0, 'type': 'W'})
endif
endfor
return l:output
endfunction
call ale#linter#Define('bindzone', {
\ 'name': 'checkzone',
\ 'executable': {b -> ale#Var(b, 'bindzone_checkzone_executable')},
\ 'command': function('ale_linters#bindzone#checkzone#GetCommand'),
\ 'callback': 'ale_linters#bindzone#checkzone#Handle',
\ 'read_buffer': 0,
\})
+11 -18
View File
@@ -5,14 +5,6 @@ call ale#Set('bitbake_oelint_adv_executable', 'oelint-adv')
call ale#Set('bitbake_oelint_adv_options', '') call ale#Set('bitbake_oelint_adv_options', '')
call ale#Set('bitbake_oelint_adv_config', '.oelint.cfg') call ale#Set('bitbake_oelint_adv_config', '.oelint.cfg')
function! ale_linters#bitbake#oelint_adv#StripAnsiCodes(line) abort
return substitute(a:line, '\e\[[0-9;]\+[mK]', '', 'g')
endfunction
function! ale_linters#bitbake#oelint_adv#RemoveBranch(line) abort
return substitute(a:line, ' \[branch:.*', '', 'g')
endfunction
function! ale_linters#bitbake#oelint_adv#Command(buffer) abort function! ale_linters#bitbake#oelint_adv#Command(buffer) abort
let l:config_file = ale#path#FindNearestFile(a:buffer, let l:config_file = ale#path#FindNearestFile(a:buffer,
\ ale#Var(a:buffer, 'bitbake_oelint_adv_config')) \ ale#Var(a:buffer, 'bitbake_oelint_adv_config'))
@@ -25,25 +17,26 @@ function! ale_linters#bitbake#oelint_adv#Command(buffer) abort
endfunction endfunction
function! ale_linters#bitbake#oelint_adv#Handle(buffer, lines) abort function! ale_linters#bitbake#oelint_adv#Handle(buffer, lines) abort
let l:pattern = '\v^(.{-}):(.{-}):(.{-}):(.{-}):(.{-})$' let l:pattern = '\v^(.+):(.+):(.+):(.+):(.+)$'
let l:output = [] let l:output = []
for l:match in ale#util#GetMatches(a:lines, l:pattern) for l:match in ale#util#GetMatches(a:lines, l:pattern)
call add(l:output, { call add(l:output, {
\ 'lnum': str2nr(l:match[2]), \ 'lnum': str2nr(l:match[2]),
\ 'type': l:match[3] is# 'error' \ 'type': l:match[3] is# 'error'
\ ? 'E' \ ? 'E' : (l:match[3] is# 'warning' ? 'W' : 'I'),
\ : (l:match[3] is# 'warning' ? 'W' : 'I'), \ 'text': StripAnsiCodes(l:match[5]),
\ 'text': ale_linters#bitbake#oelint_adv#RemoveBranch( \ 'code': l:match[4]
\ ale_linters#bitbake#oelint_adv#StripAnsiCodes(l:match[5]) \ })
\ ),
\ 'code': l:match[4],
\})
endfor endfor
return l:output return l:output
endfunction endfunction
function! StripAnsiCodes(line) abort
return substitute(a:line, '\e\[[0-9;]\+[mK]', '', 'g')
endfunction
call ale#linter#Define('bitbake', { call ale#linter#Define('bitbake', {
\ 'name': 'oelint_adv', \ 'name': 'oelint_adv',
\ 'output_stream': 'both', \ 'output_stream': 'both',
-41
View File
@@ -1,41 +0,0 @@
" Author: J. Handsel <jennpbc@posteo.net>, Thyme-87 <thyme-87@posteo.me>
" Description: use checkov for providing warnings for cloudformation via ale
call ale#Set('cloudformation_checkov_executable', 'checkov')
call ale#Set('cloudformation_checkov_options', '')
function! ale_linters#cloudformation#checkov#GetExecutable(buffer) abort
return ale#Var(a:buffer, 'cloudformation_checkov_executable')
endfunction
function! ale_linters#cloudformation#checkov#GetCommand(buffer) abort
return '%e ' . '-f %t -o json --quiet --framework cloudformation ' . ale#Var(a:buffer, 'cloudformation_checkov_options')
endfunction
function! ale_linters#cloudformation#checkov#Handle(buffer, lines) abort
let l:output = []
let l:results = get(get(ale#util#FuzzyJSONDecode(a:lines, {}), 'results', []), 'failed_checks', [])
for l:violation in l:results
call add(l:output, {
\ 'filename': l:violation['file_path'],
\ 'lnum': l:violation['file_line_range'][0],
\ 'end_lnum': l:violation['file_line_range'][1],
\ 'text': l:violation['check_name'] . ' [' . l:violation['check_id'] . ']',
\ 'detail': l:violation['check_id'] . ': ' . l:violation['check_name'] . "\n" .
\ 'For more information, see: '. l:violation['guideline'],
\ 'type': 'W',
\ })
endfor
return l:output
endfunction
call ale#linter#Define('cloudformation', {
\ 'name': 'checkov',
\ 'output_stream': 'stdout',
\ 'executable': function('ale_linters#cloudformation#checkov#GetExecutable'),
\ 'command': function('ale_linters#cloudformation#checkov#GetCommand'),
\ 'callback': 'ale_linters#cloudformation#checkov#Handle',
\})
+1 -1
View File
@@ -6,7 +6,7 @@ call ale#Set('css_stylelint_use_global', get(g:, 'ale_use_global_executables', 0
function! ale_linters#css#stylelint#GetCommand(buffer) abort function! ale_linters#css#stylelint#GetCommand(buffer) abort
return '%e ' . ale#Pad(ale#Var(a:buffer, 'css_stylelint_options')) return '%e ' . ale#Pad(ale#Var(a:buffer, 'css_stylelint_options'))
\ . ' --no-color --stdin-filename %s' \ . ' --stdin-filename %s'
endfunction endfunction
call ale#linter#Define('css', { call ale#linter#Define('css', {
+1
View File
@@ -49,6 +49,7 @@ function! ale_linters#dockerfile#hadolint#Handle(buffer, lines) abort
if l:match[5] isnot# '' if l:match[5] isnot# ''
let l:code = l:match[4] . l:match[5] let l:code = l:match[4] . l:match[5]
let l:link = ' ( ' . l:domain . l:code . ' )' let l:link = ' ( ' . l:domain . l:code . ' )'
let l:text = l:code . ': ' . l:detail
let l:detail = l:code . l:link . "\n\n" . l:detail let l:detail = l:code . l:link . "\n\n" . l:detail
else else
let l:type = 'E' let l:type = 'E'
-12
View File
@@ -1,12 +0,0 @@
" Author: Paul Monson <pmonson711@pm.me>
" Description: Expert integration (https://github.com/elixir-lang/expert)
call ale#Set('elixir_expert_executable', 'expert')
call ale#linter#Define('elixir', {
\ 'name': 'expert',
\ 'lsp': 'stdio',
\ 'executable': {b -> ale#Var(b, 'elixir_expert_executable')},
\ 'command': '%e',
\ 'project_root': function('ale#handlers#elixir#FindMixUmbrellaRoot'),
\})
-47
View File
@@ -1,47 +0,0 @@
" Author: gomfol12
" Desciption: A linter for fortran using fortitude.
call ale#Set('fortran_fortitude_executable', 'fortitude')
call ale#Set('fortran_fortitude_options', '')
let s:severity_map = {
\ 'E': 'E',
\ 'C': 'W',
\ 'OB': 'I',
\ 'MOD': 'I',
\ 'S': 'I',
\ 'PORT': 'I',
\ 'FORT': 'I',
\}
function! ale_linters#fortran#fortitude#Handle(buffer, lines) abort
let l:output = []
for l:error in ale#util#FuzzyJSONDecode(a:lines, [])
let l:prefix = matchstr(l:error['code'], '^\a\+')
let l:type = get(s:severity_map, l:prefix, 'I')
call add(l:output, {
\ 'lnum': l:error['location']['row'],
\ 'end_lnum': l:error['end_location']['row'],
\ 'col': l:error['location']['column'],
\ 'end_col': l:error['end_location']['column'],
\ 'text': l:error['message'],
\ 'type': l:type,
\ 'code': l:error['code'],
\})
endfor
return l:output
endfunction
call ale#linter#Define('fortran', {
\ 'name': 'fortitude',
\ 'output_stream': 'stdout',
\ 'executable': {b -> ale#Var(b, 'fortran_fortitude_executable')},
\ 'command': {b ->
\ '%e' . ' check --output-format json' . ale#Pad(ale#Var(b, 'fortran_fortitude_options')) . ' %s'
\ },
\ 'callback': 'ale_linters#fortran#fortitude#Handle',
\ 'lint_file': 1,
\})
+7 -24
View File
@@ -5,38 +5,26 @@ call ale#Set('go_golangci_lint_options', '')
call ale#Set('go_golangci_lint_executable', 'golangci-lint') call ale#Set('go_golangci_lint_executable', 'golangci-lint')
call ale#Set('go_golangci_lint_package', 1) call ale#Set('go_golangci_lint_package', 1)
function! ale_linters#go#golangci_lint#GetExecutable(buffer) abort function! ale_linters#go#golangci_lint#GetCommand(buffer) abort
let l:executable = ale#Var(a:buffer, 'go_golangci_lint_executable')
return l:executable
endfunction
function! ale_linters#go#golangci_lint#GetCommand(buffer, version) abort
let l:filename = expand('#' . a:buffer . ':t') let l:filename = expand('#' . a:buffer . ':t')
let l:options = ale#Var(a:buffer, 'go_golangci_lint_options') let l:options = ale#Var(a:buffer, 'go_golangci_lint_options')
let l:lint_package = ale#Var(a:buffer, 'go_golangci_lint_package') let l:lint_package = ale#Var(a:buffer, 'go_golangci_lint_package')
if ale#semver#GTE(a:version, [2, 0, 0])
let l:options = l:options
\ . ' --output.json.path stdout'
\ . ' --output.text.path stderr'
\ . ' --show-stats=0'
else
let l:options = l:options
\ . ' --out-format=json'
\ . ' --show-stats=0'
endif
if l:lint_package if l:lint_package
return ale#go#EnvString(a:buffer) return ale#go#EnvString(a:buffer)
\ . '%e run ' \ . '%e run '
\ . l:options \ . l:options
\ . ' --out-format=json'
\ . ' --show-stats=0'
endif endif
return ale#go#EnvString(a:buffer) return ale#go#EnvString(a:buffer)
\ . '%e run ' \ . '%e run '
\ . ale#Escape(l:filename) \ . ale#Escape(l:filename)
\ . ' ' . l:options \ . ' ' . l:options
\ . ' --out-format=json'
\ . ' --show-stats=0'
endfunction endfunction
function! ale_linters#go#golangci_lint#Handler(buffer, lines) abort function! ale_linters#go#golangci_lint#Handler(buffer, lines) abort
@@ -70,14 +58,9 @@ endfunction
call ale#linter#Define('go', { call ale#linter#Define('go', {
\ 'name': 'golangci-lint', \ 'name': 'golangci-lint',
\ 'executable': function('ale_linters#go#golangci_lint#GetExecutable'), \ 'executable': {b -> ale#Var(b, 'go_golangci_lint_executable')},
\ 'cwd': '%s:h', \ 'cwd': '%s:h',
\ 'command': {buffer -> ale#semver#RunWithVersionCheck( \ 'command': function('ale_linters#go#golangci_lint#GetCommand'),
\ buffer,
\ ale_linters#go#golangci_lint#GetExecutable(buffer),
\ '%e --version',
\ function('ale_linters#go#golangci_lint#GetCommand'),
\ )},
\ 'callback': 'ale_linters#go#golangci_lint#Handler', \ 'callback': 'ale_linters#go#golangci_lint#Handler',
\ 'lint_file': 1, \ 'lint_file': 1,
\}) \})
+1 -1
View File
@@ -16,7 +16,7 @@ function! ale_linters#html#stylelint#GetCommand(buffer) abort
return ale#Escape(l:executable) return ale#Escape(l:executable)
\ . (!empty(l:options) ? ' ' . l:options : '') \ . (!empty(l:options) ? ' ' . l:options : '')
\ . ' --no-color --stdin-filename %s' \ . ' --stdin-filename %s'
endfunction endfunction
call ale#linter#Define('html', { call ale#linter#Define('html', {
-34
View File
@@ -1,34 +0,0 @@
call ale#Set('html_superhtml_executable', 'superhtml')
call ale#Set('html_superhtml_use_global', get(g:, 'ale_use_global_executables', 0))
function! ale_linters#html#superhtml#GetCommand(buffer) abort
return '%e check --stdin'
endfunction
function! ale_linters#html#superhtml#Handle(buffer, lines) abort
let l:output = []
let l:pattern = '^\(.*\):\(\d\+\):\(\d\+\): \(.*\)$'
for l:line in a:lines
let l:match = matchlist(l:line, l:pattern)
if !empty(l:match)
call add(l:output, {
\ 'lnum': str2nr(l:match[2]),
\ 'col': str2nr(l:match[3]),
\ 'text': l:match[4],
\ 'type': 'E'
\})
endif
endfor
return l:output
endfunction
call ale#linter#Define('html', {
\ 'name': 'superhtml',
\ 'executable': {b -> ale#Var(b, 'html_superhtml_executable')},
\ 'command': function('ale_linters#html#superhtml#GetCommand'),
\ 'output_stream': 'stderr',
\ 'callback': 'ale_linters#html#superhtml#Handle',
\})
-46
View File
@@ -1,46 +0,0 @@
" Description: linter for jinja using j2lint
call ale#Set('jinja_j2lint_executable', 'j2lint')
call ale#Set('jinja_j2lint_options', '')
call ale#Set('jinja_j2lint_use_global', get(g:, 'ale_use_global_executables', 0))
call ale#Set('jinja_j2lint_auto_pipenv', 0)
call ale#Set('jinja_j2lint_auto_poetry', 0)
call ale#Set('jinja_j2lint_auto_uv', 0)
function! ale_linters#jinja#j2lint#GetExecutable(buffer) abort
if (ale#Var(a:buffer, 'python_auto_pipenv') || ale#Var(a:buffer, 'jinja_j2lint_auto_pipenv'))
\ && ale#python#PipenvPresent(a:buffer)
return 'pipenv'
endif
if (ale#Var(a:buffer, 'python_auto_poetry') || ale#Var(a:buffer, 'jinja_j2lint_auto_poetry'))
\ && ale#python#PoetryPresent(a:buffer)
return 'poetry'
endif
if (ale#Var(a:buffer, 'python_auto_uv') || ale#Var(a:buffer, 'jinja_j2lint_auto_uv'))
\ && ale#python#UvPresent(a:buffer)
return 'uv'
endif
return ale#python#FindExecutable(a:buffer, 'jinja_j2lint', ['j2lint'])
endfunction
function! ale_linters#jinja#j2lint#GetCommand(buffer) abort
let l:executable = ale_linters#jinja#j2lint#GetExecutable(a:buffer)
let l:exec_args = l:executable =~? 'pipenv\|poetry\|uv$'
\ ? ' run j2lint'
\ : ''
return ale#Escape(l:executable) . l:exec_args
\ . ale#Pad(ale#Var(a:buffer, 'jinja_j2lint_options'))
\ . ' %t'
endfunction
call ale#linter#Define('jinja', {
\ 'name': 'j2lint',
\ 'executable': function('ale_linters#jinja#j2lint#GetExecutable'),
\ 'command': function('ale_linters#jinja#j2lint#GetCommand'),
\ 'callback': 'ale#handlers#unix#HandleAsError',
\})
-28
View File
@@ -1,28 +0,0 @@
" Author: Benjamin Block <https://github.com/benjamindblock>
" Description: A language server for Lean 4.
function! ale_linters#lean#lake#GetProjectRoot(buffer) abort
let l:lakefile_toml = ale#path#FindNearestFile(a:buffer, 'lakefile.toml')
let l:lakefile_lean = ale#path#FindNearestFile(a:buffer, 'lakefile.lean')
if !empty(l:lakefile_toml)
return fnamemodify(l:lakefile_toml, ':p:h')
elseif !empty(l:lakefile_lean)
return fnamemodify(l:lakefile_lean, ':p:h')
else
return fnamemodify('', ':h')
endif
endfunction
call ale#Set('lean_lake_executable', 'lake')
call ale#Set('lean_lake_config', {})
call ale#linter#Define('lean', {
\ 'name': 'lake',
\ 'lsp': 'stdio',
\ 'language': 'lean',
\ 'lsp_config': {b -> ale#Var(b, 'lean_lake_config')},
\ 'executable': {b -> ale#Var(b, 'lean_lake_executable')},
\ 'command': '%e serve',
\ 'project_root': function('ale_linters#lean#lake#GetProjectRoot'),
\})
+1 -1
View File
@@ -7,7 +7,7 @@ call ale#Set('less_stylelint_use_global', get(g:, 'ale_use_global_executables',
function! ale_linters#less#stylelint#GetCommand(buffer) abort function! ale_linters#less#stylelint#GetCommand(buffer) abort
let l:options = ale#Var(a:buffer, 'less_stylelint_options') let l:options = ale#Var(a:buffer, 'less_stylelint_options')
return '%e' . ale#Pad(l:options) . ' --no-color --stdin-filename %s' return '%e' . ale#Pad(l:options) . ' --stdin-filename %s'
endfunction endfunction
call ale#linter#Define('less', { call ale#linter#Define('less', {
+3 -2
View File
@@ -33,8 +33,9 @@ function! ale_linters#markdown#pymarkdown#GetCommand(buffer) abort
\ : '' \ : ''
return ale#Escape(l:executable) . l:exec_args return ale#Escape(l:executable) . l:exec_args
\ . ale#Pad(ale#Var(a:buffer, 'markdown_pymarkdown_options')) \ . ' '
\ . ' scan-stdin' \ . ale#Var(a:buffer, 'markdown_pymarkdown_options')
\ . 'scan-stdin'
endfunction endfunction
function! ale_linters#markdown#pymarkdown#Handle(buffer, lines) abort function! ale_linters#markdown#pymarkdown#Handle(buffer, lines) abort
+6 -1
View File
@@ -1,4 +1,9 @@
" Author: rhysd https://rhysd.github.io " Author: rhysd https://rhysd.github.io
" Description: Redpen, a proofreading tool (http://redpen.cc) " Description: Redpen, a proofreading tool (http://redpen.cc)
call ale#handlers#redpen#DefineLinter('markdown') call ale#linter#Define('markdown', {
\ 'name': 'redpen',
\ 'executable': 'redpen',
\ 'command': 'redpen -f markdown -r json %t',
\ 'callback': 'ale#handlers#redpen#HandleRedpenOutput',
\})
+1 -1
View File
@@ -29,7 +29,7 @@ function! ale_linters#nix#nix#Handle(buffer, lines) abort
\ 'type': 'E', \ 'type': 'E',
\ 'lnum': l:result.line, \ 'lnum': l:result.line,
\ 'col': l:result.column, \ 'col': l:result.column,
\ 'text': substitute(l:result.raw_msg, '\e\[[0-9;]*m', '', 'g'), \ 'text': l:result.raw_msg
\}) \})
endif endif
endif endif
-49
View File
@@ -1,49 +0,0 @@
" Authors: ophirr33 <coghlan.ty@gmail.com>, rymdbar <https://rymdbar.x20.se/>
" Description: Perl::LanguageServer for perl, from cpan.org
" This should have the same value as in perl.vim
call ale#Set('perl_perl_executable', 'perl')
" Please note that perl_perl_options does not exist here.
function! ale_linters#perl#languageserver#GetProjectRoot(buffer) abort
" Makefile.PL, https://perldoc.perl.org/ExtUtils::MakeMaker
" Build.PL, https://metacpan.org/pod/Module::Build
" dist.ini, https://metacpan.org/pod/Dist::Zilla
let l:potential_roots = [ 'Makefile.PL', 'Build.PL', 'dist.ini' ]
for l:root in l:potential_roots
let l:project_root = ale#path#FindNearestFile(a:buffer, l:root)
if !empty(l:project_root)
return fnamemodify(l:project_root . '/', ':p:h:h')
endif
endfor
let l:project_root = ale#path#FindNearestFileOrDirectory(a:buffer, '.git')
if !empty(l:project_root)
return fnamemodify(l:project_root . '/', ':p:h:h')
endif
return fnamemodify(expand('#' . a:buffer . ':p:h'), ':p:h')
endfunction
call ale#Set('perl_languageserver_config', {})
function! s:get_lsp_config(buffer) abort
" This tool doesn't kick in unless workspace/didChangeConfiguration is
" called, thus this function returning a fallback dict when there is no
" config.
let l:lsp_config = ale#Var(a:buffer, 'perl_languageserver_config')
return empty(l:lsp_config) ? { 'perl': { 'enable': 1 } } : l:lsp_config
endfunction
call ale#linter#Define('perl', {
\ 'name': 'languageserver',
\ 'lsp': 'stdio',
\ 'executable': {b -> ale#Var(b, 'perl_perl_executable')},
\ 'command': '%e -MPerl::LanguageServer -ePerl::LanguageServer::run',
\ 'lsp_config': {b -> s:get_lsp_config(b)},
\ 'project_root': function('ale_linters#perl#languageserver#GetProjectRoot'),
\ })
+1 -5
View File
@@ -1,9 +1,6 @@
" Author: Arizard <https://github.com/Arizard> " Author: Arizard <https://github.com/Arizard>
" Description: PHPactor integration for ALE " Description: PHPactor integration for ALE
call ale#Set('php_phpactor_executable', 'phpactor')
call ale#Set('php_phpactor_init_options', {})
" Copied from langserver.vim " Copied from langserver.vim
function! ale_linters#php#phpactor#GetProjectRoot(buffer) abort function! ale_linters#php#phpactor#GetProjectRoot(buffer) abort
let l:composer_path = ale#path#FindNearestFile(a:buffer, 'composer.json') let l:composer_path = ale#path#FindNearestFile(a:buffer, 'composer.json')
@@ -20,8 +17,7 @@ endfunction
call ale#linter#Define('php', { call ale#linter#Define('php', {
\ 'name': 'phpactor', \ 'name': 'phpactor',
\ 'lsp': 'stdio', \ 'lsp': 'stdio',
\ 'executable': {b -> ale#Var(b, 'php_phpactor_executable')}, \ 'executable': 'phpactor',
\ 'command': '%e language-server', \ 'command': '%e language-server',
\ 'initialization_options': {b -> ale#Var(b, 'php_phpactor_init_options')},
\ 'project_root': function('ale_linters#php#phpactor#GetProjectRoot'), \ 'project_root': function('ale_linters#php#phpactor#GetProjectRoot'),
\}) \})
-8
View File
@@ -27,10 +27,6 @@ function! ale_linters#php#phpstan#GetCommand(buffer, version) abort
let l:level = ale#Var(a:buffer, 'php_phpstan_level') let l:level = ale#Var(a:buffer, 'php_phpstan_level')
if type(l:level) is v:t_number
let l:level = string(l:level)
endif
if empty(l:level) && empty(ale_linters#php#phpstan#FindConfigFile(a:buffer)) if empty(l:level) && empty(ale_linters#php#phpstan#FindConfigFile(a:buffer))
" if no configuration file is found, then use 4 as a default level " if no configuration file is found, then use 4 as a default level
let l:level = '4' let l:level = '4'
@@ -87,10 +83,6 @@ function! ale_linters#php#phpstan#FindConfigFile(buffer) abort
let l:result = ale#path#FindNearestFile(a:buffer, 'phpstan.neon.dist') let l:result = ale#path#FindNearestFile(a:buffer, 'phpstan.neon.dist')
endif endif
if empty(l:result)
let l:result = ale#path#FindNearestFile(a:buffer, 'phpstan.dist.neon')
endif
return l:result return l:result
endfunction endfunction
-57
View File
@@ -1,57 +0,0 @@
" Author: oliverralbertini <oliver.albertini@gmail.com>
" Description: A performant type-checker supporting LSP for Python 3 created by Facebook
call ale#Set('python_pyrefly_executable', 'pyrefly')
call ale#Set('python_pyrefly_use_global', get(g:, 'ale_use_global_executables', 0))
call ale#Set('python_pyrefly_auto_pipenv', 0)
call ale#Set('python_pyrefly_auto_poetry', 0)
call ale#Set('python_pyrefly_auto_uv', 0)
function! ale_linters#python#pyrefly#GetExecutable(buffer) abort
if (ale#Var(a:buffer, 'python_auto_pipenv') || ale#Var(a:buffer, 'python_pyrefly_auto_pipenv'))
\ && ale#python#PipenvPresent(a:buffer)
return 'pipenv'
endif
if (ale#Var(a:buffer, 'python_auto_poetry') || ale#Var(a:buffer, 'python_pyrefly_auto_poetry'))
\ && ale#python#PoetryPresent(a:buffer)
return 'poetry'
endif
if (ale#Var(a:buffer, 'python_auto_uv') || ale#Var(a:buffer, 'python_pyrefly_auto_uv'))
\ && ale#python#UvPresent(a:buffer)
return 'uv'
endif
return ale#python#FindExecutable(a:buffer, 'python_pyrefly', ['pyrefly'])
endfunction
function! ale_linters#python#pyrefly#GetCommand(buffer) abort
let l:executable = ale_linters#python#pyrefly#GetExecutable(a:buffer)
let l:exec_args = [
\ ale#Escape(l:executable)
\ ]
\ + (l:executable =~? '\(pipenv\|poetry\|uv\)$' ? ['run', 'pyrefly'] : [])
\ + [
\ 'lsp',
\ ]
return join(l:exec_args, ' ')
endfunction
function! ale_linters#python#pyrefly#GetCwd(buffer) abort
" Run from project root if found, else from buffer dir.
let l:project_root = ale#python#FindProjectRoot(a:buffer)
return !empty(l:project_root) ? l:project_root : '%s:h'
endfunction
call ale#linter#Define('python', {
\ 'name': 'pyrefly',
\ 'lsp': 'stdio',
\ 'executable': function('ale_linters#python#pyrefly#GetExecutable'),
\ 'command': function('ale_linters#python#pyrefly#GetCommand'),
\ 'project_root': function('ale#python#FindProjectRoot'),
\ 'completion_filter': 'ale#completion#python#CompletionItemFilter',
\ 'cwd': function('ale_linters#python#pyrefly#GetCwd'),
\})
+17 -43
View File
@@ -34,22 +34,6 @@ function! ale_linters#python#ruff#GetExecutable(buffer) abort
return ale#python#FindExecutable(a:buffer, 'python_ruff', ['ruff']) return ale#python#FindExecutable(a:buffer, 'python_ruff', ['ruff'])
endfunction endfunction
function! ale_linters#python#ruff#RunWithVersionCheck(buffer) abort
let l:executable = ale_linters#python#ruff#GetExecutable(a:buffer)
let l:exec_args = l:executable =~? '\(pipenv\|poetry\|uv\)$'
\ ? ' run ruff'
\ : ''
let l:command = ale#Escape(l:executable) . l:exec_args . ' --version'
return ale#semver#RunWithVersionCheck(
\ a:buffer,
\ l:executable,
\ l:command,
\ function('ale_linters#python#ruff#GetCommand'),
\)
endfunction
function! ale_linters#python#ruff#GetCwd(buffer) abort function! ale_linters#python#ruff#GetCwd(buffer) abort
if ale#Var(a:buffer, 'python_ruff_change_directory') if ale#Var(a:buffer, 'python_ruff_change_directory')
" Run from project root if found, else from buffer dir. " Run from project root if found, else from buffer dir.
@@ -88,35 +72,20 @@ function! ale_linters#python#ruff#Handle(buffer, lines) abort
try try
let l:item = json_decode(l:line) let l:item = json_decode(l:line)
catch catch
" If we can't decode a line, skip it. let l:item = v:null
continue
endtry endtry
if empty(l:item) if !empty(l:item)
continue call add(l:output, {
\ 'lnum': l:item.location.row,
\ 'col': l:item.location.column,
\ 'end_lnum': l:item.end_location.row,
\ 'end_col': l:item.end_location.column - 1,
\ 'code': l:item.code,
\ 'text': l:item.message,
\ 'type': l:item.code =~? '\vE\d+' ? 'E' : 'W',
\})
endif endif
if (l:item.code is# 'W291' || l:item.code is# 'W293')
\&& !ale#Var(a:buffer, 'warn_about_trailing_whitespace')
" Skip warnings for trailing whitespace if the option is off.
continue
endif
if l:item.code is# 'W391'
\&& !ale#Var(a:buffer, 'warn_about_trailing_blank_lines')
" Skip warnings for trailing blank lines if the option is off
continue
endif
call add(l:output, {
\ 'lnum': l:item.location.row,
\ 'col': l:item.location.column,
\ 'end_lnum': l:item.end_location.row,
\ 'end_col': l:item.end_location.column - 1,
\ 'code': l:item.code,
\ 'text': l:item.message,
\ 'type': l:item.code =~? '\vE\d+' ? 'E' : 'W',
\})
endfor endfor
return l:output return l:output
@@ -126,7 +95,12 @@ call ale#linter#Define('python', {
\ 'name': 'ruff', \ 'name': 'ruff',
\ 'executable': function('ale_linters#python#ruff#GetExecutable'), \ 'executable': function('ale_linters#python#ruff#GetExecutable'),
\ 'cwd': function('ale_linters#python#ruff#GetCwd'), \ 'cwd': function('ale_linters#python#ruff#GetCwd'),
\ 'command': function('ale_linters#python#ruff#RunWithVersionCheck'), \ 'command': {buffer -> ale#semver#RunWithVersionCheck(
\ buffer,
\ ale_linters#python#ruff#GetExecutable(buffer),
\ '%e --version',
\ function('ale_linters#python#ruff#GetCommand'),
\ )},
\ 'callback': 'ale_linters#python#ruff#Handle', \ 'callback': 'ale_linters#python#ruff#Handle',
\ 'output_stream': 'both', \ 'output_stream': 'both',
\ 'read_buffer': 1, \ 'read_buffer': 1,
-81
View File
@@ -1,81 +0,0 @@
" Description: ty as linter for python files
call ale#Set('python_ty_executable', 'ty')
call ale#Set('python_ty_options', '')
call ale#Set('python_ty_use_global', get(g:, 'ale_use_global_executables', 1))
call ale#Set('python_ty_change_directory', 1)
call ale#Set('python_ty_auto_pipenv', 0)
call ale#Set('python_ty_auto_poetry', 0)
call ale#Set('python_ty_auto_uv', 0)
function! ale_linters#python#ty#GetExecutable(buffer) abort
if (ale#Var(a:buffer, 'python_auto_pipenv') || ale#Var(a:buffer, 'python_ty_auto_pipenv'))
\ && ale#python#PipenvPresent(a:buffer)
return 'pipenv'
endif
if (ale#Var(a:buffer, 'python_auto_poetry') || ale#Var(a:buffer, 'python_ty_auto_poetry'))
\ && ale#python#PoetryPresent(a:buffer)
return 'poetry'
endif
if (ale#Var(a:buffer, 'python_auto_uv') || ale#Var(a:buffer, 'python_ty_auto_uv'))
\ && ale#python#UvPresent(a:buffer)
return 'uv'
endif
return ale#python#FindExecutable(a:buffer, 'python_ty', ['ty'])
endfunction
function! ale_linters#python#ty#GetCwd(buffer) abort
if ale#Var(a:buffer, 'python_ty_change_directory')
" Run from project root if found, else from buffer dir.
let l:project_root = ale#python#FindProjectRoot(a:buffer)
return !empty(l:project_root) ? l:project_root : '%s:h'
endif
return ''
endfunction
function! ale_linters#python#ty#GetCommand(buffer) abort
let l:executable = ale_linters#python#ty#GetExecutable(a:buffer)
let l:exec_args = l:executable =~? '\(pipenv\|poetry\|uv\)$' ? ' run ty ' : ''
let l:exec_args = l:exec_args . ' check --output-format gitlab '
return ale#Escape(l:executable) . l:exec_args . ale#Pad(ale#Var(a:buffer, 'python_ty_options')) . ' %s'
endfunction
function! ale_linters#python#ty#Handle(buffer, lines) abort
let l:output = []
let l:items = json_decode(join(a:lines, ''))
if empty(l:items)
return l:output
endif
for l:item in l:items
call add(l:output, {
\ 'lnum': l:item.location.positions.begin.line,
\ 'col': l:item.location.positions.begin.column,
\ 'end_lnum': l:item.location.positions.end.line,
\ 'end_col': l:item.location.positions.end.column,
\ 'code': l:item.check_name,
\ 'text': l:item.description,
\ 'type': l:item.severity =~? 'major' ? 'E' : 'W',
\})
endfor
return l:output
endfunction
call ale#linter#Define('python', {
\ 'name': 'ty',
\ 'executable': function('ale_linters#python#ty#GetExecutable'),
\ 'cwd': function('ale_linters#python#ty#GetCwd'),
\ 'command': function('ale_linters#python#ty#GetCommand'),
\ 'callback': 'ale_linters#python#ty#Handle',
\ 'output_stream': 'stdout',
\})
+6 -1
View File
@@ -1,4 +1,9 @@
" Author: rhysd https://rhysd.github.io " Author: rhysd https://rhysd.github.io
" Description: Redpen, a proofreading tool (http://redpen.cc) " Description: Redpen, a proofreading tool (http://redpen.cc)
call ale#handlers#redpen#DefineLinter('review') call ale#linter#Define('review', {
\ 'name': 'redpen',
\ 'executable': 'redpen',
\ 'command': 'redpen -f review -r json %t',
\ 'callback': 'ale#handlers#redpen#HandleRedpenOutput',
\})
-25
View File
@@ -1,25 +0,0 @@
" Author: Benjamin Block <https://github.com/benjamindblock>
" Description: A language server for Roc.
function! ale_linters#roc#roc_language_server#GetProjectRoot(buffer) abort
let l:roc_main_file = ale#path#FindNearestFile(a:buffer, 'main.roc')
if !empty(l:roc_main_file)
return fnamemodify(l:roc_main_file, ':p:h')
else
return fnamemodify('', ':h')
endif
endfunction
call ale#Set('roc_roc_language_server_executable', 'roc_language_server')
call ale#Set('roc_roc_language_server_config', {})
call ale#linter#Define('roc', {
\ 'name': 'roc_language_server',
\ 'lsp': 'stdio',
\ 'language': 'roc',
\ 'lsp_config': {b -> ale#Var(b, 'roc_roc_language_server_config')},
\ 'executable': {b -> ale#Var(b, 'roc_roc_language_server_executable')},
\ 'command': '%e',
\ 'project_root': function('ale_linters#roc#roc_language_server#GetProjectRoot'),
\})
+6 -1
View File
@@ -1,4 +1,9 @@
" Author: rhysd https://rhysd.github.io " Author: rhysd https://rhysd.github.io
" Description: Redpen, a proofreading tool (http://redpen.cc) " Description: Redpen, a proofreading tool (http://redpen.cc)
call ale#handlers#redpen#DefineLinter('rst') call ale#linter#Define('rst', {
\ 'name': 'redpen',
\ 'executable': 'redpen',
\ 'command': 'redpen -f rest -r json %t',
\ 'callback': 'ale#handlers#redpen#HandleRedpenOutput',
\})
+2 -3
View File
@@ -1,7 +1,6 @@
call ale#Set('ruby_sorbet_executable', 'srb') call ale#Set('ruby_sorbet_executable', 'srb')
call ale#Set('ruby_sorbet_options', '') call ale#Set('ruby_sorbet_options', '')
call ale#Set('ruby_sorbet_enable_watchman', 0) call ale#Set('ruby_sorbet_enable_watchman', 0)
call ale#Set('ruby_sorbet_initialization_options', { 'highlightUntyped': v:false })
function! ale_linters#ruby#sorbet#GetCommand(buffer) abort function! ale_linters#ruby#sorbet#GetCommand(buffer) abort
let l:executable = ale#Var(a:buffer, 'ruby_sorbet_executable') let l:executable = ale#Var(a:buffer, 'ruby_sorbet_executable')
@@ -22,6 +21,6 @@ call ale#linter#Define('ruby', {
\ 'language': 'ruby', \ 'language': 'ruby',
\ 'executable': {b -> ale#Var(b, 'ruby_sorbet_executable')}, \ 'executable': {b -> ale#Var(b, 'ruby_sorbet_executable')},
\ 'command': function('ale_linters#ruby#sorbet#GetCommand'), \ 'command': function('ale_linters#ruby#sorbet#GetCommand'),
\ 'project_root': function('ale#ruby#FindProjectRoot'), \ 'project_root': function('ale#ruby#FindProjectRoot')
\ 'initialization_options': {b -> ale#Var(b, 'ruby_sorbet_initialization_options')}
\}) \})
+1 -1
View File
@@ -9,6 +9,6 @@ call ale#linter#Define('sass', {
\ 'executable': {b -> ale#path#FindExecutable(b, 'sass_stylelint', [ \ 'executable': {b -> ale#path#FindExecutable(b, 'sass_stylelint', [
\ 'node_modules/.bin/stylelint', \ 'node_modules/.bin/stylelint',
\ ])}, \ ])},
\ 'command': '%e --no-color --stdin-filename %s', \ 'command': '%e --stdin-filename %s',
\ 'callback': 'ale#handlers#css#HandleStyleLintFormat', \ 'callback': 'ale#handlers#css#HandleStyleLintFormat',
\}) \})
-1
View File
@@ -13,7 +13,6 @@ function! ale_linters#scala#metals#GetProjectRoot(buffer) abort
let l:potential_roots = [ let l:potential_roots = [
\ 'build.sc', \ 'build.sc',
\ 'build.mill',
\ 'build.sbt', \ 'build.sbt',
\ '.bloop', \ '.bloop',
\ '.metals', \ '.metals',
+1 -1
View File
@@ -6,7 +6,7 @@ call ale#Set('scss_stylelint_use_global', get(g:, 'ale_use_global_executables',
function! ale_linters#scss#stylelint#GetCommand(buffer) abort function! ale_linters#scss#stylelint#GetCommand(buffer) abort
return '%e ' . ale#Pad(ale#Var(a:buffer, 'scss_stylelint_options')) return '%e ' . ale#Pad(ale#Var(a:buffer, 'scss_stylelint_options'))
\ . ' --no-color --stdin-filename %s' \ . ' --stdin-filename %s'
endfunction endfunction
call ale#linter#Define('scss', { call ale#linter#Define('scss', {
-1
View File
@@ -25,7 +25,6 @@ endfunction
call ale#linter#Define('sh', { call ale#linter#Define('sh', {
\ 'name': 'language_server', \ 'name': 'language_server',
\ 'aliases': ['bash-language-server'],
\ 'lsp': 'stdio', \ 'lsp': 'stdio',
\ 'executable': function('ale_linters#sh#language_server#GetExecutable'), \ 'executable': function('ale_linters#sh#language_server#GetExecutable'),
\ 'command': function('ale_linters#sh#language_server#GetCommand'), \ 'command': function('ale_linters#sh#language_server#GetCommand'),
+1 -1
View File
@@ -7,7 +7,7 @@ call ale#Set('stylus_stylelint_use_global', get(g:, 'ale_use_global_executables'
function! ale_linters#stylus#stylelint#GetCommand(buffer) abort function! ale_linters#stylus#stylelint#GetCommand(buffer) abort
return '%e' return '%e'
\ . ale#Pad(ale#Var(a:buffer, 'stylus_stylelint_options')) \ . ale#Pad(ale#Var(a:buffer, 'stylus_stylelint_options'))
\ . ' --no-color --stdin-filename %s' \ . ' --stdin-filename %s'
endfunction endfunction
call ale#linter#Define('stylus', { call ale#linter#Define('stylus', {
+1 -1
View File
@@ -8,7 +8,7 @@ call ale#Set('sugarss_stylelint_use_global', get(g:, 'ale_use_global_executables
function! ale_linters#sugarss#stylelint#GetCommand(buffer) abort function! ale_linters#sugarss#stylelint#GetCommand(buffer) abort
return '%e ' . ale#Pad(ale#Var(a:buffer, 'sugarss_stylelint_options')) return '%e ' . ale#Pad(ale#Var(a:buffer, 'sugarss_stylelint_options'))
\ . ' --syntax=sugarss' \ . ' --syntax=sugarss'
\ . ' --no-color --stdin-filename %s' \ . ' --stdin-filename %s'
endfunction endfunction
call ale#linter#Define('sugarss', { call ale#linter#Define('sugarss', {
+6 -1
View File
@@ -1,4 +1,9 @@
" Author: rhysd https://rhysd.github.io " Author: rhysd https://rhysd.github.io
" Description: Redpen, a proofreading tool (http://redpen.cc) " Description: Redpen, a proofreading tool (http://redpen.cc)
call ale#handlers#redpen#DefineLinter('tex') call ale#linter#Define('tex', {
\ 'name': 'redpen',
\ 'executable': 'redpen',
\ 'command': 'redpen -f latex -r json %t',
\ 'callback': 'ale#handlers#redpen#HandleRedpenOutput',
\})
+6 -1
View File
@@ -1,4 +1,9 @@
" Author: rhysd https://rhysd.github.io " Author: rhysd https://rhysd.github.io
" Description: Redpen, a proofreading tool (http://redpen.cc) " Description: Redpen, a proofreading tool (http://redpen.cc)
call ale#handlers#redpen#DefineLinter('text') call ale#linter#Define('text', {
\ 'name': 'redpen',
\ 'executable': 'redpen',
\ 'command': 'redpen -f plain -r json %t',
\ 'callback': 'ale#handlers#redpen#HandleRedpenOutput',
\})
-51
View File
@@ -1,51 +0,0 @@
" Author: Ben Boeckel <github@me.benboeckel.net>
" Description: TOML Formatter / Linter / Language Server
call ale#Set('toml_tombi_executable', 'tombi')
call ale#Set('toml_tombi_lsp_options', '')
call ale#Set('toml_tombi_online', 0)
function! ale_linters#toml#tombi#GetCommand(buffer) abort
let l:offline = ''
if !ale#Var(a:buffer, 'toml_tombi_online')
let l:offline = '--offline'
endif
return '%e lsp'
\ . ale#Pad(l:offline)
\ . ale#Pad(ale#Var(a:buffer, 'toml_tombi_lsp_options'))
endfunction
function! ale_linters#toml#tombi#GetProjectRoot(buffer) abort
" Try to find nearest tombi.toml
let l:tombiconfig_file = ale#path#FindNearestFile(a:buffer, 'tombi.toml')
if !empty(l:tombiconfig_file)
return fnamemodify(l:tombiconfig_file . '/', ':p:h:h')
endif
" Try to find nearest pyproject.toml
let l:pyproject_file = ale#path#FindNearestFile(a:buffer, 'pyproject.toml')
if !empty(l:pyproject_file)
return fnamemodify(l:pyproject_file . '/', ':p:h:h')
endif
" Try to find nearest `git` directory
let l:gitdir = ale#path#FindNearestFile(a:buffer, '.git')
if !empty(l:gitdir)
return fnamemodify(l:gitdir . '/', ':p:h:h')
endif
return ''
endfunction
call ale#linter#Define('toml', {
\ 'name': 'tombi',
\ 'lsp': 'stdio',
\ 'executable': {b -> ale#Var(b, 'toml_tombi_executable')},
\ 'command': function('ale_linters#toml#tombi#GetCommand'),
\ 'project_root': function('ale_linters#toml#tombi#GetProjectRoot'),
\})
-3
View File
@@ -9,9 +9,7 @@ endif
" --lint-only " --lint-only
function! ale_linters#verilog#slang#GetCommand(buffer) abort function! ale_linters#verilog#slang#GetCommand(buffer) abort
return 'slang -Weverything ' return 'slang -Weverything '
\ . '--diag-abs-paths '
\ . '-I%s:h ' \ . '-I%s:h '
\ . '-y%s:h '
\ . ale#Var(a:buffer, 'verilog_slang_options') .' ' \ . ale#Var(a:buffer, 'verilog_slang_options') .' '
\ . '%t' \ . '%t'
endfunction endfunction
@@ -30,7 +28,6 @@ function! ale_linters#verilog#slang#Handle(buffer, lines) abort
for l:match in ale#util#GetMatches(a:lines, l:pattern) for l:match in ale#util#GetMatches(a:lines, l:pattern)
let l:item = { let l:item = {
\ 'filename': l:match[1],
\ 'lnum': str2nr(l:match[2]), \ 'lnum': str2nr(l:match[2]),
\ 'type': (l:match[4] is# 'error') ? 'E' : 'W', \ 'type': (l:match[4] is# 'error') ? 'E' : 'W',
\ 'text': s:RemoveUnicodeQuotes(l:match[5]), \ 'text': s:RemoveUnicodeQuotes(l:match[5]),
-43
View File
@@ -1,43 +0,0 @@
" Author: Nicolas Derumigny <https://github.com/nicolasderumigny>
" Description: Verible LSP for verilog
call ale#Set('verilog_verible_ls_options', '--rules_config_search')
call ale#Set('verilog_verible_ls_rules', '')
call ale#Set('verilog_verible_ls_executable', 'verible-verilog-ls')
call ale#Set('verilog_verible_ls_config', {})
function! ale_linters#verilog#verible_ls#GetProjectRoot(buffer) abort
let l:git_dir = ale#path#FindNearestFile(a:buffer, 'verible.filelist')
if !empty(l:git_dir)
return fnamemodify(l:git_dir, ':p:h')
else
return fnamemodify('', ':h')
endif
endfunction
function! ale_linters#verilog#verible_ls#GetCommand(buffer) abort
let l:command = ale#Escape(ale#Var(a:buffer, 'verilog_verible_ls_executable'))
let l:options = ale#Var(a:buffer, 'verilog_verible_ls_options')
let l:rules = ale#Var(a:buffer, 'verilog_verible_ls_rules')
if l:options isnot# ''
let l:command .= ' ' . l:options
endif
if l:rules isnot# ''
let l:command .= ' --rules=' . l:rules
endif
return l:command
endfunction
call ale#linter#Define('verilog', {
\ 'name': 'verible_ls',
\ 'lsp': 'stdio',
\ 'lsp_config': {b -> ale#Var(b, 'verilog_verible_ls_config')},
\ 'executable': {b -> ale#Var(b, 'verilog_verible_ls_executable')},
\ 'command': function('ale_linters#verilog#verible_ls#GetCommand') ,
\ 'project_root': function('ale_linters#verilog#verible_ls#GetProjectRoot'),
\})
-1
View File
@@ -10,7 +10,6 @@ function! ale_linters#verilog#verilator#GetCommand(buffer) abort
" the path to the current file is systematically added to the search path " the path to the current file is systematically added to the search path
return 'verilator --lint-only -Wall -Wno-DECLFILENAME ' return 'verilator --lint-only -Wall -Wno-DECLFILENAME '
\ . '-I%s:h ' \ . '-I%s:h '
\ . '-y %s:h '
\ . ale#Var(a:buffer, 'verilog_verilator_options') .' ' \ . ale#Var(a:buffer, 'verilog_verilator_options') .' '
\ . '%t' \ . '%t'
endfunction endfunction
-2
View File
@@ -12,8 +12,6 @@ let g:__ale_c_project_filenames = ['.git/HEAD', 'configure', 'Makefile', 'CMakeL
let g:ale_c_build_dir_names = get(g:, 'ale_c_build_dir_names', [ let g:ale_c_build_dir_names = get(g:, 'ale_c_build_dir_names', [
\ 'build', \ 'build',
\ 'build/Debug',
\ 'build/Release',
\ 'bin', \ 'bin',
\]) \])
+1 -2
View File
@@ -23,7 +23,7 @@ function! ale#cursor#TruncatedEcho(original_message) abort
" Change tabs to spaces. " Change tabs to spaces.
let l:message = substitute(l:message, "\t", ' ', 'g') let l:message = substitute(l:message, "\t", ' ', 'g')
" Remove any newlines in the message. " Remove any newlines in the message.
let l:message = substitute(l:message, "\n", ' ', 'g') let l:message = substitute(l:message, "\n", '', 'g')
" Convert indentation groups into single spaces for better legibility when " Convert indentation groups into single spaces for better legibility when
" put on a single line " put on a single line
let l:message = substitute(l:message, ' \+', ' ', 'g') let l:message = substitute(l:message, ' \+', ' ', 'g')
@@ -93,7 +93,6 @@ function! ale#cursor#EchoCursorWarning(...) abort
if !empty(l:loc) if !empty(l:loc)
let l:format = ale#Var(l:buffer, 'echo_msg_format') let l:format = ale#Var(l:buffer, 'echo_msg_format')
let l:msg = ale#GetLocItemMessage(l:loc, l:format) let l:msg = ale#GetLocItemMessage(l:loc, l:format)
call ale#cursor#TruncatedEcho(l:msg) call ale#cursor#TruncatedEcho(l:msg)
let l:info.echoed = 1 let l:info.echoed = 1
elseif get(l:info, 'echoed') elseif get(l:info, 'echoed')
+1 -1
View File
@@ -78,7 +78,7 @@ function! ale#fix#ApplyFixes(buffer, output) abort
if !l:data.ignore_file_changed_errors if !l:data.ignore_file_changed_errors
" no-custom-checks " no-custom-checks
echom 'The file was changed before fixing finished' echoerr 'The file was changed before fixing finished'
endif endif
return return
-35
View File
@@ -192,11 +192,6 @@ let s:default_registry = {
\ 'suggested_filetypes': ['python'], \ 'suggested_filetypes': ['python'],
\ 'description': 'Tidy Python imports with pyflyby.', \ 'description': 'Tidy Python imports with pyflyby.',
\ }, \ },
\ 'unimport': {
\ 'function': 'ale#fixers#unimport#Fix',
\ 'suggested_filetypes': ['python'],
\ 'description': 'unimport fixer',
\ },
\ 'importjs': { \ 'importjs': {
\ 'function': 'ale#fixers#importjs#Fix', \ 'function': 'ale#fixers#importjs#Fix',
\ 'suggested_filetypes': ['javascript'], \ 'suggested_filetypes': ['javascript'],
@@ -727,36 +722,6 @@ let s:default_registry = {
\ 'suggested_filetypes': ['typst'], \ 'suggested_filetypes': ['typst'],
\ 'description': 'A formatter for Typst files', \ 'description': 'A formatter for Typst files',
\ }, \ },
\ 'roc_format': {
\ 'function': 'ale#fixers#roc_format#Fix',
\ 'suggested_filetypes': ['roc'],
\ 'description': 'Formats Roc files.',
\ },
\ 'roc_annotate': {
\ 'function': 'ale#fixers#roc_annotate#Fix',
\ 'suggested_filetypes': ['roc'],
\ 'description': 'Annotates all top-level definitions in Roc files.',
\ },
\ 'tombi_format': {
\ 'function': 'ale#fixers#tombi_format#Fix',
\ 'suggested_filetypes': ['toml'],
\ 'description': 'Formats TOML files',
\ },
\ 'tombi_lint': {
\ 'function': 'ale#fixers#tombi_lint#Fix',
\ 'suggested_filetypes': ['toml'],
\ 'description': 'Lints TOML files',
\ },
\ 'verible_format': {
\ 'function': 'ale#fixers#verible_format#Fix',
\ 'suggested_filetypes': ['verilog'],
\ 'description': 'Formats verilog files using verible.',
\ },
\ 'markdownlint': {
\ 'function': 'ale#fixers#markdownlint#Fix',
\ 'suggested_filetypes': ['markdown'],
\ 'description': 'Fix markdown files with markdownlint.',
\ },
\} \}
" Reset the function registry to the default entries. " Reset the function registry to the default entries.
+4 -3
View File
@@ -1,11 +1,12 @@
function! ale#fixers#biome#Fix(buffer) abort function! ale#fixers#biome#Fix(buffer) abort
let l:executable = ale#handlers#biome#GetExecutable(a:buffer) let l:executable = ale#handlers#biome#GetExecutable(a:buffer)
let l:options = ale#Var(a:buffer, 'biome_options') let l:options = ale#Var(a:buffer, 'biome_options')
let l:unsafe = ale#Var(a:buffer, 'biome_fixer_apply_unsafe') ? ' --unsafe' : '' let l:apply = ale#Var(a:buffer, 'biome_fixer_apply_unsafe') ? '--apply-unsafe' : '--apply'
return { return {
\ 'command': ale#Escape(l:executable) . ' check ' \ 'read_temporary_file': 1,
\ . '--write --stdin-file-path %s' . l:unsafe \ 'command': ale#Escape(l:executable) . ' check ' . l:apply
\ . (!empty(l:options) ? ' ' . l:options : '') \ . (!empty(l:options) ? ' ' . l:options : '')
\ . ' %t'
\} \}
endfunction endfunction
+1 -1
View File
@@ -22,7 +22,7 @@ function! ale#fixers#clangformat#Fix(buffer) abort
let l:use_local_file = ale#Var(a:buffer, 'c_clangformat_use_local_file') let l:use_local_file = ale#Var(a:buffer, 'c_clangformat_use_local_file')
if l:style_option isnot# '' if l:style_option isnot# ''
let l:style_option = '-style=' . ale#Escape(l:style_option) let l:style_option = '-style=' . "'" . l:style_option . "'"
endif endif
if l:use_local_file if l:use_local_file
+1 -2
View File
@@ -17,11 +17,10 @@ let s:variables = {
\} \}
function! ale#fixers#erlang_mode#Fix(buffer) abort function! ale#fixers#erlang_mode#Fix(buffer) abort
let l:emacs_executable = let emacs_executable =
\ ale#Var(a:buffer, 'erlang_erlang_mode_emacs_executable') \ ale#Var(a:buffer, 'erlang_erlang_mode_emacs_executable')
let l:exprs = [ let l:exprs = [
\ '(setq enable-local-variables :safe)',
\ s:SetqDefault(a:buffer, s:variables), \ s:SetqDefault(a:buffer, s:variables),
\ '(erlang-mode)', \ '(erlang-mode)',
\ '(font-lock-fontify-region (point-min) (point-max))', \ '(font-lock-fontify-region (point-min) (point-max))',
+20 -36
View File
@@ -1,48 +1,32 @@
" Author: Ian Stapleton Cordasco <graffatcolmingov@gmail.com> " Author: Ian Stapleton Cordasco <graffatcolmingov@gmail.com>
" Description: Run golangci-lint with the --fix flag to autofix some issues " Description: Run golangci-lint with the --fix flag to autofix some issues
call ale#Set('go_golangci_formatter_options', '') call ale#Set('go_golangci_lint_options', '')
call ale#Set('go_golangci_formatter_executable', 'golangci-lint') call ale#Set('go_golangci_lint_executable', 'golangci-lint')
call ale#Set('go_golangci_lint_package', 1)
function! ale#fixers#golangci_lint#GetExecutable(buffer) abort function! ale#fixers#golangci_lint#GetCommand(buffer) abort
let l:executable = ale#Var(a:buffer, 'go_golangci_formatter_executable')
return l:executable
endfunction
function! ale#fixers#golangci_lint#GetCommand(buffer, version) abort
let l:filename = expand('#' . a:buffer . ':t') let l:filename = expand('#' . a:buffer . ':t')
let l:executable = ale#fixers#golangci_lint#GetExecutable(a:buffer) let l:executable = ale#Var(a:buffer, 'go_golangci_lint_executable')
let l:options = ale#Var(a:buffer, 'go_golangci_formatter_options') let l:options = ale#Var(a:buffer, 'go_golangci_lint_options') . ' --fix'
let l:package_mode = ale#Var(a:buffer, 'go_golangci_lint_package')
let l:env = ale#go#EnvString(a:buffer) let l:env = ale#go#EnvString(a:buffer)
if ale#semver#GTE(a:version, [2, 0, 0])
return l:env . ale#Escape(l:executable)
\ . ' fmt --stdin '
\ . l:options
else
return l:env . ale#Escape(l:executable)
\ . ' run --fix '
\ . l:options
\ . ' '
\ . ale#Escape(l:filename)
endif
endfunction
function! ale#fixers#golangci_lint#GetCommandForVersion(buffer, version) abort if l:package_mode
return { return l:env . ale#Escape(l:executable)
\ 'command': ale#fixers#golangci_lint#GetCommand(a:buffer, a:version) \ . ' run '
\} \ . l:options
endif
return l:env . ale#Escape(l:executable)
\ . ' run '
\ . l:options
\ . ' ' . ale#Escape(l:filename)
endfunction endfunction
function! ale#fixers#golangci_lint#Fix(buffer) abort function! ale#fixers#golangci_lint#Fix(buffer) abort
let l:executable = ale#fixers#golangci_lint#GetExecutable(a:buffer) return {
let l:command = ale#fixers#golangci_lint#GetExecutable(a:buffer) . ale#Pad('--version') \ 'command': ale#fixers#golangci_lint#GetCommand(a:buffer),
\}
return ale#semver#RunWithVersionCheck(
\ a:buffer,
\ l:executable,
\ l:command,
\ function('ale#fixers#golangci_lint#GetCommandForVersion'),
\)
endfunction endfunction
-15
View File
@@ -1,15 +0,0 @@
:scriptencoding utf-8
call ale#Set('markdownlint_executable', 'markdownlint')
call ale#Set('markdownlint_options', '--fix')
function! ale#fixers#markdownlint#Fix(buffer) abort
let l:executable = ale#Var(a:buffer, 'markdownlint_executable')
let l:options = ale#Var(a:buffer, 'markdownlint_options')
return {
\ 'command': ale#Escape(l:executable)
\ . ' ' . l:options,
\}
endfunction
-21
View File
@@ -1,21 +0,0 @@
" Author: Benjamin Block <https://github.com/benjamindblock>
" Description: Official type annotation tool for Roc.
call ale#Set('roc_roc_annotate_executable', 'roc')
call ale#Set('roc_roc_annotate_options', '')
function! ale#fixers#roc_annotate#Fix(buffer) abort
let l:executable = ale#Var(a:buffer, 'roc_roc_annotate_executable')
let l:command = l:executable . ' format annotate'
let l:options = ale#Var(a:buffer, 'roc_roc_annotate_options')
if l:options isnot# ''
let l:command .= ' ' . l:options
endif
return {
\ 'command': l:command . ' %t',
\ 'read_temporary_file': 1,
\}
endfunction
-20
View File
@@ -1,20 +0,0 @@
" Author: Benjamin Block <https://github.com/benjamindblock>
" Description: Official formatter for Roc.
call ale#Set('roc_roc_format_executable', 'roc')
call ale#Set('roc_roc_format_options', '')
function! ale#fixers#roc_format#Fix(buffer) abort
let l:executable = ale#Var(a:buffer, 'roc_roc_format_executable')
let l:command = l:executable . ' format'
let l:options = ale#Var(a:buffer, 'roc_roc_format_options')
if l:options isnot# ''
let l:command .= ' ' . l:options
endif
return {
\ 'command': l:command . ' %t',
\ 'read_temporary_file': 1,
\}
endfunction
+4 -18
View File
@@ -19,34 +19,20 @@ function! ale#fixers#rubocop#PostProcess(buffer, output) abort
return a:output[l:line :] return a:output[l:line :]
endfunction endfunction
function! ale#fixers#rubocop#GetCommand(buffer, version) abort function! ale#fixers#rubocop#GetCommand(buffer) abort
let l:executable = ale#Var(a:buffer, 'ruby_rubocop_executable') let l:executable = ale#Var(a:buffer, 'ruby_rubocop_executable')
let l:options = ale#Var(a:buffer, 'ruby_rubocop_options') let l:options = ale#Var(a:buffer, 'ruby_rubocop_options')
let l:auto_correct_all = ale#Var(a:buffer, 'ruby_rubocop_auto_correct_all') let l:auto_correct_all = ale#Var(a:buffer, 'ruby_rubocop_auto_correct_all')
let l:editor_mode = ale#semver#GTE(a:version, [1, 61, 0])
return ale#ruby#EscapeExecutable(l:executable, 'rubocop') return ale#ruby#EscapeExecutable(l:executable, 'rubocop')
\ . (!empty(l:options) ? ' ' . l:options : '') \ . (!empty(l:options) ? ' ' . l:options : '')
\ . (l:auto_correct_all ? ' --auto-correct-all' : ' --auto-correct') \ . (l:auto_correct_all ? ' --auto-correct-all' : ' --auto-correct')
\ . (l:editor_mode ? ' --editor-mode' : '')
\ . ' --force-exclusion --stdin %s' \ . ' --force-exclusion --stdin %s'
endfunction endfunction
function! ale#fixers#rubocop#GetCommandForVersion(buffer, version) abort function! ale#fixers#rubocop#Fix(buffer) abort
return { return {
\ 'command': ale#fixers#rubocop#GetCommand(a:buffer, a:version), \ 'command': ale#fixers#rubocop#GetCommand(a:buffer),
\ 'process_with': 'ale#fixers#rubocop#PostProcess' \ 'process_with': 'ale#fixers#rubocop#PostProcess'
\} \}
endfunction endfunction
function! ale#fixers#rubocop#Fix(buffer) abort
let l:executable = ale#Var(a:buffer, 'ruby_rubocop_executable')
let l:command = l:executable . ale#Pad('--version')
return ale#semver#RunWithVersionCheck(
\ a:buffer,
\ l:executable,
\ l:command,
\ function('ale#fixers#rubocop#GetCommandForVersion'),
\)
endfunction
+1 -1
View File
@@ -20,7 +20,7 @@ function! ale#fixers#stylelint#Fix(buffer) abort
\ 'cwd': '%s:h', \ 'cwd': '%s:h',
\ 'command': ale#node#Executable(a:buffer, l:executable) \ 'command': ale#node#Executable(a:buffer, l:executable)
\ . ale#Pad(l:options) \ . ale#Pad(l:options)
\ . ' --fix --stdin --no-color --stdin-filename %s', \ . ' --fix --stdin --stdin-filename %s',
\ 'read_temporary_file': 0, \ 'read_temporary_file': 0,
\} \}
endfunction endfunction
-22
View File
@@ -1,22 +0,0 @@
" Author: Ben Boeckel <github@me.benboeckel.net>
" Description: Integration of tombi formatting with ALE.
call ale#Set('toml_tombi_executable', 'tombi')
call ale#Set('toml_tombi_format_options', '')
call ale#Set('toml_tombi_online', 0)
function! ale#fixers#tombi_format#Fix(buffer) abort
let l:executable = ale#Var(a:buffer, 'toml_tombi_executable')
let l:offline = ''
if !ale#Var(a:buffer, 'toml_tombi_online')
let l:offline = '--offline'
endif
return {
\ 'command': ale#Escape(l:executable)
\ . ' format'
\ . ale#Pad(l:offline)
\ . ale#Pad(ale#Var(a:buffer, 'toml_tombi_format_options')),
\}
endfunction
-22
View File
@@ -1,22 +0,0 @@
" Author: Ben Boeckel <github@me.benboeckel.net>
" Description: Integration of tombi linting with ALE.
call ale#Set('toml_tombi_executable', 'tombi')
call ale#Set('toml_tombi_lint_options', '')
call ale#Set('toml_tombi_online', 0)
function! ale#fixers#tombi_lint#Fix(buffer) abort
let l:executable = ale#Var(a:buffer, 'toml_tombi_executable')
let l:offline = ''
if !ale#Var(a:buffer, 'toml_tombi_online')
let l:offline = '--offline'
endif
return {
\ 'command': ale#Escape(l:executable)
\ . ' lint'
\ . ale#Pad(l:offline)
\ . ale#Pad(ale#Var(a:buffer, 'toml_tombi_lint_options')),
\}
endfunction
-42
View File
@@ -1,42 +0,0 @@
call ale#Set('python_unimport_executable', 'unimport')
call ale#Set('python_unimport_use_global', get(g:, 'ale_use_global_executables', 0))
call ale#Set('python_unimport_options', '')
call ale#Set('python_unimport_auto_pipenv', 0)
call ale#Set('python_unimport_auto_poetry', 0)
call ale#Set('python_unimport_auto_uv', 0)
function! ale#fixers#unimport#GetExecutable(buffer) abort
if (ale#Var(a:buffer, 'python_auto_pipenv') || ale#Var(a:buffer, 'python_unimport_auto_pipenv'))
\ && ale#python#PipenvPresent(a:buffer)
return 'pipenv'
endif
if (ale#Var(a:buffer, 'python_auto_poetry') || ale#Var(a:buffer, 'python_unimport_auto_poetry'))
\ && ale#python#PoetryPresent(a:buffer)
return 'poetry'
endif
if (ale#Var(a:buffer, 'python_auto_uv') || ale#Var(a:buffer, 'python_unimport_auto_uv'))
\ && ale#python#UvPresent(a:buffer)
return 'uv'
endif
return ale#python#FindExecutable(a:buffer, 'python_unimport', ['unimport'])
endfunction
function! ale#fixers#unimport#Fix(buffer) abort
let l:executable = ale#fixers#unimport#GetExecutable(a:buffer)
let l:cmd = [ale#Escape(l:executable)]
if l:executable =~? '\(pipenv\|poetry\|uv\)$'
call extend(l:cmd, ['run', 'unimport'])
endif
let l:options = ale#Var(a:buffer, 'python_unimport_options')
if !empty(l:options)
call add(l:cmd, l:options)
endif
return {'command': join(l:cmd, ' ')}
endfunction
-17
View File
@@ -1,17 +0,0 @@
" Author: Nicolas Derumigny <https://github.com/nicolasderumigny>
" Description: verible formatter for verilog.
call ale#Set('verilog_verible_format_executable', 'verible-verilog-format')
call ale#Set('verilog_verible_format_options', '')
function! ale#fixers#verible_format#Fix(buffer) abort
let l:executable = ale#Escape(ale#Var(a:buffer, 'verilog_verible_format_executable'))
let l:command = l:executable
let l:options = ale#Var(a:buffer, 'verilog_verible_format_options')
if l:options isnot# ''
let l:command .= ' ' . l:options
endif
return {'command': l:command . ' -'}
endfunction
+1 -1
View File
@@ -36,7 +36,7 @@ function! ale#handlers#css#HandleCSSLintFormat(buffer, lines) abort
endfunction endfunction
function! ale#handlers#css#HandleStyleLintFormat(buffer, lines) abort function! ale#handlers#css#HandleStyleLintFormat(buffer, lines) abort
let l:exception_pattern = '\v^(Syntax)?Error:' let l:exception_pattern = '\v^Error:'
for l:line in a:lines[:10] for l:line in a:lines[:10]
if len(matchlist(l:line, l:exception_pattern)) > 0 if len(matchlist(l:line, l:exception_pattern)) > 0
-13
View File
@@ -1,8 +1,6 @@
" Author: rhysd https://rhysd.github.io " Author: rhysd https://rhysd.github.io
" Description: Redpen, a proofreading tool (http://redpen.cc) " Description: Redpen, a proofreading tool (http://redpen.cc)
call ale#Set('redpen_options', '')
function! ale#handlers#redpen#HandleRedpenOutput(buffer, lines) abort function! ale#handlers#redpen#HandleRedpenOutput(buffer, lines) abort
" Only one file was passed to redpen. So response array has only one " Only one file was passed to redpen. So response array has only one
" element. " element.
@@ -65,14 +63,3 @@ function! ale#handlers#redpen#HandleRedpenOutput(buffer, lines) abort
return l:output return l:output
endfunction endfunction
" Define the redpen linter for a given filetype.
function! ale#handlers#redpen#DefineLinter(filetype) abort
call ale#linter#Define(a:filetype, {
\ 'name': 'redpen',
\ 'executable': 'redpen',
\ 'command': {b -> 'redpen -f ' . a:filetype . ' -r json' . ale#Pad(ale#Var(b, 'redpen_options')) . ' %t'},
\ 'callback': 'ale#handlers#redpen#HandleRedpenOutput',
\})
endfunction
+3 -20
View File
@@ -63,12 +63,6 @@ function! ale#handlers#shellcheck#GetCommand(buffer, version) abort
\ . ' -f ' . l:format . ' -' \ . ' -f ' . l:format . ' -'
endfunction endfunction
function! s:ShouldIgnoreErrorCode(buffer, code) abort
" Skip warnings for trailing whitespace if the option is off.
return a:code is# 'SC1101'
\ && !ale#Var(a:buffer, 'warn_about_trailing_whitespace')
endfunction
function! s:HandleShellcheckJSON(buffer, lines) abort function! s:HandleShellcheckJSON(buffer, lines) abort
try try
let l:errors = json_decode(a:lines[0]) let l:errors = json_decode(a:lines[0])
@@ -93,17 +87,11 @@ function! s:HandleShellcheckJSON(buffer, lines) abort
let l:type = 'W' let l:type = 'W'
endif endif
let l:code = 'SC' . l:error['code']
if s:ShouldIgnoreErrorCode(a:buffer, l:code)
continue
endif
let l:item = { let l:item = {
\ 'lnum': l:error['line'], \ 'lnum': l:error['line'],
\ 'type': l:type, \ 'type': l:type,
\ 'text': l:error['message'], \ 'text': l:error['message'],
\ 'code': l:code, \ 'code': 'SC' . l:error['code'],
\ 'detail': l:error['message'] . "\n\nFor more information:\n https://www.shellcheck.net/wiki/SC" . l:error['code'], \ 'detail': l:error['message'] . "\n\nFor more information:\n https://www.shellcheck.net/wiki/SC" . l:error['code'],
\} \}
@@ -119,6 +107,7 @@ function! s:HandleShellcheckJSON(buffer, lines) abort
let l:item.end_lnum = l:error['endLine'] let l:item.end_lnum = l:error['endLine']
endif endif
" If the filename is something like <stdin>, <nofile> or -, then " If the filename is something like <stdin>, <nofile> or -, then
" this is an error for the file we checked. " this is an error for the file we checked.
if has_key(l:error, 'file') if has_key(l:error, 'file')
@@ -146,17 +135,11 @@ function! s:HandleShellcheckGCC(buffer, lines) abort
let l:type = 'W' let l:type = 'W'
endif endif
let l:code = l:match[6]
if s:ShouldIgnoreErrorCode(a:buffer, l:code)
continue
endif
let l:item = { let l:item = {
\ 'lnum': str2nr(l:match[2]), \ 'lnum': str2nr(l:match[2]),
\ 'type': l:type, \ 'type': l:type,
\ 'text': l:match[5], \ 'text': l:match[5],
\ 'code': l:code, \ 'code': l:match[6],
\ 'detail': l:match[5] . "\n\nFor more information:\n https://www.shellcheck.net/wiki/" . l:match[6], \ 'detail': l:match[5] . "\n\nFor more information:\n https://www.shellcheck.net/wiki/" . l:match[6],
\} \}
-1
View File
@@ -11,7 +11,6 @@ let s:linters = {}
" NOTE: Update the g:ale_linter_aliases documentation when modifying this. " NOTE: Update the g:ale_linter_aliases documentation when modifying this.
let s:default_ale_linter_aliases = { let s:default_ale_linter_aliases = {
\ 'Dockerfile': 'dockerfile', \ 'Dockerfile': 'dockerfile',
\ 'bash': 'sh',
\ 'csh': 'sh', \ 'csh': 'sh',
\ 'javascriptreact': ['javascript', 'jsx'], \ 'javascriptreact': ['javascript', 'jsx'],
\ 'plaintex': 'tex', \ 'plaintex': 'tex',
+2 -2
View File
@@ -531,7 +531,7 @@ function! ale#lsp#StartProgram(conn_id, executable, command) abort
if g:ale_use_neovim_lsp_api && !l:conn.is_tsserver if g:ale_use_neovim_lsp_api && !l:conn.is_tsserver
" For Windows from 'cmd /s/c "foo bar"' we need 'foo bar' " For Windows from 'cmd /s/c "foo bar"' we need 'foo bar'
let l:lsp_cmd = has('win32') && type(a:command) is v:t_string let l:lsp_cmd = has('win32') && type(a:command) is v:t_string
\ ? ['cmd', '/s/c', a:command[10:-2]] \ ? ['cmd', '/s/c/', a:command[10:-2]]
\ : a:command \ : a:command
" Always call lsp.start, which will either create or re-use a " Always call lsp.start, which will either create or re-use a
@@ -706,7 +706,7 @@ function! ale#lsp#Send(conn_id, message) abort
throw 'LSP server not initialized yet!' throw 'LSP server not initialized yet!'
endif endif
if g:ale_use_neovim_lsp_api && !l:conn.is_tsserver if g:ale_use_neovim_lsp_api
return luaeval('require("ale.lsp").send_message(_A)', { return luaeval('require("ale.lsp").send_message(_A)', {
\ 'client_id': l:conn.client_id, \ 'client_id': l:conn.client_id,
\ 'is_notification': a:message[0] == 1 ? v:true : v:false, \ 'is_notification': a:message[0] == 1 ? v:true : v:false,
+1 -1
View File
@@ -28,7 +28,7 @@ function! ale#lsp#response#ReadDiagnostics(diagnostics) abort
for l:diagnostic in a:diagnostics for l:diagnostic in a:diagnostics
let l:severity = get(l:diagnostic, 'severity', 0) let l:severity = get(l:diagnostic, 'severity', 0)
let l:loclist_item = { let l:loclist_item = {
\ 'text': l:diagnostic.message, \ 'text': substitute(l:diagnostic.message, '\(\r\n\|\n\|\r\)', ' ', 'g'),
\ 'type': 'E', \ 'type': 'E',
\ 'lnum': l:diagnostic.range.start.line + 1, \ 'lnum': l:diagnostic.range.start.line + 1,
\ 'col': l:diagnostic.range.start.character + 1, \ 'col': l:diagnostic.range.start.character + 1,
+7 -41
View File
@@ -62,36 +62,6 @@ function! ale#path#FindNearestDirectory(buffer, directory_name) abort
return '' return ''
endfunction endfunction
" Given a buffer and a filename, find the nearest file or directory by
" searching upwards through the paths relative to the given buffer.
function! ale#path#FindNearestFileOrDirectory(buffer, filename) abort
let l:buffer_filename = fnamemodify(bufname(a:buffer), ':p')
let l:buffer_filename = fnameescape(l:buffer_filename)
let l:relative_path_file = findfile(a:filename, l:buffer_filename . ';')
let l:relative_path_dir = finddir(a:filename, l:buffer_filename . ';')
" If we find both a file and directory, choose the shorter response by
" making the longer one empty instead.
if !empty(l:relative_path_file) && !empty(l:relative_path_dir)
if strlen(l:relative_path_file) > strlen(l:relative_path_dir)
let l:relative_path_dir = ''
else
let l:relative_path_file = ''
endif
endif
if !empty(l:relative_path_file)
return fnamemodify(l:relative_path_file, ':p')
endif
if !empty(l:relative_path_dir)
return fnamemodify(l:relative_path_dir, ':p')
endif
return ''
endfunction
" Given a buffer, a string to search for, and a global fallback for when " Given a buffer, a string to search for, and a global fallback for when
" the search fails, look for a file in parent paths, and if that fails, " the search fails, look for a file in parent paths, and if that fails,
" use the global fallback path instead. " use the global fallback path instead.
@@ -145,24 +115,20 @@ endfunction
" Return 1 if a path is an absolute path. " Return 1 if a path is an absolute path.
function! ale#path#IsAbsolute(filename) abort function! ale#path#IsAbsolute(filename) abort
if has('win32') if has('win32') && a:filename[:0] is# '\'
return a:filename[:0] =~# '[\\/]' || a:filename[0:2] =~? '[A-Z]:[/\\]' return 1
else
return a:filename[:0] is# '/'
endif endif
" Check for /foo and C:\foo, etc.
return a:filename[:0] is# '/' || a:filename[1:2] is# ':\'
endfunction endfunction
let s:temp_dir = ale#path#Simplify(fnamemodify(ale#util#Tempname(), ':h:h')) let s:temp_dir = ale#path#Simplify(fnamemodify(ale#util#Tempname(), ':h:h'))
let s:resolved_temp_dir = resolve(s:temp_dir)
" Given a filename, return 1 if the file represents some temporary file " Given a filename, return 1 if the file represents some temporary file
" created by Vim. If the temporary location is symlinked (e.g. macOS), some " created by Vim.
" linters may report the resolved version of the path, so both are checked.
function! ale#path#IsTempName(filename) abort function! ale#path#IsTempName(filename) abort
let l:filename = ale#path#Simplify(a:filename) return ale#path#Simplify(a:filename)[:len(s:temp_dir) - 1] is# s:temp_dir
return l:filename[:len(s:temp_dir) - 1] is# s:temp_dir
\|| l:filename[:len(s:resolved_temp_dir) - 1] is# s:resolved_temp_dir
endfunction endfunction
" Given a base directory, which must not have a trailing slash, and a " Given a base directory, which must not have a trailing slash, and a
+7 -7
View File
@@ -26,6 +26,7 @@ function! ale#python#FindProjectRootIni(buffer) abort
" If you change this, update ale-python-root documentation. " If you change this, update ale-python-root documentation.
if filereadable(l:path . '/MANIFEST.in') if filereadable(l:path . '/MANIFEST.in')
\|| filereadable(l:path . '/setup.cfg') \|| filereadable(l:path . '/setup.cfg')
\|| filereadable(l:path . '/pytest.ini')
\|| filereadable(l:path . '/tox.ini') \|| filereadable(l:path . '/tox.ini')
\|| filereadable(l:path . '/.pyre_configuration.local') \|| filereadable(l:path . '/.pyre_configuration.local')
\|| filereadable(l:path . '/mypy.ini') \|| filereadable(l:path . '/mypy.ini')
@@ -54,12 +55,11 @@ endfunction
" Given a buffer number, find the project root directory for Python. " Given a buffer number, find the project root directory for Python.
" The root directory is defined as the first directory found while searching " The root directory is defined as the first directory found while searching
" upwards through paths, including the current directory, until a path " upwards through paths, including the current directory, until a path
" containing an configuration file is found. (See list above) " containing an init file (one from MANIFEST.in, setup.cfg, pytest.ini,
" " tox.ini) is found. If it is not possible to find the project root directory
" If it is not possible to find the project root directory via configuration " via init file, then it will be defined as the first directory found
" file, then it will be defined as the first directory found searching upwards " searching upwards through paths, including the current directory, until no
" through paths, including the current directory, until no __init__.py files " __init__.py files is found.
" is found.
function! ale#python#FindProjectRoot(buffer) abort function! ale#python#FindProjectRoot(buffer) abort
let l:ini_root = ale#python#FindProjectRootIni(a:buffer) let l:ini_root = ale#python#FindProjectRootIni(a:buffer)
@@ -200,7 +200,7 @@ function! ale#python#PoetryPresent(buffer) abort
return findfile('poetry.lock', expand('#' . a:buffer . ':p:h') . ';') isnot# '' return findfile('poetry.lock', expand('#' . a:buffer . ':p:h') . ';') isnot# ''
endfunction endfunction
" Detects whether a uv environment is present. " Detects whether a poetry environment is present.
function! ale#python#UvPresent(buffer) abort function! ale#python#UvPresent(buffer) abort
return findfile('uv.lock', expand('#' . a:buffer . ':p:h') . ';') isnot# '' return findfile('uv.lock', expand('#' . a:buffer . ':p:h') . ';') isnot# ''
endfunction endfunction
+4 -28
View File
@@ -1,5 +1,4 @@
let g:ale_default_navigation = get(g:, 'ale_default_navigation', 'buffer') let g:ale_default_navigation = get(g:, 'ale_default_navigation', 'buffer')
let g:ale_references_show_contents = get(g:, 'ale_references_show_contents', 1)
let s:references_map = {} let s:references_map = {}
@@ -68,33 +67,17 @@ function! ale#references#HandleTSServerResponse(conn_id, response) abort
endfunction endfunction
function! ale#references#FormatLSPResponseItem(response_item, options) abort function! ale#references#FormatLSPResponseItem(response_item, options) abort
let l:line_text = ''
let l:line= a:response_item.range.start.line
let l:col = a:response_item.range.start.character
let l:filename = ale#util#ToResource(a:response_item.uri)
if get(a:options, 'show_contents') == 1
try
let l:line_text = substitute(readfile(l:filename)[l:line], '^\s*\(.\{-}\)\s*$', '\1', '')
catch
" This happens in tests
endtry
endif
if get(a:options, 'open_in') is# 'quickfix' if get(a:options, 'open_in') is# 'quickfix'
return { return {
\ 'filename': l:filename, \ 'filename': ale#util#ToResource(a:response_item.uri),
\ 'lnum': a:response_item.range.start.line + 1, \ 'lnum': a:response_item.range.start.line + 1,
\ 'col': a:response_item.range.start.character + 1, \ 'col': a:response_item.range.start.character + 1,
\ 'text': l:line_text,
\} \}
else else
return { return {
\ 'filename': l:filename, \ 'filename': ale#util#ToResource(a:response_item.uri),
\ 'line': l:line + 1, \ 'line': a:response_item.range.start.line + 1,
\ 'column': l:col + 1, \ 'column': a:response_item.range.start.character + 1,
\ 'match': l:line_text,
\} \}
endif endif
endfunction endfunction
@@ -164,7 +147,6 @@ function! s:OnReady(line, column, options, linter, lsp_details) abort
let s:references_map[l:request_id] = { let s:references_map[l:request_id] = {
\ 'use_relative_paths': has_key(a:options, 'use_relative_paths') ? a:options.use_relative_paths : 0, \ 'use_relative_paths': has_key(a:options, 'use_relative_paths') ? a:options.use_relative_paths : 0,
\ 'open_in': get(a:options, 'open_in', 'current-buffer'), \ 'open_in': get(a:options, 'open_in', 'current-buffer'),
\ 'show_contents': a:options.show_contents,
\} \}
endfunction endfunction
@@ -183,8 +165,6 @@ function! ale#references#Find(...) abort
let l:options.open_in = 'vsplit' let l:options.open_in = 'vsplit'
elseif l:option is? '-quickfix' elseif l:option is? '-quickfix'
let l:options.open_in = 'quickfix' let l:options.open_in = 'quickfix'
elseif l:option is? '-contents'
let l:options.show_contents = 1
endif endif
endfor endfor
endif endif
@@ -197,10 +177,6 @@ function! ale#references#Find(...) abort
endif endif
endif endif
if !has_key(l:options, 'show_contents')
let l:options.show_contents = ale#Var(bufnr(''), 'references_show_contents')
endif
let l:buffer = bufnr('') let l:buffer = bufnr('')
let [l:line, l:column] = getpos('.')[1:2] let [l:line, l:column] = getpos('.')[1:2]
let l:column = min([l:column, len(getline(l:line))]) let l:column = min([l:column, len(getline(l:line))])
-34
View File
@@ -44,39 +44,5 @@ g:ale_ansible_ansible_lint_executable
This variable can be changed to modify the executable used for ansible-lint. This variable can be changed to modify the executable used for ansible-lint.
*ale-options.ansible_ansible_lint_auto_pipenv*
*g:ale_ansible_ansible_lint_auto_pipenv*
*b:ale_ansible_ansible_lint_auto_pipenv*
ansible_ansible_lint_auto_pipenv
g:ale_ansible_ansible_lint_auto_pipenv
Type: |Number|
Default: `0`
Detect whether the file is inside a pipenv, and set the executable to `pipenv`
if true. This is overridden by a manually-set executable.
*ale-options.ansible_ansible_lint_auto_poetry*
*g:ale_ansible_ansible_lint_auto_poetry*
*b:ale_ansible_ansible_lint_auto_poetry*
ansible_ansible_lint_auto_poetry
g:ale_ansible_ansible_lint_auto_poetry
Type: |Number|
Default: `0`
Detect whether the file is inside a poetry, and set the executable to `poetry`
if true. This is overridden by a manually-set executable.
*ale-options.ansible_ansible_lint_auto_uv*
*g:ale_ansible_ansible_lint_auto_uv*
*b:ale_ansible_ansible_lint_auto_uv*
ansible_ansible_lint_auto_uv
g:ale_ansible_ansible_lint_auto_uv
Type: |Number|
Default: `0`
Set the executable to `uv` if true. This is overridden by a manually-set
executable.
=============================================================================== ===============================================================================
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:
-6
View File
@@ -20,11 +20,5 @@ textlint *ale-asciidoc-textlint*
See |ale-text-textlint| See |ale-text-textlint|
===============================================================================
redpen *ale-asciidoc-redpen*
See |ale-redpen-options|
=============================================================================== ===============================================================================
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:
-32
View File
@@ -1,32 +0,0 @@
===============================================================================
ALE BINDZone Integration *ale-bindzone-options*
===============================================================================
checkzone *ale-bindzone-checkzone*
*ale-options.bindzone_checkzone_executable*
*g:ale_bindzone_checkzone_executable*
*b:ale_bindzone_checkzone_executable*
bindzone_checkzone_executable
g:ale_bindzone_checkzone_executable
Type: |String|
Default: `named-checkzone`
This variable can be changed to set the path to named-checkzone executable.
*ale-options.bindzone_checkzone_options*
*g:ale_bindzone_checkzone_options*
*b:ale_bindzone_checkzone_options*
bindzone_checkzone_options
g:ale_bindzone_checkzone_options
Type: |String|
Default: `-c IN`
This variable can be changed to add additional command-line arguments.
All available options can be found at:
https://bind9.readthedocs.io/en/stable/manpages.html#named-checkzone-zone-file-validation-tool
===============================================================================
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:
+1 -1
View File
@@ -26,7 +26,7 @@ g:ale_c_always_make
c_build_dir_names c_build_dir_names
g:ale_c_build_dir_names g:ale_c_build_dir_names
Type: |List| Type: |List|
Default: `['build', 'build/Debug', 'build/Release', 'bin']` Default: `['build', 'bin']`
A list of directory names to be used when searching upwards from C files A list of directory names to be used when searching upwards from C files
to discover compilation databases with. For directory named `'foo'`, ALE to discover compilation databases with. For directory named `'foo'`, ALE
-46
View File
@@ -41,51 +41,5 @@ Just put the following in `ftdetect/cloudformation.vim`: >
This will get both cloudformation and yaml linters to work on any file with This will get both cloudformation and yaml linters to work on any file with
`.template.yaml` extension. `.template.yaml` extension.
===============================================================================
checkov *ale-cloudformation-checkov*
*ale-options.cloudformation_checkov_executable*
*g:ale_cloudformation_checkov_executable*
*b:ale_cloudformation_checkov_executable*
cloudformation_checkov_executable
g:ale_cloudformation_checkov_executable
Type: |String|
Default: `'checkov'`
This variable can be changed to use a different executable for checkov.
*ale-options.cloudformation_checkov_options*
*g:ale_cloudformation_checkov_options*
*b:ale_cloudformation_checkov_options*
cloudformation_checkov_options
g:ale_cloudformation_checkov_options
Type: |String|
Default: `''`
This variable can be changed to set additional options for checkov.
-------------------------------------------------------------------------------
Configuration
To get chekov to work with cloudformation files (rather than general yaml
files) we must set the buffer |filetype| to `yaml.cloudformation`. This
causes ALE to lint the file with linters configured for cloudformation and
YAML files.
One option is to put the following in `ftdetect/cloudformation.vim`: >
au BufRead,BufNewFile *.template.yaml set filetype=yaml.cloudformation
This will get both cloudformation and yaml linters to work on any file with
`.template.yaml` extension.
Another option is to check for the presence of 'AWSTemplateFormatVersion' in
the yaml file: >
au BufRead,BufNewFile *.yaml,*.yml if search('AWSTemplateFormatVersion', 'nw') | set filetype=yaml.cloudformation | endif
<
=============================================================================== ===============================================================================
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:
+5 -7
View File
@@ -85,11 +85,9 @@ The following general coding standards should be adhered to for Vim code.
* Try to keep lines no longer than 80 characters, but this isn't an absolute * Try to keep lines no longer than 80 characters, but this isn't an absolute
requirement. requirement.
* Use 4 spaces for every level of indentation in Vim code. * Use 4 spaces for every level of indentation in Vim code.
* Add a blank line before every `function`, `if`, `for`, `while`, `try`, or `return`, * Add a blank line before every `function`, `if`, `for`, `while`, or `return`,
which doesn't start a new level of indentation. When adding more code on the which doesn't start a new level of indentation. This makes the logic in
same indentation level, also add blank lines after every corresponding end your code easier to follow.
for those mentioned keywords. This makes the logic in your code easier to
follow.
* End every file with a trailing newline character, but not with extra blank * End every file with a trailing newline character, but not with extra blank
lines. Remove trailing whitespace from the ends of lines. lines. Remove trailing whitespace from the ends of lines.
* Write the full names of commands instead of abbreviations. For example, write * Write the full names of commands instead of abbreviations. For example, write
@@ -426,11 +424,11 @@ running tests. >
Add-Type -A System.IO.Compression.FileSystem Add-Type -A System.IO.Compression.FileSystem
Invoke-WebRequest https://github.com/dense-analysis/ale/releases/download/v4.0.0/vim80-586w32.zip -OutFile C:\vim.zip Invoke-WebRequest ftp://ftp.vim.org/pub/vim/pc/vim80-586w32.zip -OutFile C:\vim.zip
[IO.Compression.ZipFile]::ExtractToDirectory('C:\vim.zip', 'C:\vim') [IO.Compression.ZipFile]::ExtractToDirectory('C:\vim.zip', 'C:\vim')
rm C:\vim.zip rm C:\vim.zip
Invoke-WebRequest https://github.com/dense-analysis/ale/releases/download/v4.0.0/vim80-586rt.zip -OutFile C:\rt.zip Invoke-WebRequest ftp://ftp.vim.org/pub/vim/pc/vim80-586rt.zip -OutFile C:\rt.zip
[IO.Compression.ZipFile]::ExtractToDirectory('C:\rt.zip', 'C:\vim') [IO.Compression.ZipFile]::ExtractToDirectory('C:\rt.zip', 'C:\vim')
rm C:\rt.zip rm C:\rt.zip
+1 -21
View File
@@ -139,28 +139,8 @@ g:ale_elixir_lexical_release
For example, set release to: `/home/projects/lexical/_build/dev/rel/lexical` For example, set release to: `/home/projects/lexical/_build/dev/rel/lexical`
There are currently no configuration options for lexical. There are currnetly no configuration options for lexical.
===============================================================================
expert *ale-elixir-expert*
Expert (https://github.com/elixir-lang/expert)
*ale-options.elixir_expert_executable*
*g:ale_elixir_expert_executable*
*b:ale_elixir_expert_executable*
elixir_expert_executable
g:ale_elixir_expert_executable
Type: |String|
Default: `/usr/bin/elixir-expert`
Location of the expert executable.
For example, set release to:
`/home/projects/expert/apps/expert/burrito_out/expert_linux_amd64`
There are currently no configuration options for expert.
=============================================================================== ===============================================================================
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:
+1 -23
View File
@@ -2,29 +2,6 @@
ALE Fortran Integration *ale-fortran-options* ALE Fortran Integration *ale-fortran-options*
===============================================================================
fortitude *ale-fortran-fortitude*
*ale-options.fortran_fortitude_executable*
*g:fortran_fortitude_executable*
*b:fortran_fortitude_executable*
fortran_fortitude_executable
g:fortran_fortitude_executable
Type: |String|
Default: 'fortitude'
This variable can be changed to modify the executable used for fortitude.
*ale-options.fortran_fortitude_options*
*g:fortran_fortitude_options*
*b:fortran_fortitude_options*
fortran_fortitude_options
g:fortran_fortitude_options
Type: |String|
Default: ''
This variable can be changed to modify options given to fortitude check.
=============================================================================== ===============================================================================
gcc *ale-fortran-gcc* gcc *ale-fortran-gcc*
@@ -86,5 +63,6 @@ g:ale_fortran_language_server_use_global
See |ale-integrations-local-executables| See |ale-integrations-local-executables|
=============================================================================== ===============================================================================
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:
+1 -25
View File
@@ -144,7 +144,7 @@ g:ale_go_golangci_lint_options
Default: `''` Default: `''`
This variable can be changed to alter the command-line arguments to the This variable can be changed to alter the command-line arguments to the
golangci-lint run invocation. golangci-lint invocation.
*ale-options.go_golangci_lint_package* *ale-options.go_golangci_lint_package*
*g:ale_go_golangci_lint_package* *g:ale_go_golangci_lint_package*
@@ -157,30 +157,6 @@ g:ale_go_golangci_lint_package
When set to `1`, the whole Go package will be checked instead of only the When set to `1`, the whole Go package will be checked instead of only the
current file. current file.
golangci_lint can also be user as a fixer to format go source files. In this
case the following configuration variables can be used to configure the
formatters:
*ale-options.go_golangci_formatter_executable*
*g:ale_go_golangci_formatter_executable*
*b:ale_go_golangci_formatter_executable*
go_golangci_formatter_executable
g:ale_go_golangci_formatter_executable
Type: |String|
Default: `'golangci-lint'`
The executable that will be run for golangci-lint.
*ale-options.go_golangci_formatter_options*
*g:ale_go_golangci_formatter_options*
*b:ale_go_golangci_formatter_options*
go_golangci_formatter_options
g:ale_go_golangci_formatter_options
Type: |String|
Default: `''`
This variable can be changed to alter the command-line arguments to the
golangci-lint fmt invocation.
=============================================================================== ===============================================================================
golangserver *ale-go-golangserver* golangserver *ale-go-golangserver*
-24
View File
@@ -206,24 +206,6 @@ g:ale_html_stylelint_use_global
See |ale-integrations-local-executables| See |ale-integrations-local-executables|
===============================================================================
superhtml *ale-html-superhtml*
g:ale_html_superhtml_executable *g:ale_html_superhtml_executable*
*b:ale_html_superhtml_executable*
Type: |String|
Default: `'superhtml'`
This variable can be changed to use a different executable for superhtml.
g:ale_html_superhtml_use_global *g:ale_html_superhtml_use_global*
*b:ale_html_superhtml_use_global*
Type: |Number|
Default: `get(g:, 'ale_use_global_executables', 0)`
See |ale-integrations-local-executables|
=============================================================================== ===============================================================================
tidy *ale-html-tidy* tidy *ale-html-tidy*
@@ -283,12 +265,6 @@ g:ale_html_tidy_use_global
See |ale-integrations-local-executables| See |ale-integrations-local-executables|
===============================================================================
ty *ale-html-ty*
`ty` is a Python type checker. See |ale-python-ty| for configuration options.
=============================================================================== ===============================================================================
vscodehtml *ale-html-vscode* vscodehtml *ale-html-vscode*
-4
View File
@@ -8,9 +8,5 @@ djlint *ale-jinja-djlint*
See |ale-html-djlint| See |ale-html-djlint|
===============================================================================
j2lint *ale-jinja-j2lint*
=============================================================================== ===============================================================================
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:
-29
View File
@@ -1,29 +0,0 @@
===============================================================================
ALE Lean Integration *ale-lean-options*
*ale-integration-lean*
===============================================================================
Integration Information
Currently, the only supported LSP for Lean 4 is lake.
===============================================================================
lake *ale-lean-lake*
g:ale_lean_lake_executable *g:ale_lean_lake_executable*
*b:ale_lean_lake_executable*
Type: |String|
Default: `'lake'`
This variable can be modified to change the executable path for `lake`.
g:ale_lean_lake_config *g:ale_lean_lake_config*
*b:ale_lean_lake_config*
Type: |Dictionary|
Default: `{}`
Dictionary with configuration settings for lake.
===============================================================================
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:
+5 -10
View File
@@ -49,22 +49,17 @@ g:ale_lua_language_server_executable
If you have compiled the language server yourself in `/some/path`, the path If you have compiled the language server yourself in `/some/path`, the path
will be `'/some/path/bin/lua-language-server'`. will be `'/some/path/bin/lua-language-server'`.
*ale-options.lua_language_server_config* *ale-options.lua_lua_language_server_config*
*g:ale_lua_language_server_config* *g:ale_lua_lua_language_server_config*
*b:ale_lua_language_server_config* *b:ale_lua_lua_language_server_config*
lua_language_server_config lua_lua_language_server_config
g:ale_lua_language_server_config g:ale_lua_lua_language_server_config
Type: |Dictionary| Type: |Dictionary|
Default: `{}` Default: `{}`
Dictionary containing configuration settings that will be passed to the Dictionary containing configuration settings that will be passed to the
language server. language server.
For available configuration parameters, see `Settings` on the luals wiki:
https://luals.github.io/wiki/settings/
=============================================================================== ===============================================================================
luac *ale-lua-luac* luac *ale-lua-luac*
-6
View File
@@ -225,11 +225,5 @@ write-good *ale-markdown-write-good*
See |ale-write-good-options| See |ale-write-good-options|
===============================================================================
redpen *ale-markdown-redpen*
See |ale-redpen-options|
=============================================================================== ===============================================================================
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:
-36
View File
@@ -35,42 +35,6 @@ g:ale_perl_perl_options
invocation. invocation.
===============================================================================
perl language server *ale-perl-languageserver*
perl_perl_executable
g:ale_perl_perl_executable
Type: |String|
Default: `'perl'`
The language server will use the same variable as |ale-perl-perl| to launch
the perl executable with the Perl::LanguageServer module.
*ale-options.perl_languageserver_config*
*g:ale_perl_languageserver_config*
*b:ale_perl_languageserver_config*
perl_languageserver_config
g:ale_perl_languageserver_config
Type: |Dictionary|
Default: `'{}'`
This variable can be changed to customize the lsp_config (sent as a
workspace/didChangeConfiguration command).
For example: >
let g:ale_perl_languageserver_config = {
\ 'perl': {
\ 'fileFilter': [''],
\ 'logLevel': 2,
\ 'logFile': '/tmp/plls-log.txt',
\ 'perlInc': ['/usr/share/perl5/', '/usr/local/share/perl5/' ],
\ },
\}
<
For all available options and explanations, visit
https://metacpan.org/pod/Perl::LanguageServer#Extension-Settings
=============================================================================== ===============================================================================
perlcritic *ale-perl-perlcritic* perlcritic *ale-perl-perlcritic*
-30
View File
@@ -78,36 +78,6 @@ g:ale_php_phan_use_client
instead of the phan standalone. instead of the phan standalone.
===============================================================================
phpactor *ale-php-phpactor*
*ale-options.php_phpactor_executable*
*g:ale_php_phpactor_executable*
*b:ale_php_phpactor_executable*
php_phpactor_executable
g:ale_php_phpactor_executable
Type: |String|
Default: `'phpactor'`
This variable sets executable used for phpactor.
php_phpactor_init_options
g:ale_php_phpactor_init_options
Type: |Dictionary|
Default: `'{}'`
This variable can be changed to customize the LSP initialization_options.
For example: >
let g:ale_php_phpactor_init_options = {
\ 'language_server_phpstan.enabled': v:false,
\ 'language_server_psalm.enabled': v:false,
\ 'worse_reflection.stub_dir': '%application_root%/.php-stubs'
\}
<
For all available options and explanations, visit
https://phpactor.readthedocs.io/en/master/reference/configuration.html
=============================================================================== ===============================================================================
phpcbf *ale-php-phpcbf* phpcbf *ale-php-phpcbf*
+2 -151
View File
@@ -63,6 +63,7 @@ ALE will look for configuration files with the following filenames. >
MANIFEST.in MANIFEST.in
setup.cfg setup.cfg
pytest.ini
tox.ini tox.ini
.pyre_configuration.local .pyre_configuration.local
mypy.ini mypy.ini
@@ -80,7 +81,6 @@ ALE will look for configuration files with the following filenames. >
poetry.lock poetry.lock
pyproject.toml pyproject.toml
.tool-versions .tool-versions
uv.lock
< <
The first directory containing any of the files named above will be used. The first directory containing any of the files named above will be used.
@@ -1465,7 +1465,7 @@ g:ale_python_pylsp_executable
See |ale-integrations-local-executables| See |ale-integrations-local-executables|
Set this to `'pipenv'` to invoke `'pipenv` `run` `pylsp'`. Set this to `'pipenv'` to invoke `'pipenv` `run` `pylsp'`.
Set this to `'poetry'` to invoke `'poetry` `run` `pylsp'`. Set this to `'poetry'` to invoke `'poetry` `run` `pyls'`.
*ale-options.python_pylsp_use_global* *ale-options.python_pylsp_use_global*
*g:ale_python_pylsp_use_global* *g:ale_python_pylsp_use_global*
@@ -1616,69 +1616,6 @@ g:ale_python_pyre_auto_uv
executable. executable.
===============================================================================
pyrefly *ale-python-pyrefly*
`pyrefly` will be run from a detected project root, per |ale-python-root|.
*ale-options.python_pyrefly_executable*
*g:ale_python_pyrefly_executable*
*b:ale_python_pyrefly_executable*
python_pyrefly_executable
g:ale_python_pyrefly_executable
Type: |String|
Default: `'pyrefly'`
See |ale-integrations-local-executables|
Set this to `'pipenv'` to invoke `'pipenv` `run` `pyrefly'`.
Set this to `'poetry'` to invoke `'poetry` `run` `pyrefly'`.
Set this to `'uv'` to invoke `'uv` `run` `pyrefly'`.
*ale-options.python_pyrefly_use_global*
*g:ale_python_pyrefly_use_global*
*b:ale_python_pyrefly_use_global*
python_pyrefly_use_global
g:ale_python_pyrefly_use_global
Type: |Number|
Default: `get(g:, 'ale_use_global_executables', 0)`
See |ale-integrations-local-executables|
*ale-options.python_pyrefly_auto_pipenv*
*g:ale_python_pyrefly_auto_pipenv*
*b:ale_python_pyrefly_auto_pipenv*
python_pyrefly_auto_pipenv
g:ale_python_pyrefly_auto_pipenv
Type: |Number|
Default: `0`
Detect whether the file is inside a pipenv, and set the executable to `pipenv`
if true. This is overridden by a manually-set executable.
*ale-options.python_pyrefly_auto_poetry*
*g:ale_python_pyrefly_auto_poetry*
*b:ale_python_pyrefly_auto_poetry*
python_pyrefly_auto_poetry
g:ale_python_pyrefly_auto_poetry
Type: |Number|
Default: `0`
Detect whether the file is inside a poetry, and set the executable to `poetry`
if true. This is overridden by a manually-set executable.
*ale-options.python_pyrefly_auto_uv*
*g:ale_python_pyrefly_auto_uv*
*b:ale_python_pyrefly_auto_uv*
python_pyrefly_auto_uv
g:ale_python_pyrefly_auto_uv
Type: |Number|
Default: `0`
Set the executable to `uv` if true. This is overridden by a manually-set
executable.
=============================================================================== ===============================================================================
pyright *ale-python-pyright* pyright *ale-python-pyright*
@@ -2106,92 +2043,6 @@ g:ale_python_ruff_format_auto_uv
executable. executable.
===============================================================================
ty *ale-python-ty*
`ty` will be run from a detected project root, per |ale-python-root|.
*ale-options.python_ty_change_directory*
*g:ale_python_ty_change_directory*
*b:ale_python_ty_change_directory*
python_ty_change_directory
g:ale_python_ty_change_directory
Type: |Number|
Default: `1`
If set to `1`, `ty` will be run from a detected project root, per
|ale-python-root|. If no project root is detected, `ty` will be run from the
buffer's directory.
*ale-options.python_ty_executable*
*g:ale_python_ty_executable*
*b:ale_python_ty_executable*
python_ty_executable
g:ale_python_ty_executable
Type: |String|
Default: `'ty'`
See |ale-integrations-local-executables|
Set this to `'pipenv'` to invoke `'pipenv` `run` `ty` `check'`.
Set this to `'poetry'` to invoke `'poetry` `run` `ty` `check'`.
Set this to `'uv'` to invoke `'uv` `run` `ty` `check'`.
*ale-options.python_ty_options*
*g:ale_python_ty_options*
*b:ale_python_ty_options*
python_ty_options
g:ale_python_ty_options
Type: |String|
Default: `''`
This variable can be changed to add command-line arguments to the ty
invocation.
*ale-options.python_ty_use_global*
*g:ale_python_ty_use_global*
*b:ale_python_ty_use_global*
python_ty_use_global
g:ale_python_ty_use_global
Type: |Number|
Default: `get(g:, 'ale_use_global_executables', 1)`
See |ale-integrations-local-executables|
*ale-options.python_ty_auto_pipenv*
*g:ale_python_ty_auto_pipenv*
*b:ale_python_ty_auto_pipenv*
python_ty_auto_pipenv
g:ale_python_ty_auto_pipenv
Type: |Number|
Default: `0`
Detect whether the file is inside a pipenv, and set the executable to `pipenv`
if true. This is overridden by a manually-set executable.
*ale-options.python_ty_auto_poetry*
*g:ale_python_ty_auto_poetry*
*b:ale_python_ty_auto_poetry*
python_ty_auto_poetry
g:ale_python_ty_auto_poetry
Type: |Number|
Default: `0`
Detect whether the file is inside a poetry, and set the executable to `poetry`
if true. This is overridden by a manually-set executable.
*ale-options.python_ty_auto_uv*
*g:ale_python_ty_auto_uv*
*b:ale_python_ty_auto_uv*
python_ty_auto_uv
g:ale_python_ty_auto_uv
Type: |Number|
Default: `0`
Set the executable to `uv` if true. This is overridden by a manually-set
executable.
=============================================================================== ===============================================================================
unimport *ale-python-unimport* unimport *ale-python-unimport*
-79
View File
@@ -1,79 +0,0 @@
===============================================================================
ALE Roc Integration *ale-roc-options*
*ale-integration-roc*
===============================================================================
roc_language_server *ale-roc-roc-language-server*
*ale-options.roc_roc_language_server_executable*
*g:ale_roc_roc_language_server_executable*
*b:ale_roc_roc_language_server_executable*
roc_roc_language_server_executable
g:ale_roc_roc_language_server_executable
Type: |String|
Default: `'roc_language_server'`
This variable can be modified to change the executable path for
`roc_language_server`.
*ale-options.roc_roc_language_server_config*
*g:ale_roc_roc_language_server_config*
*b:ale_roc_roc_language_server_config*
roc_roc_language_server_config
g:ale_roc_roc_language_server_config
Type: |Dictionary|
Default: `{}`
Dictionary with configuration settings for roc_language_server.
===============================================================================
roc_format *ale-roc-roc-format*
*ale-options.roc_roc_format_executable*
*g:ale_roc_roc_format_executable*
*b:ale_roc_roc_format_executable*
roc_roc_format_executable
g:ale_roc_roc_format_executable
Type: |String|
Default: `'roc'`
This variable can be modified to change the executable path for `roc`.
*ale-options.roc_roc_format_options*
*g:ale_roc_roc_format_options*
*b:ale_roc_roc_format_options*
roc_roc_format_options
g:ale_roc_roc_format_options
Type: String
Default: `''`
Additional flags for `roc format`.
===============================================================================
roc_annotate *ale-roc-roc-annotate*
*ale-options.roc_roc_annotate_executable*
*g:ale_roc_roc_annotate_executable*
*b:ale_roc_roc_annotate_executable*
roc_roc_annotate_executable
g:ale_roc_roc_annotate_executable
Type: |String|
Default: `'roc'`
This variable can be modified to change the executable path for `roc`.
*ale-options.roc_roc_annotate_options*
*g:ale_roc_roc_annotate_options*
*b:ale_roc_roc_annotate_options*
roc_roc_annotate_options
g:ale_roc_roc_annotate_options
Type: String
Default: `''`
Additional flags for `roc format annotate`.
===============================================================================
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:
-17
View File
@@ -267,23 +267,6 @@ g:ale_ruby_sorbet_enable_watchman
to files from outside of vim. Defaults to disable watchman because it to files from outside of vim. Defaults to disable watchman because it
requires watchman to be installed separately from sorbet. requires watchman to be installed separately from sorbet.
*ale-options.ruby_sorbet_initialization_options*
*g:ale_ruby_sorbet_initialization_options*
*b:ale_ruby_sorbet_initialization_options*
ruby_sorbet_initialization_options
g:ale_ruby_sorbet_initialization_options
Type: |Dictionary|
Default: `{ 'highlightUntyped': v:false }`
This variable can be changed to modify initialization options provided to
the Sorbet language server. By default, a minimal object with defaults is
provided to ensure proper LSP initialization.
Setting this variable to a an empty object will cause sorbet LSP to
fail during initialization.
See https://sorbet.org/docs/lsp#initialize-request for available options.
=============================================================================== ===============================================================================
standardrb *ale-ruby-standardrb* standardrb *ale-ruby-standardrb*
+2 -2
View File
@@ -33,8 +33,8 @@ Integration Information
5. rustfmt -- If you have `rustfmt` installed, you can use it as a fixer to 5. rustfmt -- If you have `rustfmt` installed, you can use it as a fixer to
consistently reformat your Rust code. consistently reformat your Rust code.
Only cargo and rust-analyzer are enabled by default. To switch to using Only cargo and rust-analyze are enabled by default. To switch to using rustc
rustc instead of cargo, configure |b:ale_linters| in your ftplugin file instead of cargo, configure |b:ale_linters| in your ftplugin file
appropriately: > appropriately: >
" See the help text for the option for more information. " See the help text for the option for more information.
+2 -2
View File
@@ -33,8 +33,8 @@ g:ale_scala_metals_project_root
Default: `''` Default: `''`
By default the project root is found by searching upwards for `build.sbt`, By default the project root is found by searching upwards for `build.sbt`,
`build.sc`, `build.mill`, `.bloop` or `.metals`. If the project root is elsewhere, `build.sc`, `.bloop` or `.metals`. If the project root is elsewhere, you
you can override the project root directory. can override the project root directory.
=============================================================================== ===============================================================================
-18
View File
@@ -60,8 +60,6 @@ Notes:
* `bibclean` * `bibclean`
* Bicep * Bicep
* `bicep` * `bicep`
* Bindzone
* `checkzone` (named-checkzone)
* BitBake * BitBake
* `oelint-adv` * `oelint-adv`
* Bourne Shell * Bourne Shell
@@ -121,7 +119,6 @@ Notes:
* `joker` * `joker`
* CloudFormation * CloudFormation
* `cfn-python-lint` * `cfn-python-lint`
* `checkov`
* CMake * CMake
* `cmake-format` * `cmake-format`
* `cmake-lint` * `cmake-lint`
@@ -180,7 +177,6 @@ Notes:
* `dialyxir` * `dialyxir`
* `dogma`!! * `dogma`!!
* `elixir-ls` * `elixir-ls`
* `expert`
* `lexical` * `lexical`
* `mix`!! * `mix`!!
* Elm * Elm
@@ -207,7 +203,6 @@ Notes:
* `fish` (-n flag) * `fish` (-n flag)
* `fish_indent` * `fish_indent`
* Fortran * Fortran
* `fortitude`
* `gcc` * `gcc`
* `language_server` * `language_server`
* Fountain * Fountain
@@ -290,7 +285,6 @@ Notes:
* `prettier` * `prettier`
* `proselint` * `proselint`
* `rustywind` * `rustywind`
* `superhtml`
* `tidy` * `tidy`
* `write-good` * `write-good`
* HTML Angular * HTML Angular
@@ -338,7 +332,6 @@ Notes:
* `xo` * `xo`
* Jinja * Jinja
* djlint * djlint
* j2lint
* JSON * JSON
* `VSCode JSON language server` * `VSCode JSON language server`
* `biome` * `biome`
@@ -377,8 +370,6 @@ Notes:
* `textlint` * `textlint`
* `vale` * `vale`
* `write-good` * `write-good`
* Lean 4
* `lake`
* Less * Less
* `lessc` * `lessc`
* `prettier` * `prettier`
@@ -476,7 +467,6 @@ Notes:
* Pawn * Pawn
* `uncrustify` * `uncrustify`
* Perl * Perl
* `languageserver`
* `perl -c` * `perl -c`
* `perl-critic` * `perl-critic`
* `perltidy` * `perltidy`
@@ -551,13 +541,11 @@ Notes:
* `pylint`!! * `pylint`!!
* `pylsp` * `pylsp`
* `pyre` * `pyre`
* `pyrefly`
* `pyright` * `pyright`
* `refurb` * `refurb`
* `reorder-python-imports` * `reorder-python-imports`
* ruff * ruff
* ruff-format * ruff-format
* `ty`
* `unimport` * `unimport`
* `vulture`!! * `vulture`!!
* `yapf` * `yapf`
@@ -596,10 +584,6 @@ Notes:
* `write-good` * `write-good`
* Robot * Robot
* `rflint` * `rflint`
* Roc
* roc_annotate
* roc_format
* roc_language_server
* RPM spec * RPM spec
* `rpmlint` * `rpmlint`
* Ruby * Ruby
@@ -705,7 +689,6 @@ Notes:
* `thriftcheck` * `thriftcheck`
* TOML * TOML
* `dprint` * `dprint`
* `tombi`
* TypeScript * TypeScript
* `biome` * `biome`
* `cspell` * `cspell`
@@ -730,7 +713,6 @@ Notes:
* `hdl-checker` * `hdl-checker`
* `iverilog` * `iverilog`
* slang * slang
* `verible`
* `verilator` * `verilator`
* `vlog` * `vlog`
* `xvlog` * `xvlog`
-6
View File
@@ -111,11 +111,5 @@ g:ale_tex_texlab_config
let g:ale_tex_texlab_config = {"build":{"onSave":v:true}} let g:ale_tex_texlab_config = {"build":{"onSave":v:true}}
< <
===============================================================================
redpen *ale-tex-redpen*
See |ale-redpen-options|
=============================================================================== ===============================================================================
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:
-6
View File
@@ -51,11 +51,5 @@ write-good *ale-text-write-good*
See |ale-write-good-options| See |ale-write-good-options|
===============================================================================
redpen *ale-text-redpen*
See |ale-redpen-options|
=============================================================================== ===============================================================================
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:
-65
View File
@@ -8,70 +8,5 @@ dprint *ale-toml-dprint*
See |ale-dprint-options| and https://dprint.dev/plugins/toml See |ale-dprint-options| and https://dprint.dev/plugins/toml
===============================================================================
tombi *ale-toml-tombi*
`'tombi'` is a TOML formatter, linter, and language server.
*ale-options.toml_tombi_executable*
*g:ale_toml_tombi_executable*
*b:ale_toml_tombi_executable*
toml_tombi_executable
g:ale_toml_tombi_executable
Type: |String|
Default: `'tombi'`
This variable can be modified to change the executable path for
`tombi`.
*ale-options.toml_tombi_online*
*g:ale_toml_tombi_online*
*b:ale_toml_tombi_online*
toml_tombi_online
g:ale_toml_tombi_online
Type: |Boolean|
Default: `1`
This variable can be modified allow fetching remote schemas when using
`tombi`.
*ale-options.toml_tombi_lsp_options*
*g:ale_toml_tombi_lsp_options*
*b:ale_toml_tombi_lsp_options*
toml_tombi_lsp_options
g:ale_toml_tombi_lsp_options
Type: |String|
Default: `''`
This variable can be modified to provide options when using `tombi` as an
LSP server.
*ale-options.toml_tombi_format_options*
*g:ale_toml_tombi_format_options*
*b:ale_toml_tombi_format_options*
toml_tombi_format_options
g:ale_toml_tombi_format_options
Type: |String|
Default: `''`
This variable can be modified to provide options when using `tombi` as a
formatter.
*ale-options.toml_tombi_lint_options*
*g:ale_toml_tombi_lint_options*
*b:ale_toml_tombi_lint_options*
toml_tombi_lint_options
g:ale_toml_tombi_lint_options
Type: |String|
Default: `''`
This variable can be modified to provide options when using `tombi` as a
linter.
=============================================================================== ===============================================================================
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:
+5 -80
View File
@@ -3,7 +3,7 @@ ALE Verilog/SystemVerilog Integration *ale-verilog-options*
=============================================================================== ===============================================================================
ALE can use eight different linters for Verilog HDL: ALE can use seven different linters for Verilog HDL:
HDL Checker HDL Checker
Using `hdl_checker --lsp` Using `hdl_checker --lsp`
@@ -14,9 +14,6 @@ ALE can use eight different linters for Verilog HDL:
slang: slang:
Using `slang -Weverything` Using `slang -Weverything`
verible_ls
Using `verible-verilog-ls`
verilator verilator
Using `verilator --lint-only -Wall` Using `verilator --lint-only -Wall`
@@ -38,12 +35,6 @@ defining 'g:ale_linters' variable: >
\ let g:ale_linters = {'systemverilog' : ['verilator'],} \ let g:ale_linters = {'systemverilog' : ['verilator'],}
< <
===============================================================================
ALE can use one fixer for Verilog HDL:
verible_fomat
Using `verible-verilog-format`
=============================================================================== ===============================================================================
General notes General notes
@@ -79,84 +70,18 @@ iverilog *ale-verilog-iverilog*
=============================================================================== ===============================================================================
slang *ale-verilog-slang* slang *ale-verilog-slang*
*ale-options.verilog_slang_options* *ale-options.verilog_slang_option*
*g:ale_verilog_slang_options* *g:ale_verilog_slang_option*
*b:ale_verilog_slang_options* *b:ale_verilog_slang_options*
verilog_slang_options verilog_slang_option
g:ale_verilog_slang_options g:ale_verilog_slang_option
Type: |String| Type: |String|
Default: `''` Default: `''`
This variable can be changed to modify 'slang' command arguments. This variable can be changed to modify 'slang' command arguments.
===============================================================================
verible_ls *ale-verilog-verible-ls*
*ale-config.verilog_verible_ls_executable*
*g:ale_verilog_verible_ls_executable*
*b:ale_verilog_verible_ls_executable*
verilog_verible_ls_executable
g:ale_verilog_verible_ls_executable
Type: |String|
Default: `'verible-verilog-ls'`
This variable can be modifies to change the executable path for `verible_ls`
*ale-config.verilog_verible_ls_config*
*g:ale_verilog_verible_ls_config*
*b:ale_verilog_verible_ls_config*
verilog_verible_ls_config
g:ale_verilog_verible_ls_config
Type: |Dictionary|
Default: `{}`
Dictionary with configuration settings for `verible_ls`
*ale-config.verilog_verible_ls_options*
*g:ale_verilog_verible_ls_options*
*b:ale_verilog_verible_ls_options*
verilog_verible_ls_options
g:ale_verilog_verible_ls_options
Type: |String|
Default: `'--rules_config_search'`
Additional flags for `verible_ls`
*ale-config.verilog_verible_ls_rules*
*g:ale_verilog_verible_ls_rules*
*b:ale_verilog_verible_ls_rules*
verilog_verible_ls_rules
g:ale_verilog_verible_ls_rules
Type: |String|
Default: `''`
Additional rules applied by `verible_ls`
=============================================================================== ===============================================================================
verible_format *ale-verilog-verible-format*
*ale-config.verilog_verible_format_executable*
*g:ale_verilog_verible_format_executable*
*b:ale_verilog_verible_format_executable*
verilog_verible_format_executable
g:ale_verilog_verible_format_executable
Type: |String|
Default: `'verible-verilog-format'`
This variable can be modifies to change the executable path for
`verible_format`
*ale-config.verilog_verible_format_options*
*g:ale_verilog_verible_format_options*
*b:ale_verilog_verible_format_options*
verilog_verible_format_options
g:ale_verilog_verible_format_options
Type: |String|
Default: `''`
Additional flags for `verible_format`
===============================================================================
verilator *ale-verilog-verilator* verilator *ale-verilog-verilator*
*ale-options.verilog_verilator_options* *ale-options.verilog_verilator_options*
+5 -63
View File
@@ -30,8 +30,7 @@ CONTENTS *ale-contents*
7.2 Options for cspell................|ale-cspell-options| 7.2 Options for cspell................|ale-cspell-options|
7.3 Options for languagetool..........|ale-languagetool-options| 7.3 Options for languagetool..........|ale-languagetool-options|
7.4 Options for write-good............|ale-write-good-options| 7.4 Options for write-good............|ale-write-good-options|
7.5 Options for redpen................|ale-redpen-options| 7.5 Other Linter/Fixer Options........|ale-other-integration-options|
7.6 Other Linter/Fixer Options........|ale-other-integration-options|
8. Commands/Keybinds....................|ale-commands| 8. Commands/Keybinds....................|ale-commands|
9. API..................................|ale-api| 9. API..................................|ale-api|
10. Special Thanks......................|ale-special-thanks| 10. Special Thanks......................|ale-special-thanks|
@@ -1193,13 +1192,13 @@ g:ale_detail_to_floating_preview
*b:ale_disable_lsp* *b:ale_disable_lsp*
disable_lsp disable_lsp
g:ale_disable_lsp g:ale_disable_lsp
Type: |Boolean| OR |Number| OR |String| Type: |Number| OR |String|
Default: `'auto'` Default: `'auto'`
When this option is set to `'auto'`, ALE will automatically disable linters When this option is set to `'auto'`, ALE will automatically disable linters
that it detects as having already been configured with the `nvim-lspconfig` that it detects as having already been configured with the `nvim-lspconfig`
plugin. When this option is set to `true` or `1`, ALE ignores all linters plugin. When this option is set to `1`, ALE ignores all linters powered by
powered by LSP, and also `tsserver`. LSP, and also `tsserver`.
Any linters that are disabled will also not be usable for LSP functionality Any linters that are disabled will also not be usable for LSP functionality
other than just linting. other than just linting.
@@ -1736,7 +1735,6 @@ g:ale_linter_aliases
{ {
\ 'Dockerfile': 'dockerfile', \ 'Dockerfile': 'dockerfile',
\ 'bash': 'sh',
\ 'csh': 'sh', \ 'csh': 'sh',
\ 'javascriptreact': ['javascript', 'jsx'], \ 'javascriptreact': ['javascript', 'jsx'],
\ 'plaintex': 'tex', \ 'plaintex': 'tex',
@@ -2270,16 +2268,6 @@ g:ale_popup_menu_enabled
This setting must be set to `true` or `1` before ALE is loaded for this This setting must be set to `true` or `1` before ALE is loaded for this
behavior to be enabled. See |ale-lint-settings-on-startup|. behavior to be enabled. See |ale-lint-settings-on-startup|.
*ale-options.references_show_contents*
*g:ale_references_show_contents*
references_show_contents
g:ale_references_show_contents
Type: |Boolean| or |Number|
Default: true
If set to `true` or `1`, matches found by `:ALEFindReferences` will be
shown with a preview of the matching line.
*ale-options.rename_tsserver_find_in_comments* *ale-options.rename_tsserver_find_in_comments*
*g:ale_rename_tsserver_find_in_comments* *g:ale_rename_tsserver_find_in_comments*
rename_tsserver_find_in_comments rename_tsserver_find_in_comments
@@ -3332,24 +3320,7 @@ g:ale_writegood_use_global
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
7.6. Options for redpen *ale-redpen-options* 7.6. Other Linter/Fixer Options *ale-other-integration-options*
The options for `redpen` are shared between all filetypes, so options can
be configured once.
*ale-options.redpen_options*
*g:ale_redpen_options*
*b:ale_redpen_options*
redpen_options
g:ale_redpen_options
Type: |String|
Default: `''`
This variable can be set to pass additional options to redpen.
-------------------------------------------------------------------------------
7.7. Other Linter/Fixer Options *ale-other-integration-options*
ALE supports a very wide variety of tools. Other linter or fixer options are ALE supports a very wide variety of tools. Other linter or fixer options are
documented in additional help files. documented in additional help files.
@@ -3370,7 +3341,6 @@ documented in additional help files.
cspell................................|ale-asciidoc-cspell| cspell................................|ale-asciidoc-cspell|
write-good............................|ale-asciidoc-write-good| write-good............................|ale-asciidoc-write-good|
textlint..............................|ale-asciidoc-textlint| textlint..............................|ale-asciidoc-textlint|
redpen................................|ale-asciidoc-redpen|
asm.....................................|ale-asm-options| asm.....................................|ale-asm-options|
gcc...................................|ale-asm-gcc| gcc...................................|ale-asm-gcc|
llvm_mc...............................|ale-asm-llvm_mc| llvm_mc...............................|ale-asm-llvm_mc|
@@ -3390,8 +3360,6 @@ documented in additional help files.
bicep...................................|ale-bicep-options| bicep...................................|ale-bicep-options|
bicep.................................|ale-bicep-bicep| bicep.................................|ale-bicep-bicep|
az_bicep..............................|ale-bicep-az_bicep| az_bicep..............................|ale-bicep-az_bicep|
bindzone................................|ale-bindzone-options|
checkzone.............................|ale-bindzone-checkzone|
bitbake.................................|ale-bitbake-options| bitbake.................................|ale-bitbake-options|
oelint-adv............................|ale-bitbake-oelint_adv| oelint-adv............................|ale-bitbake-oelint_adv|
c.......................................|ale-c-options| c.......................................|ale-c-options|
@@ -3419,7 +3387,6 @@ documented in additional help files.
joker.................................|ale-clojure-joker| joker.................................|ale-clojure-joker|
cloudformation..........................|ale-cloudformation-options| cloudformation..........................|ale-cloudformation-options|
cfn-python-lint.......................|ale-cloudformation-cfn-python-lint| cfn-python-lint.......................|ale-cloudformation-cfn-python-lint|
checkov...............................|ale-cloudformation-checkov|
cmake...................................|ale-cmake-options| cmake...................................|ale-cmake-options|
cmakelint.............................|ale-cmake-cmakelint| cmakelint.............................|ale-cmake-cmakelint|
cmake-lint............................|ale-cmake-cmake-lint| cmake-lint............................|ale-cmake-cmake-lint|
@@ -3490,7 +3457,6 @@ documented in additional help files.
credo.................................|ale-elixir-credo| credo.................................|ale-elixir-credo|
cspell................................|ale-elixir-cspell| cspell................................|ale-elixir-cspell|
lexical...............................|ale-elixir-lexical| lexical...............................|ale-elixir-lexical|
expert................................|ale-elixir-expert|
elm.....................................|ale-elm-options| elm.....................................|ale-elm-options|
elm-format............................|ale-elm-elm-format| elm-format............................|ale-elm-elm-format|
elm-ls................................|ale-elm-elm-ls| elm-ls................................|ale-elm-elm-ls|
@@ -3511,7 +3477,6 @@ documented in additional help files.
fish....................................|ale-fish-options| fish....................................|ale-fish-options|
fish_indent...........................|ale-fish-fish_indent| fish_indent...........................|ale-fish-fish_indent|
fortran.................................|ale-fortran-options| fortran.................................|ale-fortran-options|
fortitude.............................|ale-fortran-fortitude|
gcc...................................|ale-fortran-gcc| gcc...................................|ale-fortran-gcc|
language_server.......................|ale-fortran-language-server| language_server.......................|ale-fortran-language-server|
fountain................................|ale-fountain-options| fountain................................|ale-fountain-options|
@@ -3587,9 +3552,7 @@ documented in additional help files.
prettier..............................|ale-html-prettier| prettier..............................|ale-html-prettier|
rustywind.............................|ale-html-rustywind| rustywind.............................|ale-html-rustywind|
stylelint.............................|ale-html-stylelint| stylelint.............................|ale-html-stylelint|
superhtml.............................|ale-html-superhtml|
tidy..................................|ale-html-tidy| tidy..................................|ale-html-tidy|
ty....................................|ale-html-ty|
vscodehtml............................|ale-html-vscode| vscodehtml............................|ale-html-vscode|
write-good............................|ale-html-write-good| write-good............................|ale-html-write-good|
html angular template...................|ale-htmlangular-options| html angular template...................|ale-htmlangular-options|
@@ -3637,7 +3600,6 @@ documented in additional help files.
xo....................................|ale-javascript-xo| xo....................................|ale-javascript-xo|
jinja...................................|ale-jinja-options| jinja...................................|ale-jinja-options|
djlint................................|ale-jinja-djlint| djlint................................|ale-jinja-djlint|
j2lint................................|ale-jinja-j2lint|
json....................................|ale-json-options| json....................................|ale-json-options|
biome.................................|ale-json-biome| biome.................................|ale-json-biome|
clang-format..........................|ale-json-clangformat| clang-format..........................|ale-json-clangformat|
@@ -3669,8 +3631,6 @@ documented in additional help files.
cspell................................|ale-latex-cspell| cspell................................|ale-latex-cspell|
write-good............................|ale-latex-write-good| write-good............................|ale-latex-write-good|
textlint..............................|ale-latex-textlint| textlint..............................|ale-latex-textlint|
lean....................................|ale-lean-options|
lake..................................|ale-lean-lake|
less....................................|ale-less-options| less....................................|ale-less-options|
lessc.................................|ale-less-lessc| lessc.................................|ale-less-lessc|
prettier..............................|ale-less-prettier| prettier..............................|ale-less-prettier|
@@ -3700,7 +3660,6 @@ documented in additional help files.
remark-lint...........................|ale-markdown-remark-lint| remark-lint...........................|ale-markdown-remark-lint|
textlint..............................|ale-markdown-textlint| textlint..............................|ale-markdown-textlint|
write-good............................|ale-markdown-write-good| write-good............................|ale-markdown-write-good|
redpen................................|ale-markdown-redpen|
mercury.................................|ale-mercury-options| mercury.................................|ale-mercury-options|
mmc...................................|ale-mercury-mmc| mmc...................................|ale-mercury-mmc|
nasm....................................|ale-nasm-options| nasm....................................|ale-nasm-options|
@@ -3755,7 +3714,6 @@ documented in additional help files.
uncrustify............................|ale-pawn-uncrustify| uncrustify............................|ale-pawn-uncrustify|
perl....................................|ale-perl-options| perl....................................|ale-perl-options|
perl..................................|ale-perl-perl| perl..................................|ale-perl-perl|
perl language server..................|ale-perl-languageserver|
perlcritic............................|ale-perl-perlcritic| perlcritic............................|ale-perl-perlcritic|
perltidy..............................|ale-perl-perltidy| perltidy..............................|ale-perl-perltidy|
perl6...................................|ale-perl6-options| perl6...................................|ale-perl6-options|
@@ -3764,7 +3722,6 @@ documented in additional help files.
cspell................................|ale-php-cspell| cspell................................|ale-php-cspell|
langserver............................|ale-php-langserver| langserver............................|ale-php-langserver|
phan..................................|ale-php-phan| phan..................................|ale-php-phan|
phpactor..............................|ale-php-phpactor|
phpcbf................................|ale-php-phpcbf| phpcbf................................|ale-php-phpcbf|
phpcs.................................|ale-php-phpcs| phpcs.................................|ale-php-phpcs|
phpmd.................................|ale-php-phpmd| phpmd.................................|ale-php-phpmd|
@@ -3826,13 +3783,11 @@ documented in additional help files.
pylint................................|ale-python-pylint| pylint................................|ale-python-pylint|
pylsp.................................|ale-python-pylsp| pylsp.................................|ale-python-pylsp|
pyre..................................|ale-python-pyre| pyre..................................|ale-python-pyre|
pyrefly...............................|ale-python-pyrefly|
pyright...............................|ale-python-pyright| pyright...............................|ale-python-pyright|
refurb................................|ale-python-refurb| refurb................................|ale-python-refurb|
reorder-python-imports................|ale-python-reorder_python_imports| reorder-python-imports................|ale-python-reorder_python_imports|
ruff..................................|ale-python-ruff| ruff..................................|ale-python-ruff|
ruff-format...........................|ale-python-ruff-format| ruff-format...........................|ale-python-ruff-format|
ty....................................|ale-python-ty|
unimport..............................|ale-python-unimport| unimport..............................|ale-python-unimport|
vulture...............................|ale-python-vulture| vulture...............................|ale-python-vulture|
yapf..................................|ale-python-yapf| yapf..................................|ale-python-yapf|
@@ -3862,10 +3817,6 @@ documented in additional help files.
write-good............................|ale-restructuredtext-write-good| write-good............................|ale-restructuredtext-write-good|
robot...................................|ale-robot-options| robot...................................|ale-robot-options|
rflint................................|ale-robot-rflint| rflint................................|ale-robot-rflint|
roc.....................................|ale-roc-options|
roc_language_server...................|ale-roc-roc-language-server|
roc_format............................|ale-roc-roc-format|
roc_annotate..........................|ale-roc-roc-annotate|
ruby....................................|ale-ruby-options| ruby....................................|ale-ruby-options|
brakeman..............................|ale-ruby-brakeman| brakeman..............................|ale-ruby-brakeman|
cspell................................|ale-ruby-cspell| cspell................................|ale-ruby-cspell|
@@ -3955,7 +3906,6 @@ documented in additional help files.
lacheck...............................|ale-tex-lacheck| lacheck...............................|ale-tex-lacheck|
latexindent...........................|ale-tex-latexindent| latexindent...........................|ale-tex-latexindent|
texlab................................|ale-tex-texlab| texlab................................|ale-tex-texlab|
redpen................................|ale-tex-redpen|
texinfo.................................|ale-texinfo-options| texinfo.................................|ale-texinfo-options|
cspell................................|ale-texinfo-cspell| cspell................................|ale-texinfo-cspell|
write-good............................|ale-texinfo-write-good| write-good............................|ale-texinfo-write-good|
@@ -3963,13 +3913,11 @@ documented in additional help files.
cspell................................|ale-text-cspell| cspell................................|ale-text-cspell|
textlint..............................|ale-text-textlint| textlint..............................|ale-text-textlint|
write-good............................|ale-text-write-good| write-good............................|ale-text-write-good|
redpen................................|ale-text-redpen|
thrift..................................|ale-thrift-options| thrift..................................|ale-thrift-options|
thrift................................|ale-thrift-thrift| thrift................................|ale-thrift-thrift|
thriftcheck...........................|ale-thrift-thriftcheck| thriftcheck...........................|ale-thrift-thriftcheck|
toml....................................|ale-toml-options| toml....................................|ale-toml-options|
dprint................................|ale-toml-dprint| dprint................................|ale-toml-dprint|
tombi.................................|ale-toml-tombi|
typescript..............................|ale-typescript-options| typescript..............................|ale-typescript-options|
biome.................................|ale-typescript-biome| biome.................................|ale-typescript-biome|
cspell................................|ale-typescript-cspell| cspell................................|ale-typescript-cspell|
@@ -3992,8 +3940,6 @@ documented in additional help files.
hdl-checker...........................|ale-verilog-hdl-checker| hdl-checker...........................|ale-verilog-hdl-checker|
iverilog..............................|ale-verilog-iverilog| iverilog..............................|ale-verilog-iverilog|
slang.................................|ale-verilog-slang| slang.................................|ale-verilog-slang|
verible_ls............................|ale-verilog-verible-ls|
verible_format........................|ale-verilog-verible-format|
verilator.............................|ale-verilog-verilator| verilator.............................|ale-verilog-verilator|
vlog..................................|ale-verilog-vlog| vlog..................................|ale-verilog-vlog|
xvlog.................................|ale-verilog-xvlog| xvlog.................................|ale-verilog-xvlog|
@@ -4086,14 +4032,10 @@ documented in additional help files.
`:ALEFindReferences -split` - Open the location in a horizontal split. `:ALEFindReferences -split` - Open the location in a horizontal split.
`:ALEFindReferences -vsplit` - Open the location in a vertical split. `:ALEFindReferences -vsplit` - Open the location in a vertical split.
`:ALEFindReferences -quickfix` - Put the locations into quickfix list. `:ALEFindReferences -quickfix` - Put the locations into quickfix list.
`:ALEFindReferences -contents` - Show line contents for matches.
The default method used for navigating to a new location can be changed The default method used for navigating to a new location can be changed
by modifying |g:ale_default_navigation|. by modifying |g:ale_default_navigation|.
The default behaviour on whether to show line content for matches can
be changed by modifying |g:ale_references_show_contents|.
You can add `-relative` to the command to view results with relatives paths, You can add `-relative` to the command to view results with relatives paths,
instead of absolute paths. This option has no effect if `-quickfix` is used. instead of absolute paths. This option has no effect if `-quickfix` is used.

Some files were not shown because too many files have changed in this diff Show More