一个为 Mplus 统计软件提供语法高亮和执行功能的 VS Code 扩展,现已全面升级!
本扩展为 Mplus .inp 和 .out 文件提供全面的语法高亮支持,包括:
- 命令块高亮:TITLE, DATA, VARIABLE, DEFINE, ANALYSIS, MODEL, OUTPUT, PLOT, SAVEDATA, MONTECARLO
- 模型子命令高亮:MODEL INDIRECT, MODEL CONSTRAINT, MODEL PRIORS, MODEL MISSING, MODEL POPULATION, MODEL COVERAGE, MODEL TEST, MODEL label
- 类标签高亮:%OVERALL%, %c1#1%, %WITHIN%, %BETWEEN% 等
- 关键词高亮:
- DATA: FILE, FORMAT, TYPE, NOBSERVATIONS, NGROUPS, LISTWISE, SWMATRIX 等
- VARIABLE: NAMES, USEVARIABLES, CATEGORICAL, NOMINAL, COUNT, CENSORED, CLASSES, KNOWNCLASS 等
- ANALYSIS: TYPE, ESTIMATOR, ALGORITHM, INTEGRATION, DISTRIBUTION, LINK 等
- OUTPUT: SAMPSTAT, RESIDUAL, STANDARDIZED, MODINDICES, TECH1-TECH16 等
- PLOT: PLOT1, PLOT2, PLOT3, TYPE, SERIES, FACTORS 等
- SAVEDATA: FILE, SAVE, FORMAT, ESTIMATES, RESULTS, FSCORES 等
- MONTECARLO: NAMES, NOBSERVATIONS, NREPS, SEED, GENERATE 等
- 模型运算符高亮:BY, ON, WITH, PWITH, XWITH, PON, AT 等
- 函数高亮:
- 数学函数:ABS, EXP, LOG, SQRT, SIN, COS, TAN 等
- 统计函数:MAX, MIN, SUM, MEAN, VARIANCE, SD, MEDIAN 等
- 分布函数:NORMAL, LOGNORMAL, UNIFORM, GAMMA, BINOMIAL, POISSON 等
- 逻辑运算符高亮:IF, THEN, AND, OR, NOT, EQ, NE, GT, GE, LT, LE
- 符号高亮:@, *, ( ), [ ], { }, |, ;
- 常量高亮:ALL, NONE, DEFAULT, ON, OFF, YES, NO, TRUE, FALSE, _MISSING
- 变量范围高亮:y1-y3
- 字符串字面量高亮:双引号和单引号字符串
- 数字高亮:支持科学计数法
所有关键词都支持大小写不敏感匹配。
提供 20+ 个常用 Mplus 代码片段,快速插入常用代码块:
title- TITLE 块data- DATA 块var- VARIABLE 块analysis- ANALYSIS 块model- MODEL 块output- OUTPUT 块savedata- SAVEDATA 块montecarlo- MONTECARLO 块by- 因子载荷on- 回归with- 协方差mean- 均值var- 方差model.constraint- 模型约束model.test- 模型检验model.indirect- 间接效应twolevel- 两层模型mixture- 混合模型growth- 增长模型cfa- 验证性因子分析sem- 结构方程模型
本扩展提供多种方式执行 Mplus 文件:
- 编辑器按钮:编辑器右上角的播放图标按钮
- 键盘快捷键:按
F5快速运行 - 命令面板:通过
Ctrl+Shift+P打开命令面板,选择 "Run Mplus"
执行特性:
- 自动保存:执行前自动保存文件(可配置)
- 自动切换目录:自动切换到当前文件所在目录
- 执行命令:自动执行
mplus 文件名.inp命令 - 自动打开输出:执行完成后自动打开 .out 文件(可配置)
- 跨平台支持:
- Windows:使用 PowerShell 兼容的命令
- Linux/macOS:使用标准 shell 命令
- 终端集成:在 VS Code 集成终端中显示执行结果
- 状态栏指示器:实时显示执行状态(空闲、运行中、错误、成功)
- 停止执行:停止正在运行的 Mplus 进程
- 打开输出文件:快速打开对应的 .out 文件
- 清除终端:清除 Mplus 终端内容
- 新建文件:创建新的 Mplus 文件模板
提供实时的语法检查和错误提示:
- 必需块检查:检查是否包含 TITLE、DATA、VARIABLE、ANALYSIS 等必需块
- 文件路径验证:验证数据文件格式(.dat、.txt、.csv)
- 模型内容检查:检查 MODEL 块是否包含模型定义
- 实时更新:编辑时自动更新诊断信息
由于本扩展未发布到 VS Code Marketplace,需要通过 GitHub Release 安装:
- 访问本项目的 GitHub Releases 页面
- 下载最新版本的
.vsix文件 - 打开 VS Code
- 按
Ctrl+Shift+P打开命令面板 - 输入 "Install from VSIX"
- 选择下载的
.vsix文件 - 重启 VS Code
如果您想从源码安装最新版本:
- 克隆本仓库:
git clone https://github.com/feewg/mplus.git
- 进入项目目录:
cd mplus - 安装依赖:
npm install
- 打包扩展:
npm run package
- 在 VS Code 中安装:
- 按
Ctrl+Shift+P打开命令面板 - 输入 "Install from VSIX"
- 选择项目根目录下的
.vsix文件
- 按
语法高亮会自动应用于所有 .inp 和 .out 文件。只需打开文件即可看到高亮效果。
在编辑器中输入代码片段的前缀(如 data、model 等),然后按 Tab 键即可插入对应的代码模板。
方法一:使用按钮
- 打开一个
.inp文件 - 点击编辑器右上角的播放图标按钮
方法二:使用快捷键
- 打开一个
.inp文件 - 按
F5键
方法三:使用命令面板
- 打开一个
.inp文件 - 按
Ctrl+Shift+P打开命令面板 - 输入 "Run Mplus" 并选择
状态栏右侧会显示当前执行状态:
$(play) Mplus- 空闲状态$(loading~spin) Mplus 运行中...- 正在运行$(check) Mplus 完成- 执行成功$(error) Mplus 错误- 执行出错
方法一:自动打开
执行完成后,如果配置了 mplus.autoOpenOutput 为 true,会自动打开输出文件。
方法二:手动打开
- 打开
.inp文件 - 按
Ctrl+Shift+O(Mac:Cmd+Shift+O) - 或通过命令面板选择 "Open Output File"
- 按
Ctrl+Alt+N(Mac:Cmd+Alt+N) - 或通过命令面板选择 "New Mplus File"
- 输入文件名
- 扩展会创建包含基本模板的
.inp文件
- VS Code 版本 >= 1.96.0
- Mplus 软件已安装并可在系统 PATH 中访问
本扩展提供以下配置选项,可在 VS Code 设置中修改:
{
"mplus.executablePath": "mplus",
"mplus.autoOpenOutput": true,
"mplus.clearTerminal": true,
"mplus.saveBeforeRun": true
}-
mplus.executablePath(默认:
"mplus")- Mplus 可执行文件的路径
- 如果 Mplus 不在系统 PATH 中,可以指定完整路径
-
mplus.autoOpenOutput(默认:
true)- 执行完成后是否自动打开 .out 文件
- 设置为
false可禁用自动打开
-
mplus.clearTerminal(默认:
true)- 执行前是否清除终端
- 设置为
false可保留终端历史
-
mplus.saveBeforeRun(默认:
true)- 执行前是否自动保存文件
- 设置为
false可禁用自动保存
您还可以通过创建 .vscode/settings.json 文件来自定义编辑器设置:
{
"[mplus]": {
"editor.fontSize": 14,
"editor.tabSize": 4,
"editor.insertSpaces": true
}
}| 快捷键 | 功能 | 平台 |
|---|---|---|
F5 |
运行 Mplus | 所有 |
Ctrl+Shift+O |
打开输出文件 | Windows/Linux |
Cmd+Shift+O |
打开输出文件 | macOS |
Ctrl+Alt+N |
新建 Mplus 文件 | Windows/Linux |
Cmd+Alt+N |
新建 Mplus 文件 | macOS |
Ctrl+Shift+K |
清除终端 | Windows/Linux |
Cmd+Shift+K |
清除终端 | macOS |
您可以在 VS Code 的键盘快捷键设置中自定义这些快捷键。
-
克隆仓库:
git clone https://github.com/feewg/mplus.git cd mplus -
安装依赖:
npm install
-
在 VS Code 中打开项目
- 按
F5启动扩展开发主机 - 在新打开的 VS Code 窗口中,打开一个
.inp文件测试功能
npm run compilenpm run watchnpm run package这将生成一个 .vsix 文件,可以用于分发或安装。
mplus/
├── src/
│ ├── extension.ts # 扩展主入口
│ ├── commands/ # 命令模块
│ │ ├── runMplus.ts
│ │ ├── stopMplus.ts
│ │ ├── openOutput.ts
│ │ ├── clearTerminal.ts
│ │ └── newFile.ts
│ ├── services/ # 服务模块
│ │ ├── terminalManager.ts
│ │ ├── mplusExecutor.ts
│ │ ├── outputParser.ts
│ │ ├── statusBarManager.ts
│ │ └── diagnostics.ts
│ └── types/ # 类型定义
│ └── index.ts
├── snippets/ # 代码片段
│ └── mplus.code-snippets
├── syntaxes/ # 语法高亮
│ └── mplus.tmLanguage.json
└── package.json
欢迎贡献!请遵循以下步骤:
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
本项目采用 MIT-NC 许可证(非商业使用)。详情请参阅 LICENSE 文件。
重要提示:本软件不允许商业使用。如果您希望将本软件用于商业目的,必须从版权持有者处获得单独的商业许可证。
- 感谢 paulinadupin/mplus-syntax 项目提供的语法高亮参考
- 感谢 Mplus 软件的开发者
如果您遇到任何问题或有功能建议,请在 GitHub Issues 中提交。
- 🎉 重大版本升级!
- 🏗️ 重构代码结构,实现模块化设计
- ⚙️ 添加配置选项(executablePath、autoOpenOutput、clearTerminal、saveBeforeRun)
- 🎯 添加新命令:run、stop、openOutput、clearTerminal、newFile
- 📝 添加代码片段支持(20+ 常用 Mplus 代码片段)
- ⌨️ 添加键盘快捷键(F5 运行、Ctrl+Shift+O 打开输出等)
- 📊 添加状态栏指示器显示执行状态
- 🔍 添加诊断服务提供实时语法检查
- 📄 添加输出解析器解析 .out 文件
- 💡 改进错误处理和用户体验
- 📚 完善文档和示例
- 增强了语法高亮,添加了全面的 Mplus 关键词支持
- 添加了对 .out 文件的支持
- 添加了更多 DATA、VARIABLE、ANALYSIS、OUTPUT、PLOT、SAVEDATA、MONTECARLO 关键词
- 添加了数学函数、统计函数、分布函数高亮
- 添加了逻辑运算符高亮
- 添加了变量范围、字符串字面量、常量高亮
- 所有关键词支持大小写不敏感匹配
- 添加了 GitHub Release 发布说明
- 初始版本发布
- 基本的 Mplus 语法高亮
- 执行按钮功能
- 支持 .inp 文件