Repository navigation
Bump ALE past the proselint 0.16 fix; move Markdown ALE settings to ftplugin - #150
Merged
Merged
Conversation
Move the ALE submodule from 80ff84db (v4.0.0-48) to 422c0e8e (v4.0.0-169), the tip of ALE's master; no release tag follows dense-analysis/ale#5074 (d59cb7b3, fix-proselint), which runs `proselint check` from proselint 0.16.0 on. Drop the note in docs/proselint.md that said the pinned ALE could not run proselint. Closes #145 Co-Authored-By: AI Agent <noreply@harleypig.com>
The late ale.vim set the Markdown linters for every buffer under a TODO to move them to ftplugin/markdown.vim, which now exists; they are b:ale_linters there. The JSONC fixer was set both in the late ale.vim and in the JSON ftplugin, which also runs for JSONC buffers; the ftplugin keeps it. g:ale_disable_lsp was set in .vimrc and in the early ale.vim, both read before ALE loads; the early ale.vim keeps it, being where settings ALE needs before it loads belong. tests/vim/ale-settings.bats pins each. Refs #44 Co-Authored-By: AI Agent <noreply@harleypig.com>
This was referenced Nov 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Two commits, one per item.
from
80ff84db(v4.0.0-48) to422c0e8e(v4.0.0-169), the tip of ALE'smaster. No release tag follows fix-proselint dense-analysis/ale#5074 (d59cb7b3,fix-proselint): v4.0.0 is still ALE's newest tag. That commit asks
proselint for its version and runs
proselint check %tfrom 0.16.0 on,proselint %tbefore. The note indocs/proselint.mdsaying the pinnedALE could not run proselint is replaced by what ALE now does.
Small tidy-ups: envsubstitute help quote, old shell-lint warnings, proselint config path #44).
ale.vimsetg:ale_linters.markdownfor every buffer underTODO: Move to ftplugin/markdown.vim. It is now
b:ale_lintersinafter/ftplugin/markdown.vim, and the "no Markdown fixer" note movedwith it.
jq) was set in the lateale.vimand inafter/ftplugin/json.vim, which Vim'sftplugin/jsonc.vimruns forJSONC buffers (
runtime! ftplugin/json.vim). The lateale.vimcopy isgone; the JSON ftplugin keeps it.
g:ale_disable_lspwas set in.vimrcand in the earlyale.vim.Both are read before ALE's
plugin/ale.vim, which sets it to'auto'when nothing set it first. The early
ale.vimkeeps it, since that fileis where settings ALE needs before it loads belong; the
.vimrcline isgone.
docs/coc-ale-setup.mdanddocs/proselint.mdsay where thesesettings now live.
ALE changes between the two pins
121 commits. I read the log, and the diffs of every linter, fixer and helper
our settings name (gawk, hadolint, markdownlint, proselint, powershell,
sqlint, systemd-analyze, vint, tflint, yamllint; fixers
remove_trailing_lines, trim_whitespace, jq, sqlformat, isort, yapf, shfmt,
terraform, google_java_format;
ale#path#FindNearestFile). Nothing breaksour settings:
markdownlint_cli,and
markdownlintandmarkdownlint-cliare kept as aliases. Ourmarkdownlintstill selects it (the new test checks this), andmarkdown_markdownlint_optionskeeps its name. Problems are now typed bymarkdownlint's own
error/warninginstead of all being warnings, andALE's messages name the linter
markdownlint_cli. A newmarkdownlint_cli2linter exists;g:ale_linters_explicitkeeps it off.ale#path#FindNearestFilenow resolves symlinks in the path itreturns. The Markdown ftplugin passes that path straight to markdownlint,
so nothing changes for it.
PYTHONWARNINGS=ignore. The optionpadding in the shfmt, sqlformat, terraform and google_java_format fixers
is now done by
ale#Pad, which builds the same command line.Test plan
bats tests/vim: 79 tests pass (75 before, plus the 4 new ones), on thenew pin.
bats tests/shell: passes.Testing evaluation
Run by the PR's author to the qa-tester's standard (this repository declares
no
team-managed:sentinel).covered by the existing
tests/vim/ale-linters.bats, which checks everyname we configure against the checked-out ALE and passes on the new pin.
tests/vim/ale-settings.bats.(
disable_lsp='auto') with theg:ale_disable_lspline removed fromthe early
ale.vim.checks both are ALE linter names or aliases): red (
linters='unset')before the move.
(
at_start=1,after_markdown=1) before the move.fixers='unset') with theJSONC line removed from the JSON ftplugin, which is what makes removing
the late
ale.vimcopy safe.Every test asserts
loaded_ale=1, so none passes on a Vim where ALE did notload.
Manual verification
PATHand thischeckout as
XDG_DOTVIM.This is very unique., open itwith
vim -N -u "$XDG_DOTVIM/.vimrc" file.md, wait a moment, run:copen.as Comparison of an uncomparable: 'very unique' is not comparable.
proselint file.mdand the list shows nothing from proselint.
Run result (headless, proselint 0.16.0 in a scratch venv, the
equivalent of steps 2 and 3 read with
ale#engine#GetLoclist):proselint 3: uncomparables: Comparison of an uncomparable: 'very unique' is not comparable.proselint 3: weasel_words.very: Substitute 'damn' every time ...b:ale_lintersread['markdownlint', 'proselint'].Review
Self-review of the whole diff (the code-review skill was not available to
this seat). Found one false statement in
docs/coc-ale-setup.md, now fixed:it said the late
ale.vimsets a Markdown fixer and that Markdown hasfixers of its own. It never had either, so Markdown gets the global
trailing-whitespace fixers, as ALE falls back to
*when a filetype namesnone.
Completion report
Markdown buffer.
with no access surface.
docs/json.mdstill lists the lateale.vimas also setting the JSONCfixer, and the Vim ftplugin's comment says
.vimrcsetsg:ale_disable_lsp; both are outside this PR's files and are left for afollow-up.
Closes #145
Refs #44
Co-Authored-By: AI Agent noreply@harleypig.com