Address review feedback on #8186:
- add ty.toml to ty rootMarkers so ty.toml-only projects pass the
loadConfig marker gate (Codex P2, roboomp should-fix)
- add ty.toml to PYTHON_ROOT_MARKERS so project-local .venv/bin/ty
resolution runs for ty.toml-only projects (roboomp should-fix)
- add a ty.toml-only regression test covering both the detection
gate and the local venv bin resolution path
- move the changelog entry from the released [16.3.11] section into
[Unreleased] (roboomp should-fix)
Add ty (ty server) to defaults.json behind pyright/basedpyright/pylsp
in primary selection order and ahead of ruff (linter). ty uses the
generic LSP client path with no adapter code; settings.ty pass-through
works via the existing settings field.
- defaults.json: insert ty entry between pylsp and ruff
- lsp-regressions.test.ts: 4 tests (selection order for .py/.pyi,
auto-detect via $which + pyproject.toml, coexistence with ruff)
- CHANGELOG.md: Added entry under [Unreleased] referencing #4617Closes#4617
Adds an `expert` server entry (binary `expert`, invoked `expert --stdio`)
to the built-in LSP defaults, auto-detected for Mix projects
(`mix.exs`/`mix.lock`). Placed after `elixirls` so elixir-ls remains the
primary navigation server when both binaries are installed; this keeps the
default getServerForFile() behavior unchanged. Absent-binary setups are
unaffected by loadConfig's PATH/root-marker gating.
Includes a docs row, changelog entry, and a regression test pinning that
`.ex` files match `expert` and that `elixirls` still sorts ahead of it.
- Updated root marker detection to read the directory once and match glob markers against top-level entries, preventing recursive scans when checking project roots.
- Adjusted root-marker glob error handling to warn on directory listing failures and treat the marker set as absent when unreadable.
- Reduced marksman's configured warmup timeout from 15,000 ms to 2,000 ms in LSP defaults.
- Removed built-in `taplo` from `src/lsp/defaults.json`, so TOML files no longer start a default LSP server.
- Condensed many `defaults.json` arrays and option blocks to a compact single-line style.
Servers like marksman (.NET) write [INF]/[DBG] startup logs to stderr.
peekStderr() captures these and includes them verbatim in the warning
message, producing confusing output.
Filter timestamped [INF]/[DBG]/[VRB] lines before surfacing stderr as
error messages. Also give marksman a 15s warmupTimeoutMs — its .NET
runtime needs longer than the 5s default on arm64.
Fixes#667
The fwcd/kotlin-language-server is deprecated in favor of the official
JetBrains Kotlin LSP (github.com/Kotlin/kotlin-lsp). Update the default
server entry to use kotlin-lsp with --stdio arg.
Install: brew install JetBrains/utils/kotlin-lsp
- Added SwiftLint linter client with JSON reporter support for Swift file linting.
- Changed SwiftLint configuration to use 'lint' command with JSON reporter for structured output.
- Changed bash.virtualTerminal default setting from 'on' to 'off' for standard non-interactive execution.
- Implemented SwiftLintClient with lint() method that executes swiftlint with JSON output and converts violations to LSP diagnostics.
- Added bash.virtualTerminal settings option with 'on' (PTY-backed interactive) and 'off' (standard non-interactive) values.