Skip to content

Create nemo-vscode VS Code extension #63

@geoffjay

Description

@geoffjay

Summary

Create a VS Code extension that provides zero-configuration Nemo XML authoring support: registers nemo-lsp as the language server, adds TextMate grammar for syntax highlighting, and provides a "Preview in Nemo" command.

Context

VS Code users should get a complete authoring experience without manual configuration. The extension:

  1. Activates on .xml files containing a <nemo> root element
  2. Launches the nemo-lsp binary as the language server
  3. Provides TextMate-based syntax highlighting (XML base + ${} expression token scopes)
  4. Adds a "Preview in Nemo" command that saves the current file and launches the Nemo app

Acceptance Criteria

  • Extension directory created at extensions/nemo-vscode/
  • package.json with activation events for .xml files containing <nemo>
  • Language server client configuration pointing to nemo-lsp binary
  • TextMate grammar (syntaxes/nemo.tmLanguage.json):
    • XML element and attribute syntax (base)
    • ${} expression token scopes for interpolation highlighting
    • bind-* attribute patterns
    • Template references
  • vscode-nemo contributes:
    • Language ID: nemo
    • File extension association: .xml (conditional on <nemo> content)
  • "Preview in Nemo" command:
    • Saves the active editor
    • Runs nemo --app-config <current-file> in an integrated terminal
  • README with installation and usage instructions
  • Extension published to VS Code Marketplace (or prep for publishing with vsce)
  • Works with nemo-lsp from PATH or configured path

Relevant Files

  • crates/nemo-lsp/ — the LSP server binary
  • schema/nemo.xsd — attribute groups and element structure for grammar design

Stack Base

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions