Hello! đź‘‹
You’ve installed Ruff and added linting settings in your settings.json, but VS Code is not recognizing them (the lines are dimmed), and Ruff is not working as expected. The settings like "python.linting.ruffEnabled" may be dimmed because.. VS Code’s Python extension doesn’t officially support Ruff as a linter, or The Ruff extension is missing, or You’re using settings not recognized by your current extension setup.
First, Install Required Extensions. Make sure you have the Ruff extension (charliermarsh.ruff or ruff-lsp) installed and enabled. Also install the Python extension (ms-python.python) if you want to use Ruff through Python’s linting system.
Second, Use Correct Settings. If you’re using the Ruff extension directly,
"editor.formatOnSave": true,
"editor.defaultFormatter": "charliermarsh.ruff",
"ruff.enable": true
If you’re using Ruff with the Python extension (only works if supported),
"python.linting.enabled": true,
"python.linting.lintOnSave": true,
"python.linting.ruffEnabled": true
Third, Check via Command Palette. Open Command Palette → “Python: Select Linter”. If Ruff is not listed, it means it’s not supported by the Python extension.
Finally, Some settings don’t apply until you reload or restart VS Code.
Some Example Codes
vscode/settings.json
The settings.json
file is used for project-specific settings in VS Code. You can configure Ruff as follows.
{
// Enable automatic formatting on save
"editor.formatOnSave": true,
// Set Ruff as the default formatter
"editor.defaultFormatter": "charliermarsh.ruff",
// Python linting enabled (if supported by Python extension)
"python.linting.enabled": true,
"python.linting.lintOnSave": true,
"python.linting.ruffEnabled": true,
// Ruff extension enabled separately (if installed)
"ruff.enable": true
}
pyproject.toml
The pyproject.toml
file defines Python project-specific settings, including Ruff-specific rules.
[tool.ruff]
# Set maximum line length
line-length = 88
# Rules Ruff will check (errors, warnings, etc.)
select = ["E", "F", "W", "C90"]
# Exclude specific files or folders
exclude = [
".git",
"__pycache__",
".venv",
"env",
"venv"
]
# Ignore specific error codes
ignore = ["E501"] # Ignore long lines (example)
With these configurations, Ruff will automatically handle formatting and linting for your project code.
Thx, Have a good one!