redhat-developer / redhat-developer/vscode-yaml

Add yaml.trace.server log-level setting to control output channel verbosity

Open
#1,265 0 comments 0 reactions 0 assignees View on GitHub

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

  1. Add yaml.logLevel to package.json contributes.configuration with enum and default "info".
  2. Pass the value to the language server via initializationOptions.
  3. In the server, gate each connection.console.log call behind a level check.

Environment

  • VS Code: 1.89+, large monorepo with 200+ YAML files
  • Extension: redhat.vscode-yaml latest

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.