4

我开始在工作中使用 COBOL/BASIC IDE(替换我们目前拥有的那个,它比记事本稍有进步)。它将用 C# 制作。管理层对实现一些 Visual Studio 类型的功能非常感兴趣,其中一个重要的功能是代码折叠。我查看了 MSDN,但没有看到任何折叠线条(或添加展开/折叠按钮)的好方法。

我假设文本区域应该是 RichTextBox。我在这里偏离轨道了吗?我想它可以用某种修改过的 TreeView 来完成,但这对我来说似乎有点不对劲。有没有办法做到这一点,我只是想念?

4

5 回答 5

11

为什么不使用现有的 IDE 并对其进行扩展?从头开始编写是一项艰巨的任务(您需要解析器、词法分析器、语法高亮器等),如果您需要支持多种语言(您提到 COBOL 和 Basic),则更加复杂。

Notepad++具有语法着色功能,可以向其中添加语言——COBOL 是默认安装的语言之一。它支持代码折叠并有许多插件(您可以编写自己的,这将满足您的需要)。

编辑Eclipse是另一个具有类似支持的优秀 IDE,正如评论中提到的,它有一个 COBOL 插件。

于 2010-03-06T14:41:27.280 回答
6

我建议你看看SharpDevelop。这是一个相当不错的 IDE,已经内置了许多类似 Visual Studio 的功能。它是用 C# 编写的,并且完全支持代码折叠和几种语言的语法突出显示。此外,它是 LGPL 许可下的开源软件。因此,如果您不想将您的应用程序基于 SharpDevelop,那么您仍然可以重用他们的一些控件,例如代码编辑器或窗口工具包。

您应该考虑将 COBOL 语言添加到 SharpDevelop,而不是从头开始。如果你不能做到这一点,那么你仍然可以使用 SharpDevelop 代码作为如何使一个好的 IDE 工作的体面参考。

于 2010-03-06T14:42:49.430 回答
4

有时嵌入 Eclipse 或成熟的编辑器是不合适的。由于某些其他原因,这是矫枉过正或超重或错误的。我很欣赏其他帖子中建议的第一个倾向,即不要在这里重新发明,但在某些情况下,一个小发明是必要的。例如,用于制作 Stack Overflow 帖子的文本框......既不是 Eclipse,也不是嵌入式 Visual Studio。我想知道为什么?

提出这个问题很重要——建造还是购买?- 但有时,正确的答案是建立它。


XPathVisualizer提供了一个用 C# 实现并基于 RichTextBox 的代码折叠文本编辑器的简单示例。不过,它不是 VB——它是一个 XML 编辑器。但一般原则适用。

来看看吧。

替代文字

为了动态实现 XML 语法着色,当用户键入时,它使用一个单独的后台线程。原因和一些细节在 Stack Overflow 上的单独答案中进行了描述。

你可以为你的 COBOL/VB 做类似的事情。XPathVisualizer 是开源的,获得 MS-PL 许可,因此您可以浏览和借阅。

于 2010-03-06T14:47:33.823 回答
3

如果您的团队习惯于“Visual Studio 功能”,那么我假设您在办公室使用 Visual Studio。以下是我的建议:

  • 将您的 IDE 建立在 Visual Studio 上,原因如下:
    • 如果可能,请使用 Visual Studio 2010。SDK比 2008 年/更早版本有了很大改进。
    • 否则使用 Visual Studio 2008/2005。目前,我所有的商业 IDE 产品只支持 2005/2008。
    • 如果您的团队使用 Visual Studio,他们会讨厌 Eclipse。除非您选择使用现有的Eclipse 插件,否则在这种情况下甚至不需要考虑一个选项,从而节省您创建新 IDE 的时间。
  • 如果您的团队没有使用 Visual Studio 2010,您可以在集成模式下免费使用 Visual Studio 2010 Shell(隔离模式不是您想要的)。这使您现在可以将 Visual Studio 2010 用于您的 IDE,并且如果团队稍后升级到 Visual Studio 2010 的完整版本之一,您的语言的 IDE 将干净地集成到完整版本中。编辑: Visual Studio Shell 基本上是 Visual Studio 的核心,不包括任何特定语言(C#、C++、VB 等)。Microsoft 免费提供此内核,对于有兴趣创建自己的语言支持的人来说,这是一个很好的选择。

在以下两个问题中阅读我的答案:

于 2010-03-06T14:53:15.493 回答
2

编写一个完整的 IDE 是一项艰巨的任务。我建议尝试找到一个现有的具有您想要的东西,或者对现有的开源 IDE 进行调整。

回答您的问题:我猜 Visual Studio IDE 使用的是从头开始编写的自定义控件,而不是 RichText 控件。

于 2010-03-06T14:40:36.503 回答