Skip to main content

LSP server for KOMPAS-3D ksAPI

Project description

KOMPAS-3D LSP

Language Server Protocol server for KOMPAS-3D ksAPI.

Auto-completion, hover docs, signature help and diagnostics for KOMPAS-3D scripting in Python, C++ and C#.

Powered by the official ksAPI documentation — 856 interfaces, 7104 methods. No KOMPAS-3D installation required.


Features

Feature Status
textDocument/completion — interfaces, methods, enum constants
textDocument/hover — descriptions with syntax and examples
textDocument/signatureHelp — method signatures on argument input
textDocument/publishDiagnostics — common mistake warnings

Installation

pip install kompas3d-lsp

Verify:

kompas3d-lsp --help

OpenCode Integration

Put opencode.json in your project root:

{
  "lsp": {
    "kompas3d-lsp": {
      "command": ["kompas3d-lsp", "--stdio"],
      "extensions": [".py", ".cpp", ".h", ".cs"]
    }
  }
}

Environment Variables

Variable Default Description
KOMPAS_LSP_LANG ru Knowledge base language (ru / en)
KOMPAS_LSP_DATA_DIR Custom path to {lang}/ksapi_knowledge.json

In opencode.json:

{
  "lsp": {
    "kompas3d-lsp": {
      "command": ["kompas3d-lsp", "--stdio"],
      "extensions": [".py"],
      "env": { "KOMPAS_LSP_LANG": "en" }
    }
  }
}

CLI

kompas3d-lsp --stdio          # stdio transport (default, for LSP clients)
kompas3d-lsp --tcp            # TCP transport (127.0.0.1:2087, debugging)
kompas3d-lsp --lang en        # override knowledge base language
kompas3d-lsp --help

Supported Languages

Extension Language
.py, .pyw Python
.cpp, .cxx, .cc, .h, .hpp, .hxx C++
.cs C#

Diagnostics

The server warns about:

  1. Python: import win32com.client without try/except — KOMPAS may be missing on CI
  2. C++: method call via -> without null check
  3. C#: Marshal.GetActiveObject / Type.GetTypeFromProgID without try/catch

Client Configuration

VS Code

{
  "lsp.clients.kompas3d-lsp.command": ["kompas3d-lsp", "--stdio"]
}

Neovim (vim.lsp)

vim.api.nvim_create_autocmd("FileType", {
  pattern = "python",
  callback = function()
    vim.lsp.start({
      name = "kompas3d-lsp",
      cmd = { "kompas3d-lsp", "--stdio" },
    })
  end,
})

Links


License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kompas3d_lsp-0.1.0.tar.gz (2.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kompas3d_lsp-0.1.0-py3-none-any.whl (1.4 MB view details)

Uploaded Python 3

File details

Details for the file kompas3d_lsp-0.1.0.tar.gz.

File metadata

  • Download URL: kompas3d_lsp-0.1.0.tar.gz
  • Upload date:
  • Size: 2.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.2

File hashes

Hashes for kompas3d_lsp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 11ad0e6df6402459fe8498bdf81e95638dee6efc5d51578f3559522663a35736
MD5 5767f007e9b9471b909407c3623db34e
BLAKE2b-256 df12a03db9f4f724b55082e021d46045fbf2d7f0589403bc397ca39ad13e56f4

See more details on using hashes here.

File details

Details for the file kompas3d_lsp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: kompas3d_lsp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.2

File hashes

Hashes for kompas3d_lsp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 112a122c0f2db8a2226bf62aed8fed235cac6a50b147b462e0579f9e131e9764
MD5 25f9a0fb67243716c4207fb24ed93bbf
BLAKE2b-256 24c1481f56f71ee2cd8b3e122175abf3bfa1e1fd468e5fe9c2ebd1c00b4c1923

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page