language-support

Solid

Adding tree-sitter language coverage

AI & Automation 69 stars 13 forks Updated today MIT

Install

View on GitHub

Quality Score: 81/100

Stars 20%
61
Recency 20%
100
Frontmatter 20%
40
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# Language Support Use this to add a new language to basemind's extraction. Supported languages today include Rust, Python, TypeScript/JSX, JavaScript, Go. ## Inputs needed - A tree-sitter grammar crate (e.g. `tree-sitter-elixir`) reachable via the `tree-sitter-language-pack` umbrella crate basemind already depends on, or as a direct dep. - The grammar's upstream `queries/tags.scm` from the tree-sitter org repo — it's the canonical starting point for symbol + reference extraction. ## Steps 1. **Register the language** - Add the lang ID + file extensions to `src/lang.rs`'s language registry. - Add the extensions to the scanner's accepted-extension set in `src/scanner.rs` (or the central glob if one exists). 2. **L1 (outline) queries** - Adapt the upstream `tags.scm` to basemind's L1 capture shape: `@symbol.function`, `@symbol.method`, `@symbol.class`, etc. mapped to `extract::SymbolKind`. - Place query string in `src/queries/<lang>.rs` (or under `src/extract/queries/`, matching the existing layout). - Wire into `extract::l1::extract`'s language dispatch. 3. **L2 (calls) queries** - Add a call query: callees as `@call.callee` plus optional receiver / type info. - Wire into `extract::l2::extract`'s dispatch. Remember to populate `start_row` / `start_col` on `Call`. 4. **Fixtures + smoke test** - Add a synthetic file under `tests/fixtures/<lang>/` exercising at least: one function def, one method, one call site, one import. - Add assertions in `...

Details

Author
Goldziher
Repository
Goldziher/basemind
Created
2 years ago
Last Updated
today
Language
Rust
License
MIT

Integrates with

Bundled in these plugins

Similar Skills

Semantically similar based on skill content — not just same category

AI & Automation Solid

lsp-setup

Configure a Language Server (LSP) for a specific language so editor/agent tooling — diagnostics, go-to-definition, find-references, rename — works. Use when you need to: configure LSP, lsp setup, set up or install a language server, fix 'no LSP server configured' / 'server not installed', choose between servers (basedpyright vs pyright vs ty vs ruff), or wire .codex/lsp-client.json / .opencode/lsp.json. 언어서버 설정. Routes by file extension to references/<language>/README.md for the exact builtin server, per-OS install commands (macOS/Linux/Windows), config snippets for both config files, initialization options, alternatives, and troubleshooting. Ships scripts: detect-lsp.ts (scan a project for languages + each server's install/config status) and verify-lsp.ts (run a real diagnostics roundtrip). Covers typescript, python, go, rust, c/c++, java, kotlin, c#/razor, swift, ruby, php, dart, elixir, zig, lua, bash, yaml, terraform, haskell, julia.

66,650 Updated today
code-yeongyu
AI & Automation Solid

add-language

Use when adding a new interface language (locale) to the app, or when asked to translate the UI into another language. Covers the translation file, the two language pickers, the i18n resources, and the user doc that names the available languages.

38 Updated today
ZoneMinder
Code & Development Listed

setup

Use when setting up a project, adding linting, formatting, git hooks, or type checking. Detects the language and installs that ecosystem's lint/format/hooks toolchain (JS/TS, Python, Go, Rust).

7 Updated today
tartinerlabs