redhat-developer / redhat-developer/vscode-yaml
Add yaml.trace.server log-level setting to control output channel verbosity
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 829
- Forks
- 260
- Avg merge
- 5h 43m
- Merged PRs (30d)
- 1
Description
Problem
The YAML extension's output channel currently logs at a fixed verbosity level. In large workspaces with many YAML files, the output channel fills up with repetitive schema-fetch and parse messages, making it hard to spot real errors. There is no way to set the log level to error-only without resorting to hacking yaml.trace.server = 'off' (which disables all server communication logging including errors).
What Users Want
A setting like:
"yaml.logLevel": "error" // "off" | "error" | "warning" | "info" | "verbose"
"error"— only show errors in the output channel (good for daily use)"warning"— errors + warnings"info"— default, current behaviour"verbose"— full LSP traffic (debugging aid)
Why Additive
The existing yaml.trace.server is an LSP-level raw traffic trace, not a semantic log level. Many users who want quieter output would use trace = 'off' and then miss real errors. A semantic log-level setting solves this without affecting LSP protocol observability.
Proposed Implementation
- Add
yaml.logLeveltopackage.jsoncontributes.configuration with enum and default"info". - Pass the value to the language server via initializationOptions.
- In the server, gate each
connection.console.logcall behind a level check.
Environment
- VS Code: 1.89+, large monorepo with 200+ YAML files
- Extension: redhat.vscode-yaml latest
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating package.json's contributes.configuration entry and the code that builds initializationOptions for the language server. Then find the server's connection.console.log calls and determine how their output can follow the proposed levels. Done means yaml.logLevel has the stated enum and info default, reaches the server, and filters output without changing yaml.trace.server behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript, yaml
- Domain
- developer-experience, tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100