π [vim ale] Working or not with every version since version 2.0.0
Environment information
CLI:
Version: 2.2.7
Color support: true
Platform:
CPU Architecture: x86_64
OS: linux
Environment:
BIOME_LOG_PATH: unset
BIOME_LOG_PREFIX_NAME: unset
BIOME_CONFIG_PATH: unset
BIOME_THREADS: unset
NO_COLOR: unset
TERM: xterm-256color
JS_RUNTIME_VERSION: unset
JS_RUNTIME_NAME: unset
NODE_PACKAGE_MANAGER: unset
Biome Configuration:
Status: Not set
Path: unset
Workspace:
Open Documents: 0
Rule name
everything
Playground link
not reproducible
Expected result
The issue history is described here. With every new version, the language server either works or not.
For example, version 2.2.7 works, 2.3.1 does not.
Code of Conduct
- [x] I agree to follow Biome's Code of Conduct
How do you judge if it's working or not? Some diagnostics? Formatting? Anything else?
From the logs, it seems that by only updating Biome, Vim ALE no longer works although nothing else was changed, only Biome, in this case version 2.2.7 to 2.3.1. For me, it looks like no commands are received by Biome.
Strangely, some versions do not work. 2.3.1 is not the only version where this happened suddenly, see https://github.com/dense-analysis/ale/issues/4998.
With version 2.2.7
server.log.2025-10-28-11:
βbiome_cli::commands::daemon::Running Server{pid=473623, log_path=Some("/home/matheus/.cache/biome/biome-logs"), log_file_name_prefix="server.log"}
ββ INFO biome_cli::service::unix Trying to connect to socket /home/matheus/.cache/biome/biome-socket-2.2.7
ββ INFO biome_cli::service::unix Remove socket /home/matheus/.cache/biome/biome-socket-2.2.7
βbiome_service::scanner::watcher::run{}
βββbiome_lsp::server::initialize{}
ββ INFO biome_lsp::server Starting Biome Language Server...
ββ WARN biome_lsp::server The Biome Server was initialized with the deprecated `root_path` parameter: this is not supported, use `root_uri` instead
βββbiome_lsp::session::initialize{}
βββ
βββ
βββbiome_lsp::server::initialized{}
ββ INFO biome_lsp::server Attempting to load the configuration from 'biome.json' file
βββbiome_lsp::session::load_extension_settings{}
βββbiome_lsp::handlers::text_document::did_open{text_document_uri=file:///home/matheus/programmieren/c%2b%2b/argo/src-web/typescript/advertisement.ts, text_document_language_id=typescript}
βββbiome_service::file_handlers::try_from_language_id{language_id="typescript"}
βββ
ββ INFO biome_lsp::handlers::text_document No open project for path: BiomePath { path: "/home/matheus/programmieren/c++/argo/src-web/typescript/advertisement.ts", kind: Handleable, was_written: false }. Opening new project.
βββbiome_lsp::session::load_biome_configuration_file{base_path=FromLsp("/home/matheus/programmieren/c++/argo/src-web/typescript"), reload=false}
βββbiome_lsp::session::load_biome_configuration_file_internal{base_path=FromLsp("/home/matheus/programmieren/c++/argo/src-web/typescript"), force=false}
βββbiome_service::configuration::load_configuration{config_path=FromLsp("/home/matheus/programmieren/c++/argo/src-web/typescript")}
βββbiome_service::configuration::read_config{path_hint=FromLsp("/home/matheus/programmieren/c++/argo/src-web/typescript"), seek_root=true}
ββ ERROR biome_fs::fs Biome couldn't open the file "/home/matheus/programmieren/c++/argo/src-web/typescript/biome.json", reason:
β Os { code: 2, kind: NotFound, message: "No such file or directory" }
ββ ERROR biome_fs::fs Biome couldn't open the file "/home/matheus/programmieren/c++/argo/src-web/typescript/biome.jsonc", reason:
β Os { code: 2, kind: NotFound, message: "No such file or directory" }
ββ ERROR biome_fs::fs Biome couldn't open the file "/home/matheus/programmieren/c++/argo/src-web/biome.json", reason:
β Os { code: 2, kind: NotFound, message: "No such file or directory" }
ββ ERROR biome_fs::fs Biome couldn't open the file "/home/matheus/programmieren/c++/argo/src-web/biome.jsonc", reason:
β Os { code: 2, kind: NotFound, message: "No such file or directory" }
ββ ERROR biome_fs::fs Biome couldn't open the file "/home/matheus/programmieren/c++/argo/biome.json", reason:
β Os { code: 2, kind: NotFound, message: "No such file or directory" }
ββ ERROR biome_fs::fs Biome couldn't open the file "/home/matheus/programmieren/c++/argo/biome.jsonc", reason:
β Os { code: 2, kind: NotFound, message: "No such file or directory" }
ββ ERROR biome_fs::fs Biome couldn't open the file "/home/matheus/programmieren/c++/biome.json", reason:
β Os { code: 2, kind: NotFound, message: "No such file or directory" }
ββ ERROR biome_fs::fs Biome couldn't open the file "/home/matheus/programmieren/c++/biome.jsonc", reason:
β Os { code: 2, kind: NotFound, message: "No such file or directory" }
ββ ERROR biome_fs::fs Biome couldn't open the file "/home/matheus/programmieren/biome.json", reason:
β Os { code: 2, kind: NotFound, message: "No such file or directory" }
ββ ERROR biome_fs::fs Biome couldn't open the file "/home/matheus/programmieren/biome.jsonc", reason:
β Os { code: 2, kind: NotFound, message: "No such file or directory" }
ββ ERROR biome_fs::fs Biome couldn't open the file "/home/matheus/biome.json", reason:
β Os { code: 2, kind: NotFound, message: "No such file or directory" }
ββ ERROR biome_fs::fs Biome couldn't open the file "/home/matheus/biome.jsonc", reason:
β Os { code: 2, kind: NotFound, message: "No such file or directory" }
ββ ERROR biome_fs::fs Biome couldn't open the file "/home/biome.json", reason:
β Os { code: 2, kind: NotFound, message: "No such file or directory" }
ββ ERROR biome_fs::fs Biome couldn't open the file "/home/biome.jsonc", reason:
β Os { code: 2, kind: NotFound, message: "No such file or directory" }
ββ ERROR biome_fs::fs Biome couldn't open the file "/biome.json", reason:
β Os { code: 2, kind: NotFound, message: "No such file or directory" }
ββ ERROR biome_fs::fs Biome couldn't open the file "/biome.jsonc", reason:
β Os { code: 2, kind: NotFound, message: "No such file or directory" }
βββ
βββ
ββ INFO biome_lsp::session Configuration loaded successfully from disk.
ββ INFO biome_lsp::session Update workspace settings.
βββbiome_service::projects::insert_project{}
ββ DEBUG biome_service::projects Insert workspace folder /home/matheus/programmieren/c++/argo/src-web/typescript
βββ
βββbiome_service::workspace::server::update_settings{}
βββbiome_service::settings::merge_with_configuration{}
βββ
βββ
βββbiome_lsp::session::insert_and_scan_project{project_key=ProjectKey(1), path=BiomePath { path: "/home/matheus/programmieren/c++/argo/src-web/typescript", kind: Handleable, was_written: false }, scan_kind=KnownFiles, force=false}
βbiome_lsp::session::scan_project{project_key=ProjectKey(1), scan_kind=KnownFiles, force=false}
βbiome_service::scanner::scan{project_key=ProjectKey(1), folder="/home/matheus/programmieren/c++/argo/src-web/typescript", trigger=InitialScan, scan_kind=KnownFiles, force=false, verbose=false, watch=true}
βββbiome_service::scanner::scan_folder{folder="/home/matheus/programmieren/c++/argo/src-web/typescript"}
βββbiome_service::scanner::watcher::watch_folders{paths={"/home/matheus/programmieren/c++/argo/src-web/typescript"}}
βββ
βββ
β
βbiome_lsp::session::update_all_diagnostics{}
β
β
βββ
βββ
βββ
βββbiome_service::workspace::server::open_file_internal{reason=ClientRequest, path=/home/matheus/programmieren/c++/argo/src-web/typescript/advertisement.ts}
βββ
βββbiome_lsp::session::update_diagnostics{url=file:///home/matheus/programmieren/c%2b%2b/argo/src-web/typescript/advertisement.ts}
βββbiome_lsp::session::update_diagnostics_for_document{url=file:///home/matheus/programmieren/c%2b%2b/argo/src-web/typescript/advertisement.ts}
ββ DEBUG biome_service::workspace The file has the following feature sets: FeaturesSupported([Supported, Supported, Supported, Supported, Supported])
βββbiome_service::workspace::server::pull_diagnostics{rule_categories=[Syntax, Lint, Action], path=/home/matheus/programmieren/c++/argo/src-web/typescript/advertisement.ts, project_key=ProjectKey(1), skip=[], only=[]}
βββbiome_service::file_handlers::javascript::Linting JavaScript file{path=BiomePath { path: "/home/matheus/programmieren/c++/argo/src-web/typescript/advertisement.ts", kind: Handleable, was_written: false }, language=Js(JsFileSource { language: TypeScript { definition_file: false }, variant: Standard, module_kind: Module, version: ES2022, embedding_kind: None })}
βββ
ββ INFO biome_service::workspace::server Pulled 3 diagnostic(s), skipped 0 diagnostic(s) from /home/matheus/programmieren/c++/argo/src-web/typescript/advertisement.ts
βββ
ββ INFO biome_lsp::session Diagnostics sent to the client 3
βββ
βββ
βββ
With version 2.3.1
server.log.2025-10-28-11:
βbiome_cli::commands::daemon::Running Server{pid=468186, log_path=Some("/home/matheus/.cache/biome/biome-logs"), log_file_name_prefix="server.log"}
ββ INFO biome_cli::service::unix Trying to connect to socket /home/matheus/.cache/biome/biome-socket-2.3.1
ββ INFO biome_cli::service::unix Remove socket /home/matheus/.cache/biome/biome-socket-2.3.1
βbiome_service::scanner::watcher::run{}
βββbiome_lsp::server::initialize{}
ββ INFO biome_lsp::server Starting Biome Language Server...
ββ WARN biome_lsp::server The Biome Server was initialized with the deprecated `root_path` parameter: this is not supported, use `root_uri` instead
βββbiome_lsp::session::initialize{}
βββ
βββ
βββbiome_lsp::server::initialized{}
ββ INFO biome_lsp::server Attempting to load the configuration from 'biome.json' file
βββbiome_lsp::session::load_extension_settings{}
βββbiome_lsp::handlers::text_document::did_open{text_document_uri=file:///home/matheus/programmieren/c%2b%2b/argo/src-web/typescript/advertisement.ts, text_document_language_id=typescript}
βββbiome_service::file_handlers::try_from_language_id{language_id="typescript"}
βββ
ββ INFO biome_lsp::handlers::text_document No open project for path: BiomePath { path: "/home/matheus/programmieren/c++/argo/src-web/typescript/advertisement.ts", kind: Handleable, was_written: false }. Opening new project.
βββbiome_lsp::session::load_extension_settings{}
βββbiome_lsp::handlers::text_document::did_open{text_document_uri=file:///home/matheus/programmieren/c%2b%2b/argo/src-web/typescript/cart.ts, text_document_language_id=typescript}
βββbiome_service::file_handlers::try_from_language_id{language_id="typescript"}
βββ
ββ INFO biome_lsp::handlers::text_document No open project for path: BiomePath { path: "/home/matheus/programmieren/c++/argo/src-web/typescript/cart.ts", kind: Handleable, was_written: false }. Opening new project.
βββbiome_lsp::session::load_extension_settings{}
That's a nasty issue caused by LSP clients where the initialisation of the Language Server happens between two LSP methods:
- initialized
- text_document
Which you can see from the logs. These methods are called with no specific order when you open the editor with an open file. This is more evident in terminal editors such as vim or helix. It seems you're experiencing a deadlock from our side.
In the recent patches, we've tried to fix it somehow, but it seems that some editors are still afflicted. You can read more in this PR and the linked issues https://github.com/biomejs/biome/pull/7764
I am no terminal editor user. I could try using Helix and see if I can reproduce the issue. However, without a clear reproduction, I don't know how to move forward.
Reproduction
vim a.ts
System
Biome version 2.3.1 is installed globally.
Plugins (only important ones, rest probably not needed)
- vim-ale
vimrc
" Basic (priority)
set t_Co=256
"" Needed for 'set termguicolors'
let &t_8b = "\<Esc>[48:2:%lu:%lu:%lum"
let &t_8f = "\<Esc>[38:2:%lu:%lu:%lum"
" Plugins (priority)
"" vim-airline
let g:airline_powerline_fonts = 1
let g:airline_theme = 'molokai'
""" Symbols (See: https://github.com/vim-airline/vim-airline/issues/2706)
if !exists('g:airline_symbols')
let g:airline_symbols = {}
endif
let g:airline_left_sep = 'Β»'
let g:airline_left_sep = 'βΆ'
let g:airline_right_sep = 'Β«'
let g:airline_right_sep = 'β'
let g:airline_symbols.colnr = ' γ:'
let g:airline_symbols.colnr = ' β
:'
let g:airline_symbols.crypt = 'π'
let g:airline_symbols.linenr = 'β°'
let g:airline_symbols.linenr = ' β:'
let g:airline_symbols.linenr = ' β€:'
let g:airline_symbols.linenr = 'ΒΆ'
let g:airline_symbols.maxlinenr = ''
let g:airline_symbols.maxlinenr = 'γ'
let g:airline_symbols.branch = 'β'
let g:airline_symbols.paste = 'Ο'
let g:airline_symbols.paste = 'Γ'
let g:airline_symbols.paste = 'β₯'
let g:airline_symbols.spell = 'κ¨'
let g:airline_symbols.notexists = 'Ι'
let g:airline_symbols.whitespace = 'Ξ'
"" vim-ale
let g:ale_fix_on_save = 1
let g:ale_fixers =
\{
\ '*': ['remove_trailing_lines', 'trim_whitespace'],
\ 'bib': ['bibclean', 'remove_trailing_lines', 'trim_whitespace'],
\ 'cpp': ['clang-format', 'remove_trailing_lines', 'trim_whitespace'],
\ 'cmake': ['cmakeformat', 'remove_trailing_lines', 'trim_whitespace'],
\ 'css': ['css-beautify', 'remove_trailing_lines', 'stylelint', 'trim_whitespace'],
\ 'desktop': ['remove_trailing_lines', 'trim_whitespace'],
\ 'html': ['remove_trailing_lines', 'tidy', 'trim_whitespace'],
\ 'java': ['clang-format', 'remove_trailing_lines', 'trim_whitespace'],
\ 'json': ['dprint', 'remove_trailing_lines', 'trim_whitespace'],
\ 'mail': ['remove_trailing_lines', 'trim_whitespace'],
\ 'make': ['remove_trailing_lines', 'trim_whitespace'],
\ 'markdown': ['dprint', 'remove_trailing_lines', 'trim_whitespace'],
\ 'PKGBUILD': ['remove_trailing_lines', 'shfmt', 'trim_whitespace'],
\ 'po': ['remove_trailing_lines', 'trim_whitespace'],
\ 'python': ['autoflake', 'autopep8', 'isort', 'remove_trailing_lines', 'ruff', 'trim_whitespace', 'yapf'],
\ 'sh': ['remove_trailing_lines', 'shfmt', 'trim_whitespace'],
\ 'systemd': ['remove_trailing_lines', 'trim_whitespace'],
\ 'tex': ['latexindent', 'remove_trailing_lines', 'trim_whitespace'],
\ 'text': ['remove_trailing_lines', 'trim_whitespace'],
\ 'toml': ['dprint', 'remove_trailing_lines', 'trim_whitespace'],
\ 'typescript': ['dprint', 'remove_trailing_lines', 'trim_whitespace'],
\ 'vim': ['remove_trailing_lines', 'trim_whitespace'],
\ 'xml': ['remove_trailing_lines', 'trim_whitespace', 'xmllint'],
\ 'yaml': ['remove_trailing_lines', 'trim_whitespace', 'yamlfmt'],
\ 'zsh': ['remove_trailing_lines', 'shfmt', 'trim_whitespace']
\}
let g:ale_linter_aliases =
\{
\ 'PKGBUILD': 'sh',
\ 'zsh': 'sh'
\}
""" Language servers are handled by YouCompleteMe and thus not included here.
let g:ale_linters =
\{
\ 'bib': ['bibclean'],
\ 'cpp': ['clangtidy'],
\ 'cmake': ['cmake_lint'],
\ 'css': ['stylelint'],
\ 'desktop': ['desktop_file_validate'],
\ 'gitcommit': ['gitlint'],
\ 'html': ['htmlhint', 'tidy'],
\ 'java': ['javac', 'pmd'],
\ 'json': ['jq'],
\ 'mail': [],
\ 'make': ['checkmake'],
\ 'markdown': ['markdownlint'],
\ 'PKGBUILD': ['shell', 'shellcheck'],
\ 'po': ['msgfmt'],
\ 'python': ['bandit', 'mypy', 'pycodestyle', 'pydocstyle', 'pyflakes', 'pyright', 'ruff', 'vulture'],
\ 'sh': ['shell', 'shellcheck'],
\ 'systemd': ['systemd_analyze'],
\ 'tex': ['chktex'],
\ 'text': [],
\ 'toml': [],
\ 'typescript': ['biome'],
\ 'vim': ['vint'],
\ 'xml': ['xmllint'],
\ 'yaml': ['yamllint'],
\ 'zsh': ['shell', 'shellcheck']
\}
let g:ale_linters_explicit = 1
let g:ale_virtualtext_cursor = 0
""" c
let g:ale_c_clangformat_options = '--style file:' . $XDG_CONFIG_HOME . '/clang/clang-format.yaml'
""" cmake
let g:ale_cmake_cmake_lint_options = '-c=' . $XDG_CONFIG_HOME . '/cmake-lang/cmake-lang.yaml'
let g:ale_cmake_cmakeformat_options = '-c=' . $XDG_CONFIG_HOME . '/cmake-lang/cmake-lang.yaml'
""" cpp
let g:ale_cpp_clangtidy_extra_options = '--config-file=' . $XDG_CONFIG_HOME . '/clang/clang-tidy.yaml'
""" css
let g:ale_css_css_beautify_options = '--config ' . $XDG_CONFIG_HOME . '/js-beautify/css-beautify.json'
let g:ale_css_stylelint_options = '--cache --cache-location ' . $XDG_CACHE_HOME . '/stylelint/ --config ' . $XDG_CONFIG_HOME . '/stylelint/stylelintrc.yaml'
""" dprint
let g:ale_dprint_config = $XDG_CONFIG_HOME . '/dprint/dprint.json'
""" html
let g:ale_html_htmlhint_options = '-c ' . $XDG_CONFIG_HOME . '/htmlhint/htmlhintrc.yaml'
let g:ale_html_tidy_options = '-config ' . $XDG_CONFIG_HOME . '/tidy/tidyrc -q'
""" java
let g:ale_java_pmd_options = '--cache ' . $XDG_CACHE_HOME . '/pmd/cache -R ' . $XDG_CONFIG_HOME . '/pmd/rules.xml'
""" markdown
let g:ale_markdown_markdownlint_executable = 'markdownlint-cli2'
let g:ale_markdown_markdownlint_options = '--config ' . $XDG_CONFIG_HOME . '/markdownlint/.markdownlint.yaml'
""" python
let g:ale_python_mypy_options = '--strict'
let g:ale_python_pycodestyle_options = '--max-line-length 120'
let g:ale_python_pyright_config =
\{
\ 'pyright':
\ {
\ 'disableLanguageServices': v:true,
\ 'disableOrganizeImports': v:false
\ },
\ 'python':
\ {
\ 'analysis':
\ {
\ 'autoImportCompletions': v:true,
\ 'autoSearchPaths': v:true,
\ 'diagnosticMode': 'openFilesOnly',
\ 'diagnosticSeverityOverrides': {},
\ 'extraPaths': [],
\ 'logLevel': 'Information',
\ 'stubPath': '',
\ 'typeCheckingMode': 'strict',
\ 'typeshedPaths': [],
\ 'useLibraryCodeForTypes': v:true
\ },
\ 'pythonPath': 'python',
\ 'venvPath': ''
\ }
\}
let g:ale_python_vulture_options = '--min-confidence 100'
""" sh
let g:ale_sh_shellcheck_options = '-a -Calways -o all -P SCRIPTDIR -S style -x'
let g:ale_sh_shfmt_options = '-ci -fn -i 4 -sr'
""" tex
let g:ale_tex_chktex_options = '-H -I -n 36 -n 44'
let g:ale_tex_latexindent_options = '-c /tmp/latexindent/'
""" typescript
let g:ale_biome_lsp_project_root = $XDG_CONFIG_HOME . '/biome/'
""" yaml
let g:ale_yaml_yamlfmt_options = '-conf ' . $XDG_CONFIG_HOME . '/yamlfmt/yamlfmt.yaml'
let g:ale_yaml_yamllint_options = '-c ' . $XDG_CONFIG_HOME . '/yamllint/yamllint.yaml'
"" vim-code-minimap
let g:minimap_auto_start = 1
let g:minimap_git_colors = 1
let g:minimap_highlight_search = 1
let g:minimap_width = 25
"" vim-gruvbox-community
let g:gruvbox_italic = 1
"" vim-nerdtree
let g:NERDTreeShowHidden = 1
"" vim-youcompleteme
let g:ycm_enable_semantic_highlighting = 1
""" Clang, jdt.ls, Jedi and TSServer are supported natively and therefore not included here.
let g:ycm_language_server =
\[
\ {
\ 'cmdline': ['autotools-language-server'],
\ 'filetypes': ['automake', 'config', 'make'],
\ 'name': 'autotools'
\ },
\ {
\ 'cmdline': ['cmake-language-server', 'start'],
\ 'filetypes': ['cmake'],
\ 'name': 'cmake'
\ },
\ {
\ 'cmdline': ['vscode-css-language-server', '--stdio'],
\ 'filetypes': ['css'],
\ 'name': 'css'
\ },
\ {
\ 'cmdline': ['vscode-html-language-server', '--stdio'],
\ 'filetypes': ['html'],
\ 'name': 'html'
\ },
\ {
\ 'cmdline': ['java-language-server'],
\ 'filetypes': ['java'],
\ 'name': 'java'
\ },
\ {
\ 'capabilities':
\ {
\ 'textDocument':
\ {
\ 'completion':
\ {
\ 'completionItem':
\ {
\ 'snippetSupport': v:true
\ }
\ }
\ }
\ },
\ 'cmdline': ['vscode-json-language-server', '--stdio'],
\ 'filetypes': ['json'],
\ 'name': 'json'
\ },
\ {
\ 'cmdline': ['marksman', 'server'],
\ 'filetypes': ['markdown'],
\ 'name': 'markdown'
\ },
\ {
\ 'cmdline': ['mutt-language-server'],
\ 'filetypes': ['neomuttrc'],
\ 'name': 'neomuttrc'
\ },
\ {
\ 'cmdline': ['termux-language-server'],
\ 'filetypes': ['PKGBUILD'],
\ 'name': 'pkgbuild'
\ },
\ {
\ 'cmdline': ['requirements-language-server'],
\ 'filetypes': ['requirements'],
\ 'name': 'requirements'
\ },
\ {
\ 'cmdline': ['bash-language-server', 'start'],
\ 'filetypes': ['sh', 'zsh'],
\ 'name': 'shell'
\ },
\ {
\ 'cmdline': ['texlab'],
\ 'filetypes': ['tex'],
\ 'name': 'tex'
\ },
\ {
\ 'cmdline': ['tmux-language-server'],
\ 'filetypes': ['tmux'],
\ 'name': 'tmux'
\ },
\ {
\ 'cmdline': ['vim-language-server', '--stdio'],
\ 'filetypes': ['vim'],
\ 'name': 'vim'
\ },
\ {
\ 'capabilities':
\ {
\ 'textDocument':
\ {
\ 'completion':
\ {
\ 'completionItem':
\ {
\ 'snippetSupport': v:true
\ }
\ }
\ },
\ 'workspace':
\ {
\ 'configuration': v:true
\ }
\ },
\ 'cmdline': ['yaml-language-server', '--stdio'],
\ 'filetypes': ['yaml'],
\ 'name': 'yaml'
\ }
\]
"" Setup (The plugins need to be loaded at the end of the plugin configuration.)
call plug#begin($XDG_DATA_HOME . '/vim/plugged/')
Plug '/usr/share/vim/vimfiles/'
call plug#end()
" Autocommands
augroup vimrc
autocmd!
"" File types
autocmd vimrc BufNewFile,BufRead *.html set filetype=html
"" Navigation
autocmd vimrc VimEnter * NERDTree | wincmd p
autocmd vimrc BufEnter NERD_tree_* | execute 'normal R'
augroup end
" Basic
colorscheme gruvbox
filetype indent on
filetype plugin on
set autoindent
set autoread
set background=dark
set backspace=eol,indent,start
set breakindent
set cdhome
set encoding=UTF-8
scriptencoding UTF-8
set laststatus=2
set list
set listchars=tab:>-,trail:~
" vint: -ProhibitSetNoCompatible
set nocompatible
set number
set shiftwidth=4
set smartindent
set termguicolors
set ttimeoutlen=10
syntax on
" Commands
set history=100
set wildmenu
" Cursor
set cursorline
set cursorlineopt=line,number
set scrolloff=5
" Search
set hlsearch
set ignorecase
set incsearch
set showmatch
set smartcase
" Shortcuts
nnoremap <C-q> :qa<CR>
nnoremap <C-t> :NERDTreeToggle<CR>
" Spell checking
set spell
set spelllang=de_de,en_gb
" Tabs
set expandtab
set smarttab
set tabstop=4
" XDG
set runtimepath^=$XDG_CONFIG_HOME/vim/
set runtimepath+=$XDG_DATA_HOME/vim/
set runtimepath+=$XDG_CONFIG_HOME/vim/after/
set packpath^=$XDG_DATA_HOME/vim/,$XDG_CONFIG_HOME/vim/
set packpath+=$XDG_CONFIG_HOME/vim/after/,$XDG_DATA_HOME/vim/after/
let g:netrw_home = $XDG_DATA_HOME . '/vim/'
call mkdir($XDG_DATA_HOME . '/vim/spell/', 'p')
set backupdir=$XDG_STATE_HOME/vim/backup/ | call mkdir(&backupdir, 'p')
set directory=$XDG_STATE_HOME/vim/swap/ | call mkdir(&directory, 'p')
set undodir=$XDG_STATE_HOME/vim/undo/ | call mkdir(&undodir, 'p')
set viewdir=$XDG_STATE_HOME/vim/view/ | call mkdir(&viewdir, 'p')
set viminfofile=$XDG_STATE_HOME/vim/viminfo
" Highlights (Set at the end to not be overwritten.)
highlight clear ALEError
highlight ALEError cterm=underline ctermfg=red
highlight clear ALEWarning
highlight ALEWarning cterm=underline ctermfg=yellow
highlight clear SpellBad
highlight SpellBad cterm=underline
I believe this is caused by ale hanging if being sent with unsupported methods. More specifically in this case, it is workspace/configure
See
https://github.com/dense-analysis/ale/issues/5058#issuecomment-3463326122