ablative docs
↑↓ move↵ openesc close
Stack Notebook ablative.com.au

AWL in your editor

Configure the stdio language server, Zed extension or Neovim integration.

Open .md

Any LSP editor

Run the AWL language server over stdio for editor integration

aion awl lsp [OPTIONS]

Use the language id and extension listed below. Let the editor launch the stdio process for the workspace. Use a main build for the current language additions described in these pages.

Transport
aion awl lsp uses stdio and language id awl. Keep stdout available for LSP messages.
Documents
Open/close and full-text changes, UTF-16 positions, diagnostics and document formatting.
Navigation
Document symbols, definition, hover, references and document highlights.
Editing
Prepared rename and completion. Completion triggers include > and :.
Implementation
crates/aion-awl-lsp/src/server.rs:88–126 publishes these capabilities. editors/zed-awl and editors/nvim-awl carry the supplied editor integrations.

Zed

Install Rust through rustup, then open Zed’s Extensions page. Choose Install Dev Extension and select the checkout’s editors/zed-awl directory. Open an AWL file and select the AWL language.

The extension finds Aion on the editor’s path. Override the binary path with these settings when the desired build lives elsewhere.

{
  "lsp": {
    "awl": {
      "binary": {
        "path": "/absolute/path/to/aion",
        "arguments": [
          "awl",
          "lsp"
        ]
      }
    }
  }
}

The extension fetches its pinned Tree-sitter grammar from the public mirror named in its manifest. Read Zed’s log for extension compilation or language-server launch failures.

Neovim

Neovim 0.11 or later can use this built-in LSP configuration directly. It registers the filetype and starts the server for AWL files, including files outside a Git workspace.

vim.filetype.add({ extension = { awl = "awl" } })
vim.lsp.config("awl", {
  cmd = { "aion", "awl", "lsp" },
  filetypes = { "awl" },
  root_markers = { ".git" },
  workspace_required = false,
})
vim.lsp.enable("awl")

The checkout’s editors/nvim-awl package also supplies filetype detection, an LSP config and optional format-on-save setup. Tree-sitter highlighting needs a separately installed AWL parser; LSP checking and formatting work through the Aion command.

Use the editor’s LSP log to diagnose launch failures. Confirm that its process environment can find the same executable used in the terminal.

On main, editors/zed-awl/src/lib.rs:9–46 selects the language-server command; editors/zed-awl/extension.toml:9–24 selects the grammar. The Neovim plugin’s setup is editors/nvim-awl/lua/awl/init.lua:96–120.