Opening a .cu/.cuh file previously resolved to no language, so no server attached and there was no highlighting. Wire CUDA end to end, mirroring the existing C/C++ path: - Bundle tree-sitter-cuda (0.21) as a new BUILTIN_LANGUAGES entry claiming .cu/.cuh, with its own HIGHLIGHTS_QUERY. A dedicated grammar rather than reusing cpp: the C++ grammar errors on the <<<grid, block>>> kernel-launch syntax. The crate rides tree-sitter-language 0.1 (its tree-sitter dep is dev-only), so it shares the ABI crate with the other grammars — no second tree-sitter in the graph. - pmacs.lsp.config.cuda targets clangd (the same binary that serves C/C++; language_id "cuda" so clangd enters its CUDA parse mode), and .cu/.cuh filetype fallbacks map to "cuda" to keep the LSP id stable if the grammar is ever dropped. LspStyleView layers clangd's CUDA semantic tokens on top, exactly as for C/C++. Bite-verified acceptance: - cuda_grammar_loads_and_parses_kernel_launch — proves the 0.21 grammar's ABI is accepted by the 0.26 core (set_language succeeds at runtime, which the compile step cannot confirm) and that the entry wired the CUDA grammar, not a cpp fallback: the <<<...>>> launch parses without error, whereas the cpp grammar reports an error on the same source (verified out of band). - builtin_languages_include_cuda / language_for_path_resolves_cuda_ extensions — entry presence and .cu/.cuh detection. - m4_12_default_bundle_wires_cuda — config.cuda targets clangd and the filetype + grammar detection resolve to "cuda" through the loaded runtime. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YJ9FQ832QwftJXCD9LeFan |
||
|---|---|---|
| .. | ||
| async.lua | ||
| autosave.lua | ||
| comment.lua | ||
| completion.lua | ||
| desktop.lua | ||
| editops.lua | ||
| fs.lua | ||
| indent.lua | ||
| killring.lua | ||
| listview.lua | ||
| lsp.lua | ||
| mcp.lua | ||
| pair.lua | ||
| recentf.lua | ||
| saveplace.lua | ||
| syntax.lua | ||