Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

hone-extensions

11 built-in language extension packs (V1 system). Tests via npm test (Vitest).

Extensions

#DirectoryLanguages
1typescript/TypeScript, JavaScript, JSX, TSX
2python/Python
3rust/Rust
4go/Go
5cpp/C, C++
6html-css/HTML, CSS, SCSS
7json/JSON, JSONC
8markdown/Markdown
9docker/Dockerfile
10toml-yaml/TOML, YAML
11git/Git commit messages, gitignore, etc.

Manifest Format

Each extension has a hone-extension.json manifest with the following structure:

Metadata:

  • id — unique extension identifier
  • name — display name
  • version — semver version string
  • publisher — publisher identifier
  • description — short description
  • license — SPDX license identifier
  • engines — compatible Hone version range
  • main — entry point file

Activation events:

Extensions declare when they activate. Examples:

  • onLanguage:typescript
  • onLanguage:python
  • onLanguage:rust

Contributes:

  • languages — language definitions (id, aliases, file extensions, language configuration)
  • lspServers — LSP server configurations
  • commands — contributed commands
  • snippets — snippet files per language
  • configuration — settings schema
  • keybindings — keyboard shortcuts

Adding a New Extension

  1. Create a directory under extensions/
  2. Add a hone-extension.json manifest
  3. Define language contributions (file extensions, aliases, language configuration)
  4. Optionally configure an LSP server, commands, snippets
  5. Add to the extension registry