Skip to content

Implement Language Server and Debug Adapter integration #88

@mkh-user

Description

@mkh-user

Feature Summary

Integrate support for Language Server Protocol (LSP) and Debug Adapter Protocol (DAP) to enable advanced language features and debugging capabilities across multiple programming languages.

Motivation

Supporting LSP and DAP allows Text Forge to provide rich language-specific features such as auto-completion, go-to-definition, hover documentation, and integrated debugging. This makes the editor more powerful, extensible, and suitable for professional development workflows.

Proposed Design

  • Implement a client for LSP to communicate with external language servers.
  • Implement a client for DAP to support debugging via external adapters.
  • Provide configuration options to register and manage language servers and debug adapters.
  • Display diagnostics, hover info, and symbol navigation from LSP.
  • Enable breakpoints, variable inspection, and step controls via DAP.

Acceptance Criteria

  • Language servers can be registered and started by modes.
  • LSP features (completion, diagnostics, hover, etc.) work reliably.
  • Debug adapters can be configured and launched by modes.
  • DAP features (breakpoints, stepping, variable inspection) are functional.
  • Integration does not interfere with existing editor performance or layout.

Related Issues / Discussions

Nothing

Implementation Notes (Optional)

  • Use existing LSP and DAP libraries or implement lightweight clients.
  • Provide fallback behavior for unsupported languages.
  • Consider sandboxing or permission controls for external processes.

Localization & Accessibility

  • Localize configuration UI and diagnostic messages.
  • Ensure all features are accessible via keyboard.

Community Feedback (Optional)

Nothing

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedOpen for community input, suggestions, or implementation help

    Projects

    Status

    Accepted

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions