Editor support generalized: shared core, language server, Vim and VS Code (from dev eb5baf9cbe59)

doc/edit/ now holds a shared Python implementation of the language's
structural layer (klammertext_edit.py) and a dependency-free language
server (klammertext_ls.py), with integrations for Emacs, Sublime Text,
Vim, and Visual Studio Code.  The editor test suite in tst/ covers the
core's API and CLI, the language server protocol, the VS Code
extension, headless Vim, and Emacs byte-equality.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-27 15:01:49 +02:00
parent 73ed7f3d5d
commit f855c5ccae
27 changed files with 3918 additions and 1170 deletions

View File

@@ -0,0 +1,85 @@
{
"name": "klammertext",
"displayName": "Klammertext",
"description": "Klammertext language support: syntax highlighting, delimiter matching, structural reindentation, table alignment, and delimiter diagnostics.",
"version": "0.1.0",
"publisher": "klammertext",
"license": "SEE LICENSE IN THE KLAMMERTEXT DISTRIBUTION",
"engines": {
"vscode": "^1.75.0"
},
"categories": [
"Programming Languages"
],
"main": "./extension.js",
"activationEvents": [
"onLanguage:klammertext"
],
"capabilities": {
"untrustedWorkspaces": {
"supported": false,
"description": "The extension runs the Klammertext language server (a local Python process)."
}
},
"contributes": {
"languages": [
{
"id": "klammertext",
"aliases": [
"Klammertext"
],
"extensions": [
".kt",
".k"
],
"configuration": "./language-configuration.json"
}
],
"grammars": [
{
"language": "klammertext",
"scopeName": "text.klammertext",
"path": "./syntaxes/klammertext.tmLanguage.json"
}
],
"commands": [
{
"command": "klammertext.jumpToMatch",
"title": "Klammertext: Jump to Matching Delimiter"
},
{
"command": "klammertext.alignTable",
"title": "Klammertext: Align Table"
}
],
"keybindings": [
{
"command": "klammertext.jumpToMatch",
"key": "ctrl+alt+j",
"mac": "cmd+alt+j",
"when": "editorTextFocus && editorLangId == klammertext"
},
{
"command": "klammertext.alignTable",
"key": "ctrl+alt+a",
"mac": "cmd+alt+a",
"when": "editorTextFocus && editorLangId == klammertext"
}
],
"configuration": {
"title": "Klammertext",
"properties": {
"klammertext.pythonPath": {
"type": "string",
"default": "python3",
"description": "Python interpreter used to run the Klammertext language server."
},
"klammertext.serverPath": {
"type": "string",
"default": "",
"description": "Full path to klammertext_ls.py. Leave blank to auto-locate: a copy next to the extension, ../shared/ relative to it (the Klammertext repository layout), or $KLAMMERTEXT_HOME/doc/edit/shared/."
}
}
}
}
}