j
jaipkg.dev
packages / tool / jai-lsp

jai-lsp

457baabtool

No description provided.

No license · updated 7 months ago

readme

This is not an lsp server for jai, but a binding to the language server protocol according to the specifications.

The current supported version is 3.17.0.

Weird struct

There are two weird struct which is hard to translate into Jai, which are DocumentDiagnosticReportPartialResult and RelatedFullDocumentDiagnosticReport.

DocumentDiagnosticReportPartialResult

{
    "name": "DocumentDiagnosticReportPartialResult",
    "properties": [
      {
          "name": "relatedDocuments",
          "type": {
              "kind": "map",
              "key": {
                  "kind": "base",
                  "name": "DocumentUri"
              },
              "value": {
                  "kind": "or",
                  "items": [
                      {
                          "kind": "reference",
                          "name": "FullDocumentDiagnosticReport"
                      },
                      {
                          "kind": "reference",
                          "name": "UnchangedDocumentDiagnosticReport"
                      }
                  ]
              }
          }
      }
    ],
    "documentation": "A partial result for a document diagnostic report.\n\n@since 3.17.0",
    "since": "3.17.0"
}

RelatedFullDocumentDiagnosticReport

{
    "name": "RelatedFullDocumentDiagnosticReport",
    "properties": [
      {
          "name": "relatedDocuments",
          "type": {
              "kind": "map",
              "key": {
                  "kind": "base",
                  "name": "DocumentUri"
              },
              "value": {
                  "kind": "or",
                  "items": [
                      {
                          "kind": "reference",
                          "name": "FullDocumentDiagnosticReport"
                      },
                      {
                          "kind": "reference",
                          "name": "UnchangedDocumentDiagnosticReport"
                      }
                  ]
              }
          },
          "optional": true,
          "documentation": "Diagnostics of related documents. This information is useful\nin programming languages where code in a file A can generate\ndiagnostics in a file B which A depends on. An example of\nsuch a language is C/C++ where marco definitions in a file\na.cpp and result in errors in a header file b.hpp.\n\n@since 3.17.0",
          "since": "3.17.0"
      }
    ],
    "extends": [
      {
          "kind": "reference",
          "name": "FullDocumentDiagnosticReport"
      }
    ],
    "documentation": "A full diagnostic report with a set of related documents.\n\n@since 3.17.0",
    "since": "3.17.0"
}

They both have a property of a map where its value is a or type. In Jai, we want to use a Hash Table to represent.