summaryrefslogtreecommitdiff
path: root/docs/usage-examples.md
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2025-09-06 10:25:36 +0300
committerPaul Buetow <paul@buetow.org>2025-09-06 10:25:36 +0300
commit5be9532cfa630f4aacd8d879c3e4f5cc316da0fa (patch)
tree0a901680fccd1e2703ffdbd9284ccff932be1d67 /docs/usage-examples.md
parent70f1d0e78c57dfa5beae779b3d392b6e6fa44c14 (diff)
feat(lsp): configurable inline/chat triggers; switch inline markers to >text>/>>text>; update docs and example config; tests updated to new triggers and raise LSP coverage to >=85%; chore: remove semicolon legacy; chore(mage): auto-refresh coverage daily if docs/coverage.out is older than 24h
Diffstat (limited to 'docs/usage-examples.md')
-rw-r--r--docs/usage-examples.md104
1 files changed, 0 insertions, 104 deletions
diff --git a/docs/usage-examples.md b/docs/usage-examples.md
deleted file mode 100644
index 9abb0b8..0000000
--- a/docs/usage-examples.md
+++ /dev/null
@@ -1,104 +0,0 @@
-# Hexai usage and examples
-
-This document describes how to run the LSP server, configure Helix, use in-editor chat,
-inline triggers, code actions, and the CLI — with examples.
-
-## LSP server
-
-- Run over stdio: `hexai-lsp`
-- Flags:
- - `-version`: print Hexai version and exit.
- - `-log`: path to log file (default `/tmp/hexai-lsp.log`).
-
-### Configure in Helix
-
-In `~/.config/helix/languages.toml`:
-
-```toml
-[[language]]
-name = "go"
-auto-format = true
-diagnostic-severity = "hint"
-formatter = { command = "goimports" }
-language-servers = [ "gopls", "golangci-lint-lsp", "hexai" ]
-
-[language-server.hexai]
-command = "hexai-lsp"
-```
-
-Note: additional LSPs (`gopls`, `golangci-lint-lsp`) are optional; Hexai works without them.
-
-## In-editor chat
-
-Ask a question at the end of a line and receive the answer inline.
-
-- End your question line with a trigger: `?>`, `!>`, or `:>`.
-- Hexai removes only the trailing `>` from the question line (and keeps your trailing punctuation). The inline code-completion trigger `;;text;` remains unchanged.
-- It inserts a blank line, then a reply line prefixed with `> `, then one extra newline so most
- editors place the cursor on a fresh blank line after the answer.
-- If a `>` reply already exists below the question, Hexai won’t answer again.
-
-Example:
-
-```text
-What is a slice in Go?>
-
-> A slice is a dynamically-sized, flexible view into the elements of an array. It references
-> an underlying array and tracks length/capacity; most Go code uses slices instead of arrays.
-
-```
-
-Context: Hexai includes up to the three most recent Q/A pairs above the question when asking the LLM, so follow-ups remain on topic (e.g., “Are there many tourists?” after a location answer).
-
-## Inline triggers
-
-Hexai supports inline prompt tags you can type in code to request an action from the LLM and then auto-clean the tag. The strict semicolon form is supported:
-
-- `;do something;` — Hexai uses the text between semicolons as the instruction and removes only the prompt. Strict form requires no space after the first `;` and no space before the closing `;`.
-- `;;do someting;` - Same as above, but replace the current line with the completion
-
-Spaced variants (e.g., `; spaced ;`) are ignored.
-
-## Code actions
-
-Operate on the current selection in Helix:
-
-- Rewrite selection: finds the first instruction inside the selection and rewrites accordingly.
-- Resolve diagnostics: gathers only diagnostics overlapping the selection and fixes them by editing the selected code; diagnostics outside the selection are not changed.
-- Implement unit test (Go): when editing a `.go` file, adds a code action to generate a unit test for the function under the cursor. If `<file>_test.go` exists, appends a new `Test*`; otherwise creates the test file with `package` and `import "testing"`.
-- Document code: adds idiomatic documentation comments to the selected code, preserving behavior and returning only the documented code.
-
-Instruction sources (first match wins):
-
-- Strict marker: `;text;` (no space after first `;`).
-- Line comments: `// text`, `# text`, `-- text`.
-- Single-line block comments: `/* text */`, `<!-- text -->`.
-
-## CLI usage
-
-Process text via the configured LLM:
-
-- `cat SOMEFILE.txt | hexai`
-- `hexai 'some prompt text here'`
-- `cat SOMEFILE.txt | hexai 'some prompt text here'` (stdin and arg are concatenated)
-
-Defaults: concise answers. If the prompt asks for commands, Hexai outputs only commands. Add the word `explain` to request a verbose explanation. Exit codes: `0` success, `1` provider/config error, `2` no input.
-
-### Examples
-
-```sh
-# From stdin only
-cat SOMEFILE.txt | hexai
-
-# From arg only
-hexai 'summarize: list 3 bullets'
-
-# From both (stdin first, then arg)
-cat SOMEFILE.txt | hexai 'explain the tradeoffs'
-
-# Commands-only output (no explanation)
-hexai 'install ripgrep on macOS'
-
-# Verbose explanation
-hexai 'install ripgrep on macOS and explain'
-```