You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于JSON创建Codesys API半自定义VS Code语言扩展的疑问

关于CoDeSys IronPython脚本API的VS Code扩展开发问题

背景

我需要用IronPython脚本调用CoDeSys的API,自动化IDE中的大量手动操作,但官方API文档难以理解,因此希望开发一个能交互式浏览类库的编辑器。目前已完成以下步骤:

  • 找到脚本可将所有可用类和函数导出为api.json文件
  • 通过Yeoman创建了VS Code语言模板

但后续遇到两个关键问题:

  • 将api.json放入syntaxes文件夹并修改package.json指向该文件后出现报错,不清楚grammar.scope字段的正确填写方式
  • 不了解实现IntelliSense功能所需的JSON数据格式

api.json文件约272000行,结构包含Metadata、Entrypoints、Types等核心节点。


API导出脚本示例

# 将API导出为Python可用的JSON格式
import clr
from System.IO import Path

path = Path.Combine(Path.GetDirectoryName(__file__), "api.json")

print("正在导出到 " + path)

system.dump_scripting_api(path)
system.exit(0)

Types节点示例

{
      "Id": "Member Void write_message(_3S.CoDeSys.Core.Messages.Severity, System.String, _3S.CoDeSys.ScriptEngine.BasicFunctionality.IScriptTreeObject, Int64, Int16) of Type _3S.CoDeSys.ScriptDriverSystem.SystemImpl, ScriptDriverSystem.plugin, Version=3.5.16.30, Culture=neutral, PublicKeyToken=null",
      "Attributes": "PrivateScope, Public, Final, Virtual, HideBySig, VtableLayoutMask",
      "Parameters": [
        {
          "Id": "Parameter _3S.CoDeSys.Core.Messages.Severity severity of Member Void write_message(_3S.CoDeSys.Core.Messages.Severity, System.String, _3S.CoDeSys.ScriptEngine.BasicFunctionality.IScriptTreeObject, Int64, Int16) of Type _3S.CoDeSys.ScriptDriverSystem.SystemImpl, ScriptDriverSystem.plugin, Version=3.5.16.30, Culture=neutral, PublicKeyToken=null",
          "Name": "severity",
          "Type": "_3S.CoDeSys.Core.Messages.Severity, MessageStorage, Version=3.5.16.0, Culture=neutral, PublicKeyToken=null"
        },
        {
          "Id": "Parameter System.String stMessage of Member Void write_message(_3S.CoDeSys.Core.Messages.Severity, System.String, _3S.CoDeSys.ScriptEngine.BasicFunctionality.IScriptTreeObject, Int64, Int16) of Type _3S.CoDeSys.ScriptDriverSystem.SystemImpl, ScriptDriverSystem.plugin, Version=3.5.16.30, Culture=neutral, PublicKeyToken=null",
          "Name": "stMessage",
          "Type": "System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
        },
        {
          "Id": "Parameter _3S.CoDeSys.ScriptEngine.BasicFunctionality.IScriptTreeObject obj of Member Void write_message(_3S.CoDeSys.Core.Messages.Severity, System.String, _3S.CoDeSys.ScriptEngine.BasicFunctionality.IScriptTreeObject, Int64, Int16) of Type _3S.CoDeSys.ScriptDriverSystem.SystemImpl, ScriptDriverSystem.plugin, Version=3.5.16.30, Culture=neutral, PublicKeyToken=null",
          "Name": "obj",
          "Type": "_3S.CoDeSys.ScriptEngine.BasicFunctionality.IScriptTreeObject, ScriptEngine2, Version=3.5.16.1, Culture=neutral, PublicKeyToken=null"
        },
        {
          "Id": "Parameter Int64 position of Member Void write_message(_3S.CoDeSys.Core.Messages.Severity, System.String, _3S.CoDeSys.ScriptEngine.BasicFunctionality.IScriptTreeObject, Int64, Int16) of Type _3S.CoDeSys.ScriptDriverSystem.SystemImpl, ScriptDriverSystem.plugin, Version=3.5.16.30, Culture=neutral, PublicKeyToken=null",
          "Name": "position",
          "Type": "System.Int64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
        },
        {
          "Id": "Parameter Int16 length of Member Void write_message(_3S.CoDeSys.Core.Messages.Severity, System.String, _3S.CoDeSys.ScriptEngine.BasicFunctionality.IScriptTreeObject, Int64, Int16) of Type _3S.CoDeSys.ScriptDriverSystem.SystemImpl, ScriptDriverSystem.plugin, Version=3.5.16.30, Culture=neutral, PublicKeyToken=null",
          "Name": "length",
          "Type": "System.Int16, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
        }
      ],
      "ReturnValue": null,
      "Name": "write_message",
      "MemberType": "Method",
      "Type": "System.Void, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
}

内容的提问来源于stack exchange,提问作者Gene Parmesan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 20:23:17