Skip to content

Feature: Markdown Language Server Support #117

@Avtrkrb

Description

@Avtrkrb

Description

Add support for Markdown language server to provide enhanced editing capabilities for Markdown files.

Current State

Currently, the nanocoder LSP system does not include support for Markdown language servers. While the getLanguageId function maps 'md' to 'markdown', there is no actual language server configuration for Markdown files in the KNOWN_SERVERS array.

Desired Implementation

Add support for Markdown language server in the server-discovery.ts file. The recommended option is:

Markdown Language Server:

  • vscode-markdown-language-server: vscode-mdx-language-server --stdio or similar
    • Languages: md, markdown, mdx
    • Installation: npm install -g @microsoft/vscode-mdx-language-server or vscode-langservers-extracted
    • GitHub: Various implementations available, including from Microsoft's Markdown tools

Alternative options:

  • marksman: marksman lsp - dedicated Markdown language server

Implementation Requirements

  1. Add Markdown language server definition to the KNOWN_SERVERS array
  2. Include appropriate verification method (likely 'lsp' or 'version')
  3. Provide clear installation hints
  4. Map Markdown file extensions appropriately (.md, .markdown, .mdx)
  5. Ensure proper language ID mapping for LSP protocol (should be 'markdown')
  6. Consider including MDX support if using a more comprehensive server

Reference

From the ArchWiki LSP page, there are several Markdown language server options available, including dedicated ones like Marksman.

Additional Context

Markdown support is fundamental since Markdown files are used extensively for documentation and README files. Adding LSP support would provide:

  • Syntax validation
  • Link checking
  • Table of contents generation
  • Auto-completion for headers and links
  • Better formatting assistance
  • Cross-reference support

Currently, while the system recognizes 'md' as 'markdown' in the language mapping, there's no actual LSP server to provide the intelligent editing features.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions