Giter Club home page Giter Club logo

zig-lsp's Issues

Implement all LSP types

This issue entails the implementation / updating of all types to match the LSP spec rather than ZLS use-cases only.

Base Protocol

  • Request Message
  • Response Message
  • Notification Message
  • $/cancelRequest
  • $/progress

Basic Structures

  • URI
  • Regular Expression
  • Text Documents
  • Position
  • Range
  • Location
  • Location Link
  • Diagnostic
  • Command
  • Text Edit
  • Text Document Edit
  • File Resource Changes
  • Workspace Edit
  • Text Document Identifier
  • Text Document Item
  • Versioned Text Document Identifier
  • Text Document Position Params
  • Document Filter
  • Static Registration Options
  • Text Document Registration Options
  • Markup Content
  • Work Done Progress
  • Client Initiated Progress
  • Server Initiated Progress
  • Partial Results
  • Partial Result Params
  • Trace Value

General Messages ($/)

  • initialize
  • initialized
  • shutdown
  • exit
  • logTrace
  • setTrace

Window (window/)

  • showMessage
  • showMessageRequest
  • showDocument
  • logMessage
  • progress/create
  • progress/cancel

Telemetry (telemetry/)

  • event

Client (client/)

  • registerCapability
  • unregisterCapability

Workspace (workspace/)

  • workspaceFolders
  • didChangeWorkspaceFolders
  • didChangeConfiguration
  • configuration
  • didChangeWatchedFiles
  • symbol
  • executeCommand
  • applyEdit
  • File Operations Events

Text Documents (textDocument/)

  • General Capabilities
  • didOpen
  • didChange
  • willSave
  • willSaveWaitUntil
  • didSave
  • didClose
  • publishDiagnostics

Language Features (textDocument/)

  • completion + resolve
  • hover
  • signatureHelp
  • declaration
  • definition
  • typeDefinition
  • implementation
  • references
  • documentHighlight
  • documentSymbol
  • codeAction + resolve
  • codeLens + resolve + refresh
  • documentLink + resolve
  • documentColor
  • colorPresentation
  • formatting
  • rangeFormatting
  • onTypeFormatting
  • rename
  • prepareRename
  • foldingRange
  • selectionRange
  • prepareCallHierarchy
  • Call Hierarchy incoming + outgoing
  • Semantic Tokens
  • linkedEditingRange
  • moniker

Responding to a request with slices

Some request results have slices, like textDocument/hover's MarkupContent.

When using lsp.Connection, the signature is

pub fn @"textDocument/hover"(conn: *Connection, id: lsp.types.RequestId, params: lsp.types.HoverParams) !lsp.types.Hover

If I set up an arena allocator inside the implementation, the memory returned becomes invalid. Is there a simple way to do this without leaking memory?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.