Token导航 LogoToken导航TokenDH.com
Sysml V2 Lsp logo
开发工具stdio官方级别未说明来源级核验

Sysml V2 Lsp

MCP Server

SysML v2的语言服务器协议实现,提供语法检查、符号导航、代码补全等功能,适用于系统建模开发。

工具数

0

提示词数

0

GitHub Stars

14

资源数

0
代码分析TypeScriptVS Code开发工具VS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

daltskin

提供方

daltskin

最后核验

2026/5/17 20:21

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python3 clients/python/sysml_lsp_client.py # analyse all examples

详细介绍

SysML v2语言服务器

](https://www.npmjs.com/package/sysml-v2-lsp)

![SysML v2.0 Language Support VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=JamieD.sysml-v2-support)

特性

功能状态描述
诊断带有红色波浪的语法错误报告
文件符号具有SysML模型结构的轮廓面板
悬停悬停时的元素种类、类型和文档
转到定义Ctrl+单击导航到声明
查找引用查找符号的所有用法
代码补全关键字、代码片段和符号建议
语义令牌丰富的上下文感知语法高亮显示
折叠范围可折叠的 { } 块和评论
重命名重命名符号和所有引用
语义验证未解析的类型、无效的多样性、重复
代码操作快速修复:命名、文档存根、空枚举、未使用的defs
复杂性分析结构度量、综合指数、热点检测
美人鱼预览6种图表类型,具有自动检测、聚焦和差异模式
MCP服务器人工智能辅助建模 sysml-mcp CLI

快速开始

从市场安装

通过VS Code扩展从 VS代码市场.

开发容器(推荐)

在GitHub代码空间或VS代码开发容器中打开——所有内容都是预先安装的,包括Python 3.13、Jupyter和Node.js 22。

手动设置

npm install && npm run build && npm test

发展

npm run watch        # recompiles on file changes
# Then press F5 in VS Code to launch the extension + server

使用 “客户端+服务器” 复合调试配置,可同时调试双方。

客户示例

LSP服务器与语言无关。包括三个客户端实现来演示不同的集成模式:

VS代码扩展(clients/vscode/)

主客户端——一个完整的VS Code扩展,使用 vscode-languageclient,通过IPC进行通信。直接在编辑器中提供诊断、完成、悬停、转到定义、语义标记和所有其他LSP功能。

Web客户端(clients/web/)

一个基于浏览器的SysML浏览器,带有连接到LSP服务器的Node.js HTTP桥。具有自动分析的实时编辑器、诊断面板、符号轮廓和缩放/平移的Mermaid图生成功能。

make web             # build + start on http://localhost:3000

Python客户端(clients/python/)

一个零依赖的Python脚本和Jupyter笔记本,通过stdio驱动LSP——与VS Code使用的JSON-RPC协议相同,没有框架开销。

python3 clients/python/sysml_lsp_client.py                    # analyse all examples
python3 clients/python/sysml_lsp_client.py examples/bike.sysml # analyse a specific file

Jupyter笔记本(sysml_lsp_demo.ipynb)提供了每个LSP功能的交互式演练。

建筑

                         ┌───────────────────────────┐
                         │    Language Server        │
                         │    (Node.js process)      │
                         ├───────────────────────────┤
                         │ • ANTLR4 parser           │
                         │ • Diagnostics             │
                         │ • Symbols / hover         │
                         │ • Completions / rename    │
                         │ • Semantic tokens         │
                         │ • Go-to-def / references  │
                         └────────┬──────────────────┘
                                  │  LSP (JSON-RPC)
              ┌───────────────────┼────────────────────┐
              │                   │                    │
     ┌────────┴───────┐  ┌────────┴───────┐  ┌─────────┴──────┐
     │  VS Code (IPC) │  │  Web (HTTP)    │  │  Python (stdio)│
     │  Extension     │  │  Browser SPA   │  │  Script/Jupyter│
     └────────────────┘  └────────────────┘  └────────────────┘

项目结构

sysml-v2-lsp/
├── clients/
│   ├── vscode/             # VS Code extension (TypeScript)
│   ├── web/                # Browser SPA + Node.js HTTP bridge
│   └── python/             # Zero-dep Python client + Jupyter notebook
├── server/src/             # Language Server
│   ├── server.ts           # LSP connection, capability registration
│   ├── documentManager.ts  # Parse cache, document lifecycle
│   ├── parser/             # Parse pipeline
│   ├── symbols/            # Symbol table, scopes, element types
│   ├── providers/          # LSP feature implementations
│   ├── analysis/           # Complexity analyzer
│   └── mcp/                # Mermaid diagram generator
├── grammar/                # ANTLR4 grammar files (.g4)
├── sysml.library/          # SysML v2 standard library
├── benchmarks/             # Performance benchmark suite
│   ├── src/                # Runner, suites, reporters, utilities
│   ├── baselines/          # Saved baseline for regression detection
│   ├── results/            # JSON + Markdown output per run
│   └── fixtures/           # Synthetic .sysml files for benchmarking
├── examples/               # Example .sysml models
├── test/                   # Unit tests (vitest)
└── package.json            # Extension manifest + monorepo scripts

可用命令

make help             # Show all targets
make install          # Install all dependencies
make build            # Generate parser + compile + bundle
make watch            # Watch mode
make test             # Run unit tests
make lint             # ESLint
make package          # Build .vsix
make package-server   # Build server tarball for npm
make web              # Launch web client (http://localhost:3000)
make update-grammar   # Pull latest grammar, rebuild parser + DFA snapshot
make update-library   # Pull latest SysML v2 standard library
make dfa              # Regenerate DFA snapshot (after any grammar change)
make ci               # Full CI pipeline (lint + build + test)
npm run bench         # Run all benchmark suites
npm run bench:baseline # Save benchmark baseline
npm run bench:regression # Compare against baseline

基准测试

内置的基准测试套件测量解析器、符号表、LSP提供程序、内存、吞吐量和文件夹加载性能。结果以JSON和Markdown格式写入 benchmarks/results/.

运行基准

npm run bench                    # run all suites
npm run bench:parse              # parse suite only
npm run bench:providers          # LSP providers suite only

或者直接使用转轮进行完全控制:

npx tsx benchmarks/src/runner.ts --suite parse --suite symbolTable
npx tsx benchmarks/src/runner.ts --runs 10 --warmup 3
npx tsx benchmarks/src/runner.ts --output ./my-results

套房

套房它衡量什么
parseANTLR4解析时间——冷(无DFA)与热(预加载DFA快照)
symbolTable符号表构建和查找延迟
providersLSP功能:诊断、悬停、完成、引用、重命名等。
memory每个文件的堆分配和缩放行为
throughput所有示例文件的端到端行/秒和令牌/秒
folderLoad完整文件夹解析+符号构建(示例、标准库、全部)

回归检测

保存基线,然后将未来的运行与之进行比较:

npm run bench:baseline           # save current results as baseline
npm run bench:regression         # compare against baseline, exit 1 on regression

默认回归阈值为20%。覆盖 --threshold .

查看结果

每次运行都会生成一个JSON文件和一个Markdown报告 benchmarks/results/.要将现有的JSON结果转换为Markdown:

npx tsx benchmarks/src/reporters/markdownReporter.ts benchmarks/results/.json

语法更新

中的语法文件 grammar/ 来源于 daltskin/sysml-v2语法要获取最新版本,请重建解析器,并重新生成DFA快照:

make update-grammar

这获取 .g4 文件,运行 npm run build,并重新生成DFA快照,消除ANTLR4冷启动损失。如果手动编辑语法文件,请运行 make dfa 之后。

技术栈

组件技术
语言TypeScript(严格模式)
运行时Node.js≥18
解析器ANTLR 4
发电机安托万的线
LSPvscode语言服务器
Bundleresbuild
测试vitest

相关项目

许可证

麻省理工学院

目录标签

目录标签

代码分析TypeScriptVS Code开发工具语言服务器本地部署SysML系统建模

支持客户端

VS Code

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP