【问题标题】:Use C# Class library as Plugin instead of Python Plugin in Sublime Text在 Sublime Text 中使用 C# 类库作为插件而不是 Python 插件
【发布时间】:2013-11-14 07:41:19
【问题描述】:

我从版本 1 开始就一直在使用 Sublime Text,但直到最近两周我才开始全面探索编辑器的所有功能。

我想知道是否有任何方法可以将 CSharp 类库用作 Sublime Text 的插件。 通常我们编写 Python [.py] 插件并将键绑定分配给我们在 Python 插件文件中编写的各种命令。

过去 5 年我一直是 DotNet 开发人员,并且对 Python 完全陌生,因此将 CSharp DLL 文件用作插件的这一功能对我来说是一个福音。

任何想法或帮助将不胜感激。

【问题讨论】:

    标签: c# sublimetext2 sublimetext sublimetext3


    【解决方案1】:

    您只能使用 Python 为 Sublime Text 开发插件,正如 plugin documentation 上所说的那样。所以你不能直接从 Python 调用 .NET DLL 中的方法。

    您可以在 Python 中为 Sublime Text 编写插件

    但是,您可以创建一个代理 .NET 应用程序(如控制台应用程序)来包装您的 .NET DLL 的功能。您可以通过 Python 的 subprocess 模块调用该应用程序。不过,您的里程会根据您的 DLL 所具有的功能类型而有所不同。

    【讨论】:

    • 感谢您的回复:)
    【解决方案2】:

    @vape is correct,插件必须用 Python 编写。然而,调用用其他语言编写的程序是相当简单的,例如使用提到的subprocess 模块。除此之外,您可能希望查看pywin32,因为它提供了更多与 Windows、DLL 等“本地”交互的方法。有关在 Sublime 中设置它的更多详细信息,请参阅我的this answer

    如果组合得当,您应该能够以这样一种方式构建您的 DLL,使其类/方法/等。在 Python 中可用。这将允许您在 C# 中编写大部分逻辑,并且只需使用 Python 作为包装器来传递和接收数据。根据您要对插件进行的具体操作,您可能需要编写一些翻译函数来正确处理各种 Sublime objects(ST3 链接),但根据我的经验,这应该不会太难。

    祝你好运!

    【讨论】:

    • 非常感谢,我想我需要根据您的建议对此进行一些实验。 :) 我现在有一个良好的开端。
    猜你喜欢
    • 2013-11-16
    • 2013-08-31
    • 1970-01-01
    • 1970-01-01
    • 2018-03-18
    • 2014-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多