Commit Graph

1555 Commits

Author SHA1 Message Date
Matheus Gabriel Werny 916c8764ce Support for tex-fmt (#5127)
CI / Build (push) Waiting to run
CI / Lint (push) Blocked by required conditions
CI / Lua (push) Blocked by required conditions
CI / Neovim 0.10 Linux (push) Blocked by required conditions
CI / Neovim 0.12 Linux (push) Blocked by required conditions
CI / Vim 8.2 Linux (push) Blocked by required conditions
CI / Vim 9.2 Linux (push) Blocked by required conditions
CI / Neovim 0.10 Windows (push) Waiting to run
CI / Neovim 0.12 Windows (push) Waiting to run
CI / Vim 8.2 Windows (push) Waiting to run
CI / Vim 9.2 Windows (push) Waiting to run
* Support for tex-fmt

Support for tex-fmt, https://github.com/WGUNDERWOOD/tex-fmt.

* Remove file type plaintex

Remove file type plaintex as tex-fmt is solely for LaTeX.
See
https://superuser.com/questions/208177/vim-and-tex-filetypes-plaintex-vs-tex
for a distinction.
2026-05-14 23:00:05 +01:00
Horacio Sanson 78122497f5 Replace appveyor with GitHub actions (#5119)
CI / Build (push) Has been cancelled
CI / Neovim 0.10 Windows (push) Has been cancelled
CI / Neovim 0.12 Windows (push) Has been cancelled
CI / Vim 8.2 Windows (push) Has been cancelled
CI / Vim 9.2 Windows (push) Has been cancelled
CI / Lint (push) Has been cancelled
CI / Lua (push) Has been cancelled
CI / Neovim 0.10 Linux (push) Has been cancelled
CI / Neovim 0.12 Linux (push) Has been cancelled
CI / Vim 8.2 Linux (push) Has been cancelled
CI / Vim 9.2 Linux (push) Has been cancelled
* fix(tests): fix ale_c_build_dir_names being unset in tests (#5109)

- Use ale#Set() to set the ale_c_build_dir_names variable.
- Ensure SetUpLinterTest() is called before any Save commands in tests.
- Add c.vim to runtime before non-linter tests are executed.
- Remove workarounds in c.vim.

* feat: Load Prettier from cjs also

* Replace AppVeyor with GitHub Actions for Windows CI

Migrate Windows tests from AppVeyor (which hangs on PRs) to native GitHub
Actions using rhysd/action-setup-vim to install editors dynamically.

- Add test_ale_windows job testing Vim 9.0, Neovim 0.7, and Neovim 0.8
  on windows-latest, running in parallel with existing Linux CI
- Set fail-fast: false so all matrix entries report results independently
- Update run-tests.bat to accept VIM_EXE and VIM_HEADLESS env vars
  instead of hardcoding C:\vim\vim\vim80\vim.exe
- Add -n -i NONE and --not-a-term flags to avoid E211 temp file errors
  caused by Windows 8.3 short name paths losing drive letters
- Override TMP/TEMP to C:\tmp in CI to avoid 8.3 path mangling
- Use mklink /J directory junction for C:\testplugin to avoid modifying
  146+ test files that reference /testplugin/ paths
- Update doc/ale-development.txt section 4.3 for the new setup
- Remove AppVeyor badge from README.md
- Delete .appveyor.yml

Fix pre-existing Windows test failures now visible with Neovim on Windows:

- autoload/ale/c.vim: ParseCompileCommandsFlags bufnr() fails when the
  buffer path has a drive letter but the compile_commands key does not.
  Add fallback path comparison using ale#path#RemoveDriveLetter() so
  exact file matches work regardless of drive letter presence.
- autoload/ale/path.vim: FindNearestFile and FindNearestDirectory now
  return ale#path#Simplify() paths, fixing mixed slash separators on
  Windows that caused test_write_good.vader to fail.
- test/smoke_test.vader: echo output has trailing \r on Windows. Change
  strip pattern from ' *$' to '[\r ]*$' in all TestCallback functions.
- test/test_prepare_command.vader: &shellcmdflag on Windows is '/s /c'
  not '/c'. Use split(&shellcmdflag) in expected values so the test
  adapts to the actual default.
- test/test_lint_file_linters.vader: Increase WaitForJobs timeout from
  2000ms to 10000ms to prevent spurious timeouts on Windows CI runners.
- test/test_writefile_function.vader: Dissociate buffer from temp file
  before deleting it to avoid E211 on Windows.

* Fix Windows path handling and test compatibility issues

Production code fixes:
- ale/path.vim: Apply Simplify to buffer_filename in IsBufferPath to fix
  forward-slash vs backslash mismatch on Neovim Windows; handle .\ prefix
- ale/c.vim: Use iterative key-matching via RemoveDriveLetter for both
  file_lookup and dir_lookup in ParseCompileCommandsFlags
- ale/filename_mapping.vim: Normalize suffix separators when mapping target
  uses forward slashes (fixes mixed-separator paths on Windows)
- cuda/nvcc.vim: Apply Simplify before fnamemodify(:p) to fix path doubling

Test fixes:
- smoke_test: Use safe get() indexing and add retry loop for PowerShell test
- test_loclist_corrections: Use Simplify for cross-platform buffer paths
- test_ocaml_ocamllsp: Set buffer outside project tree before AssertLSPProject
- test_tex_textlint: Set buffer outside node_modules tree on Windows
- test_setting_problems_found_in_previous_buffers: Use cmd on Windows
- test_lint_file_linters: Increase WaitForJobs timeout to 30s

* Fix Vim 9.0 tempname() format change and simplify PowerShell test

Vim 9.0 changed tempname() to return a flat path (e.g. C:\tmp\VIMXXXXXXXX)
instead of the nested C:\tmp\VIMxxx\NNN format. Using :h:h on the flat
format resolves to the drive root, causing IsTempName() to match every
path on the drive. This broke tslint handler tests, loclist_corrections,
and setting_problems_found_in_previous_buffers tests.

Fix s:temp_dir to detect when :h:h yields a root path and fall back to :h.
Add GetTempBase() helper in test_format_command.vader with same logic.
Simplify smoke_test PowerShell test to avoid multi-command chaining that
produces unreliable output on Vim 9.0.

* fix(tests): normalize Windows path handling in Vim 9 CI

Treat win64 and win32unix as Windows in path and job helpers so compile_commands lookups and async command execution behave consistently on GitHub Actions. Normalize NVCC parsed filenames after absolute expansion to keep expected Windows paths stable in handler tests.

* fix(tests): handle Windows variants in command paths

Use a shared Windows check for command formatting and execution paths so Vim 9 on GitHub Actions still uses CMD-specific behavior. Apply the same check in filename mapping suffix normalization so Windows-style temporary and mapped paths are converted consistently in tests.

* ci: test newer Vim and Neovim versions

Update Linux and Windows test targets to newer Vim and Neovim releases in GitHub Actions and the local run-tests workflow. Refresh the Docker test image and helper scripts so the selected editor versions can be built and executed consistently across environments.

* fix(tests): adapt checks for Neovim 0.12 and Python 3.12

- Replace deprecated imp with import.util in python tests.
- Reorder ale.txt to match help files order.
- Add lines to sign test to ensure there are enough lines for the signs.

* fix(tests): avoid ftplugin side-effects in uncrustify test

* fix(tests): stabilize Windows Vim smoke and path mapping cases

Harden smoke_test callback handling for Vim job output race conditions on Windows by safely handling empty callback output lists instead of indexing output[0].\n\nMake disabling_ale assertions compare against a baseline message history entry so preexisting Vim startup messages do not cause false failures.\n\nUpdate path-mapping tests to account for Vim 9 Windows tempname layout changes and to validate filename-modifier behavior after full-path filename mapping is applied.

* fix(tests): normalize Windows test paths to resolved workspace paths

On Windows Neovim 0.10, test working directories can resolve to host checkout paths (for example D:\a\ale\ale) instead of container-style mount paths (for example C:\testplugin). Many tests compared absolute paths against g:dir-derived expectations and failed despite equivalent files.\n\nNormalize test directory handling in ale#test helpers by storing and using ale#path#Simplify(resolve(getcwd())), so expected paths match the same canonical form used by path discovery functions.\n\nAlso update tests that manually reassign g:dir from raw getcwd() and Gradle path assertions to use resolved/simplified paths, preventing regressions from mixed mount-path forms across Vim/Neovim and CI environments.

* fix(tests): restore g:dir semantics for fixer and test helpers

* Revert "fix(tests): normalize Windows test paths to resolved workspace paths"

This reverts commit 1136e2daec2645f643211e7e41819fa3eeba61b4.

* fix(tests): use resolve() in ant test assertions for Windows junction paths

On Windows CI, a junction C:\testplugin -> D:\a\ale\ale is used so tests
can cd to /testplugin paths. However, findfile() + fnamemodify(':p') resolves
junction points to real paths, while g:dir holds the junction-based path.

Fix the two ant test files to use resolve(g:dir) only in the specific
assertions that compare paths returned by findfile()-based functions
(ale#ant#FindProjectRoot, ale#ant#BuildClasspathCommand). This way:
- On Linux: resolve() is a no-op, behaviour unchanged
- On Windows: resolve(g:dir) gives the real path that matches what
  findfile() returns, fixing the assertion mismatch

The global test infrastructure (ale#test#SetDirectory) is left unchanged
to avoid breaking the many fixer tests that rely on junction-based paths.

* Fix Windows junction path resolution in tests

On Windows CI, tests run from a junction point (C:\testplugin) that
points to the real workspace (D:\a\ale\ale). Functions like
ale#path#FindNearestFile resolve junctions via findfile()/fnamemodify(':p'),
returning the real path, while g:dir holds the junction path.

Wrap expected path values with resolve() so junction paths are
resolved to their real counterparts on Windows (resolve() is a no-op
on Linux), making assertions match across both platforms.

* fix(test): use fnamemodify to compute expected nvcc path on Windows

The test hardcoded 'C:\tmp\...' for Windows paths, but GitHub Actions
runners use D: drive. Use ale#path#Simplify(fnamemodify(..., ':p'))
in expected values to mirror exactly what the handler produces,
making the test drive-letter-agnostic.

* fix: resolve symlinks/junctions in FindNearest* path functions

On Windows, Vim's findfile()/finddir() returns junction paths while
Neovim resolves them. This inconsistency causes test failures when
comparing paths from these functions against g:dir (set via getcwd()).

Add resolve() to FindNearestFile, FindNearestDirectory, and
FindNearestFileOrDirectory so they always return canonical paths,
making behavior consistent across Vim and Neovim on Windows.

On Linux, resolve() is a no-op for non-symlinked paths.

* fix: resolve junctions in python path functions and fix trailing separator

- Add resolve() to FindVirtualenv, FindProjectRoot, FindProjectRootIni
  in autoload/ale/python.vim so they return canonical paths on Windows
  NTFS junctions
- Move trailing '/' inside ale#path#Simplify() in FindNearestDirectory
  and FindNearestFileOrDirectory so separator is OS-appropriate

* fix: remove unnecessary junction in Windows CI

The C:\testplugin junction was a leftover from AppVeyor. It caused
C: vs D: path mismatches when resolve() canonicalized paths. Running
directly from the workspace eliminates the discrepancy.

* fix: use getcwd() for Windows runtimepath instead of hardcoded C:\testplugin

The junction no longer exists, so use the actual working directory
to find ALE plugin files in the test vimrc.

* fix: map /testplugin/ paths to repo root on Windows

Without the C:\testplugin junction, SetDirectory('/testplugin/test')
failed silently, leaving cwd at the repo root. Now on Windows, the
/testplugin/ prefix is replaced with the actual repo root derived
from the script's file path.

* fix: remaining Windows test failures (format_command, dprint, tslint, smoke)

- test_format_command: compute :h modifier depth dynamically since
  Vim 9.x Windows uses flat tempname() while NeoVim uses nested dirs
- test_dprint_fixer: replace hardcoded C:\testplugin path with
  dynamic path relative to g:dir
- smoke_test: increase PowerShell job timeout and add sleep between
  retries for flaky Windows CI
- workflow: set TMP/TEMP on same drive as workspace to fix cross-drive
  relative path resolution in tslint handler test

* fix: skip PowerShell smoke test on Vim Windows

The test is inherently flaky with Vim's Windows job implementation
when &shell=powershell. NeoVim handles it reliably and still tests
this code path.

* fix: NeoVim Windows test failures (dmd handler, c_flag_parsing, lint_file timeout)

- dmd handler: replace \f+ with [^(]+ in regex since NeoVim's isfname
  on Windows doesn't include \ or :, so \f+ can't match absolute paths
- c_flag_parsing: use FullPath() helper for file! commands and dict keys
  so NeoVim v0.10.4 resolves drive-relative paths correctly
- lint_file_linters: increase WaitForJobs timeout from 30s to 60s for
  slower NeoVim Windows CI runners

* fix: skip flaky NeoVim Windows tests (c_flag_parsing, lint_file_linters)

- c_flag_parsing test 18: skip on NeoVim Windows because fnamemodify(':p')
  does not reliably add a drive letter to fake absolute paths on NeoVim
  <= 0.10, causing dir_lookup key mismatches
- lint_file_linters test 8: skip on NeoVim Windows because jobs don't
  complete within the 30s timeout due to slower job handling

Both tests pass on Linux and Vim Windows. TODO comments added to restore
them once the underlying NeoVim Windows issues are resolved.

* ci: update checkout githuh action to v6

* Preserve Vim 8.2 as a minimum supported version for now

* fix: Use a lower Vim version for Windows tests

---------

Co-authored-by: w0rp <devw0rp@gmail.com>
2026-05-12 22:34:30 +01:00
Evan Chen c59c0d1a57 feat(markdown): add rumdl server and fixer (#5115)
CI / build_image (push) Has been cancelled
CI / test_ale (--linters-only) (push) Has been cancelled
CI / test_ale (--lua-only) (push) Has been cancelled
CI / test_ale (--neovim-07-only) (push) Has been cancelled
CI / test_ale (--neovim-08-only) (push) Has been cancelled
CI / test_ale (--vim-80-only) (push) Has been cancelled
CI / test_ale (--vim-90-only) (push) Has been cancelled
* feat: put in the main linter files

* feat: add to registry

* docs: add rumdl to docs

* tests: vader tests

* edit: actually split the options into two

* style: make rumdl fixer test mimic markdownlint

* fix: stupidity overwhelming

* fix: actually let's look for pyproject too

copied from tombi

* i'm a buffoon fix wrong indentation

* alignment ci is made for people like me

* missed toc entry
2026-04-15 22:04:59 +09:00
rymdbar b1b027d5e6 Add support for PerlNavigator (#5028)
* Add support for PerlNavigator

* fixup! Add support for PerlNavigator

* fixup! fixup! Add support for PerlNavigator

* fixup! fixup! fixup! Add support for PerlNavigator

---------

Co-authored-by: cos <cos>
2026-04-10 23:19:14 +09:00
samb0t 6b63f4e70a Add support for LilyPond syntax (#5117)
* Add support for LilyPond syntax

See: https://lilypond.org/

* Fix alpha order of LilyPond

* Add support for custom executable and options to lilypond linter

Enhances the lilypond linter with configurable options:
- Add g:ale_lilypond_lilypond_executable for custom lilypond binary path
- Add g:ale_lilypond_lilypond_options for additional command-line flags
- Refactor linter to use GetCommand() function for dynamic command building
- Add linter tests covering configuration scenarios
- Update documentation with usage examples and proper formatting

---------

Co-authored-by: samb0t <sambottoni@gmail.com>
2026-04-10 23:09:18 +09:00
Armand Halbert 3d3b75cdc5 Added support for harper in markdown files (#5104)
CI / build_image (push) Has been cancelled
CI / test_ale (--linters-only) (push) Has been cancelled
CI / test_ale (--lua-only) (push) Has been cancelled
CI / test_ale (--neovim-07-only) (push) Has been cancelled
CI / test_ale (--neovim-08-only) (push) Has been cancelled
CI / test_ale (--vim-80-only) (push) Has been cancelled
CI / test_ale (--vim-90-only) (push) Has been cancelled
2026-03-28 20:22:26 +09:00
Evgeni Golov 69c945d5da support running solargraph via bundle (#5097)
CI / build_image (push) Has been cancelled
CI / test_ale (--linters-only) (push) Has been cancelled
CI / test_ale (--lua-only) (push) Has been cancelled
CI / test_ale (--neovim-07-only) (push) Has been cancelled
CI / test_ale (--neovim-08-only) (push) Has been cancelled
CI / test_ale (--vim-80-only) (push) Has been cancelled
CI / test_ale (--vim-90-only) (push) Has been cancelled
2026-02-17 20:26:48 +00:00
yoan667 b5f8cb296a doc goimport (#5093)
CI / build_image (push) Has been cancelled
CI / test_ale (--linters-only) (push) Has been cancelled
CI / test_ale (--lua-only) (push) Has been cancelled
CI / test_ale (--neovim-07-only) (push) Has been cancelled
CI / test_ale (--neovim-08-only) (push) Has been cancelled
CI / test_ale (--vim-80-only) (push) Has been cancelled
CI / test_ale (--vim-90-only) (push) Has been cancelled
2026-02-07 17:24:34 +09:00
blobmasterbrian e762262f44 add option to lint diff buffers (#3185)
CI / build_image (push) Has been cancelled
CI / test_ale (--linters-only) (push) Has been cancelled
CI / test_ale (--lua-only) (push) Has been cancelled
CI / test_ale (--neovim-07-only) (push) Has been cancelled
CI / test_ale (--neovim-08-only) (push) Has been cancelled
CI / test_ale (--vim-80-only) (push) Has been cancelled
CI / test_ale (--vim-90-only) (push) Has been cancelled
* add option to lint diff buffers
* fix misaligned doc tag
* update docs
2026-02-06 18:47:52 +00:00
yoan667 646d956630 fix vale option (#5086) 2026-01-25 16:30:53 +09:00
Adrian Vollmer 8eb4803da9 Add pymarkdown fixer (#5045)
CI / build_image (push) Has been cancelled
CI / test_ale (--linters-only) (push) Has been cancelled
CI / test_ale (--lua-only) (push) Has been cancelled
CI / test_ale (--neovim-07-only) (push) Has been cancelled
CI / test_ale (--neovim-08-only) (push) Has been cancelled
CI / test_ale (--vim-80-only) (push) Has been cancelled
CI / test_ale (--vim-90-only) (push) Has been cancelled
2025-12-21 18:34:05 +09:00
John Jackson 0360a73644 Add ReScript support (#5072)
This adds support for both rescript format and rescript-language-server.

Closes https://github.com/dense-analysis/ale/issues/3335
2025-12-21 18:25:42 +09:00
bretello dd6e6f1b15 ALEFindReferences: add -fzf flag to show output in fzf (#5018)
* references: add ALEFindReferences -fzf option

Allows using -fzf to show previews using fzf.vim. Includes:

- add support for opening in bufers, splits, tabs and for adding matches quickfix
- add support for -relative
- add fzf preview `--highlight-line` option
- add fzf.vim autoload module

* tests: fix references tests for fzf support update
2025-12-21 13:06:34 +09:00
pmonson711 962a932ed4 add support for expert (#5036)
* add support for expert

* Refactor elixir expert linter from feedback

- Simplify configuration by removing executable lookup logic
- Update documentation to reflect current configuration options
- Rename test file and update assertions for the new configuration

* default to expert for the lsp

The install instructions included something I missed. It includes a
global install, where the default executable is just `expert`. I'll
default to that and review if I should should add a configuration for a
global config.

---------

Co-authored-by: Your Name <pmonson711@nfiindustries.com>
2025-11-22 21:15:52 +09:00
yoan667 395d9fa2aa Add SuperHTML linter for HTML (#5055) 2025-11-22 21:15:28 +09:00
Ben Boeckel 86d8ada5cb tombi: support toml_tombi_online flag to control remote schema fetching (#5032) 2025-11-22 21:02:24 +09:00
rymdbar 6d8e4a641c Make documentation mirror custom_linting_rules (#5056)
CI / build_image (push) Has been cancelled
CI / test_ale (--linters-only) (push) Has been cancelled
CI / test_ale (--lua-only) (push) Has been cancelled
CI / test_ale (--neovim-07-only) (push) Has been cancelled
CI / test_ale (--neovim-08-only) (push) Has been cancelled
CI / test_ale (--vim-80-only) (push) Has been cancelled
CI / test_ale (--vim-90-only) (push) Has been cancelled
Co-authored-by: cos <cos>
2025-10-27 21:56:35 +09:00
Nicolas Derumigny d2f4090c33 doc(slang): fix minor typo (#5047)
CI / build_image (push) Has been cancelled
CI / test_ale (--linters-only) (push) Has been cancelled
CI / test_ale (--lua-only) (push) Has been cancelled
CI / test_ale (--neovim-07-only) (push) Has been cancelled
CI / test_ale (--neovim-08-only) (push) Has been cancelled
CI / test_ale (--vim-80-only) (push) Has been cancelled
CI / test_ale (--vim-90-only) (push) Has been cancelled
2025-10-26 16:16:04 +09:00
FouMalade 9811114948 Add j2lint linter for Jinja2 templates (#5048)
Co-authored-by: Nicolas SCHMAUCH <nic.schmauch@i-0330135t.ac-bordeaux.fr>
2025-10-26 14:54:22 +09:00
rymdbar b415dddf9f Make phpactor configurable and documented (#5027)
CI / build_image (push) Has been cancelled
CI / test_ale (--linters-only) (push) Has been cancelled
CI / test_ale (--lua-only) (push) Has been cancelled
CI / test_ale (--neovim-07-only) (push) Has been cancelled
CI / test_ale (--neovim-08-only) (push) Has been cancelled
CI / test_ale (--vim-80-only) (push) Has been cancelled
CI / test_ale (--vim-90-only) (push) Has been cancelled
Add php_phpactor_executable for phpactor and make it configurable
through php_phpactor_config.

When phpactor was first added in 3b8ff65, it had no configuration. Thus
the documentation for it could be completely blank. That is why it now
seems like an initial addition

Co-authored-by: cos <cos>
2025-08-15 12:27:58 +01:00
rymdbar 84eae97bf2 Correct typo in documented python command (#5030)
Co-authored-by: cos <cos>
2025-08-15 12:22:56 +01:00
rymdbar a083d58c7f Fix lua_language_server_config variable name (#5025)
Since added in commit f2a21c9, the implementation and documentation has
differed in their naming. The latter has had an additional lua_-prefix.

With this fix, setting the variable as documented actually results in a
'workspace/didChangeConfiguration' method being executed on the luals.

Adding a reference to the documentation of which configurations the lsp
supports doesn't hurt, so that's done too.

Co-authored-by: cos <cos>
2025-08-14 20:16:18 +01:00
w0rp 3539f39d4d Add checkov linter for cloudformation
Co-Authored-By: jhandsel <64368631+jhandsel@users.noreply.github.com>
2025-08-14 17:34:25 +01:00
Woshiluo Luo 822d9a1bf3 linter/scala/metals: add build.mill as project root detect file (#5012)
CI / build_image (push) Has been cancelled
CI / test_ale (--linters-only) (push) Has been cancelled
CI / test_ale (--lua-only) (push) Has been cancelled
CI / test_ale (--neovim-07-only) (push) Has been cancelled
CI / test_ale (--neovim-08-only) (push) Has been cancelled
CI / test_ale (--vim-80-only) (push) Has been cancelled
CI / test_ale (--vim-90-only) (push) Has been cancelled
Signed-off-by: Woshiluo Luo <woshiluo.luo@outlook.com>
2025-08-13 15:58:33 +00:00
rymdbar 92dd497e6c Add support for perl language server (#5003)
* Fix perl test case clean-up
* Add support for perl language server

Co-authored-by: cos <cos>
2025-08-13 16:57:11 +01:00
Nicolas Derumigny 6d7bc15d9a Add support for verible: language server + fixer (#4994)
* Add support for verible: language server + fixer
* verible: add default flag, rules support for verible-ls
2025-08-13 14:41:56 +00:00
w0rp 29f1ff2579 Add support for fortitude (fortran linter) #5004
* add support for fortitude fortran linter
* add fortitude fortran linter doc
* Add a fortitude linter test file
* docs listings are now alphabetically sorted

Co-Authored-By: gomfol12 <info@marekb.de>
2025-08-13 15:24:35 +01:00
bretello 7df94447c1 add preview for ALEFindReferences (#5001)
* add preview for ALEFindReferences
* ALEFindReferences: add -contents options and g:ale_references_show_contents option to configure default behaviour
* tests: add tests for ALEFindReferences -contents feature
* tests: update tsserver references tests with show_contents args
2025-08-13 14:21:48 +01:00
Yining c74b917648 add: support project-local ansible-lint (#5015)
Add support for project-local `ansible-lint` (via `uv`, `poetry`, and `pipenv`) 
when using the system-wide installed one is not possible or not desirable.
2025-08-13 14:19:15 +01:00
Jason Weir 5dfd1fdb9a Add configurable options support for redpen linter (#5006)
Redpen linter previously had hardcoded command-line options and duplicated
linter definitions across all supported file types (asciidoc, markdown,
review, rst, tex, text). This refactoring centralizes the linter definition
and adds support for user-configurable options via g:ale_redpen_options.

Key changes:
- Created ale#handlers#redpen#DefineLinter() to eliminate code duplication
- Added ale#handlers#redpen#GetCommand() to support configurable options
- All file types now use shared configuration and command building
- Added comprehensive test coverage for option handling
- Updated documentation for all affected file types

This allows users to customize redpen behavior with additional command-line
options while maintaining backward compatibility and reducing maintenance
overhead.
2025-08-13 13:06:06 +01:00
Ben Boeckel d6f1a47647 tombi: support its LSP (#5022)
* tombi: support its LSP
* tombi: support linting and formatting
2025-08-13 12:30:46 +01:00
Ben Boeckel 487d915984 doc/ale-rust: fix rust-analyzer typo (#5021) 2025-08-13 12:27:00 +01:00
w0rp c7f3ba9d41 Take Vim binaries from ALE release assets 2025-08-13 12:21:22 +01:00
Leo Correa c8890af8d4 Add initialization_options to Sorbet LSP linter (#4954)
* Add initialization_options to Sorbet LSP linter

Using a predefined object will ensure that Sorbet always receives an
object instead of an array. LSP defines the initializationOptions as
anything. Unfortunately Sorbet is too strict and raises an error when
anything other than an object is passed which causes the linter to fail

* Document empty objects will prevent Sorbet from properly initializing
2025-07-20 11:13:33 +01:00
F-Kearney 9abe393961 Added 'build/Debug' and 'build/Release' to g:ale_c_build_dir_names (#4322) (#5008) 2025-07-20 10:01:56 +00:00
w0rp a0572359ae Remove pytest.ini from project detection files
This breaks detecting the project root when editing tests with a nested
pytest.ini file where other project files are available. The other files
are so common we can just removes this entirely and test that we
ignore it in one case.
2025-06-24 07:47:15 +01:00
Horacio Sanson 5098dfd27e Fix golangci-lint fixer with version 2 (#4960)
CI / build_image (push) Has been cancelled
CI / test_ale (--linters-only) (push) Has been cancelled
CI / test_ale (--lua-only) (push) Has been cancelled
CI / test_ale (--neovim-07-only) (push) Has been cancelled
CI / test_ale (--neovim-08-only) (push) Has been cancelled
CI / test_ale (--vim-80-only) (push) Has been cancelled
CI / test_ale (--vim-90-only) (push) Has been cancelled
2025-05-17 20:28:17 +09:00
Oliver Albertini 7cdaaa645d [python/pyre.vim] use pyrefly executable (#4972)
https://github.com/facebook/pyrefly

The pyre project has evolved to pyrefly. This replaces the pyre linter
with a pyrefly one and removes the test files that were added for
finding the project root in the old pyre world.

Co-authored-by: Oliver Ruben Albertini <oliverruben@gmail.com>
2025-05-17 20:08:52 +09:00
Nikita Korolev 2f4a866591 Add initial support for named-checkzone linter (#4961)
CI / build_image (push) Has been cancelled
CI / test_ale (--linters-only) (push) Has been cancelled
CI / test_ale (--lua-only) (push) Has been cancelled
CI / test_ale (--neovim-07-only) (push) Has been cancelled
CI / test_ale (--neovim-08-only) (push) Has been cancelled
CI / test_ale (--vim-80-only) (push) Has been cancelled
CI / test_ale (--vim-90-only) (push) Has been cancelled
Co-authored-by: ds <ds@local>
2025-05-05 15:05:51 +09:00
Benjamin Block f9de268816 Adding Roc language linters and fixers. (#4966)
* `roc_language_server`

* `roc format`

* `roc format annotate`
2025-05-05 15:01:45 +09:00
Benjamin Block d0cdde7516 Add support for the Lean 4 LSP, served by lake. (#4952) 2025-04-26 10:48:39 +09:00
Jean-Philippe Guérard aac34cd45a Add bash to the linter aliases (#4948) 2025-04-16 02:28:32 +00:00
w0rp 6433d31f47 Update ale_disable_lsp documentation to clarify options
CI / build_image (push) Has been cancelled
CI / test_ale (--linters-only) (push) Has been cancelled
CI / test_ale (--lua-only) (push) Has been cancelled
CI / test_ale (--neovim-07-only) (push) Has been cancelled
CI / test_ale (--neovim-08-only) (push) Has been cancelled
CI / test_ale (--vim-80-only) (push) Has been cancelled
CI / test_ale (--vim-90-only) (push) Has been cancelled
2025-03-29 13:34:22 +00:00
w0rp 26ffb9dfa3 Implement ale.queue for calling ale#Queue in Lua 2025-03-27 12:40:11 +00:00
w0rp db43854ca3 Implement ale.pad in Lua 2025-03-27 12:40:11 +00:00
w0rp b85e5191a3 Implement ale.get_filename_mappings in Lua 2025-03-27 12:40:11 +00:00
w0rp ecf815891d Add ale.has to mirror ale#Has in Lua 2025-03-27 12:40:11 +00:00
w0rp bd591d47f2 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-27 12:40:11 +00:00
w0rp 400857d758 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-27 12:40:11 +00:00
w0rp cdbd218a82 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-27 12:40:11 +00:00