# Example: Customizing Container Symbol Kinds and Extensions
#
# This example shows:
# 1. How to override which symbol kinds are treated as "containers" vs "leaves"
# 2. How to extend default file extension mappings with custom ones
language-servers:
typescript:
command: npx typescript-language-server --stdio
# Extensions are optional - defaults cover .js, .mjs, .cjs, .jsx, .ts, .mts, .cts, .tsx, .json
# Only specify extensions if you need to add custom mappings or override defaults
extensions:
# Example: Add a custom extension mapping
.mts: typescript # Already in defaults, shown for illustration
.custom.ts: typescript # Custom extension example
workspace_files:
- package.json
- tsconfig.json
symbols:
# Option 1: Use readable string names (recommended)
containerKinds:
- File
- Module
- Namespace
- Class
- Interface
- Enum
- Struct
- Object
# Note: Excluding "Package" means package symbols won't expand children
python:
command: pyright-langserver --stdio
# No extensions needed - defaults cover .py, .pyw, .pyi
workspace_files:
- pyproject.toml
- setup.py
symbols:
# Option 2: Mix strings and numbers (both work)
containerKinds:
- File # 1
- Module # 2
- Class # 5
- 10 # Enum (using number)
- Interface # 11
# If symbols.containerKinds is not specified, defaults are used:
# File, Module, Namespace, Package, Class, Interface, Enum, Struct, Object
csharp:
command: csharp-ls
workspace_files:
- '*.sln'
- '*.csproj'
# Using defaults - no extensions or symbols config needed