hone-extensions
11 built-in language extension packs (V1 system). Tests via npm test (Vitest).
Extensions
| # | Directory | Languages |
|---|---|---|
| 1 | typescript/ | TypeScript, JavaScript, JSX, TSX |
| 2 | python/ | Python |
| 3 | rust/ | Rust |
| 4 | go/ | Go |
| 5 | cpp/ | C, C++ |
| 6 | html-css/ | HTML, CSS, SCSS |
| 7 | json/ | JSON, JSONC |
| 8 | markdown/ | Markdown |
| 9 | docker/ | Dockerfile |
| 10 | toml-yaml/ | TOML, YAML |
| 11 | git/ | Git commit messages, gitignore, etc. |
Manifest Format
Each extension has a hone-extension.json manifest with the following structure:
Metadata:
id— unique extension identifiername— display nameversion— semver version stringpublisher— publisher identifierdescription— short descriptionlicense— SPDX license identifierengines— compatible Hone version rangemain— entry point file
Activation events:
Extensions declare when they activate. Examples:
onLanguage:typescriptonLanguage:pythononLanguage:rust
Contributes:
languages— language definitions (id, aliases, file extensions, language configuration)lspServers— LSP server configurationscommands— contributed commandssnippets— snippet files per languageconfiguration— settings schemakeybindings— keyboard shortcuts
Adding a New Extension
- Create a directory under
extensions/ - Add a
hone-extension.jsonmanifest - Define language contributions (file extensions, aliases, language configuration)
- Optionally configure an LSP server, commands, snippets
- Add to the extension registry