说我想为ocaml编程语言创建一个源代码编辑器,我从哪里开始?我希望为Windows平台创建一个编辑器作为业余爱好项目。我的主要技能是网络开发。我很久以前就开发了Windows应用程序。我不知道今天可用的工具是如何完成的。我有visual studio 2008,C#是我选择的语言。
答案 0 :(得分:2)
如果您对Visual Studio最熟悉,那么您可以使用Visual Studio Shell基于该基础创建自己的IDE。
这是一个播客,提供了一个很好的概述: http://www.code-magazine.com/codecast/index.aspx?messageid=32b9401a-140d-4acb-95bb-6accd3a3dafc
此外,作为参考,IronPython Studio是使用Visual Studio 2008 Shell创建的: http://ironpythonstudio.codeplex.com/
浏览该源代码应该为您提供一个良好的起点。
答案 1 :(得分:2)
你需要知道:
您可能需要查看一些开源编辑器,例如dev-c ++或gedit
此外,由于您亲自参与更多网络活动,您可能希望开始创建一个在Web浏览器中运行的网站。这通常更容易,并帮助您了解创建代码编辑器的基础知识。稍后您可以随时为桌面编写一个。
答案 2 :(得分:2)
较轻的替代方法是使用RichEdit control
例如:
http://www.codeproject.com/Messages/3401956/NET-Richedit-Control.aspx
// http://www.codeproject.com/Messages/3401956/NET-Richedit-Control.aspx
using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace RichEditor
{
public class RichTextBoxEx : RichTextBox
{
IntPtr mHandle = IntPtr.Zero;
protected override CreateParams CreateParams
{
get
{
// Prevent module being loaded multiple times.
if (this.mHandle == IntPtr.Zero)
{
// load the library to obtain an instance of the RichEdit50 class.
this.mHandle = LoadLibrary("msftedit.dll");
}
// If module loaded, reset ClassName.
if (this.mHandle != IntPtr.Zero)
{
CreateParams cParams = base.CreateParams;
// Check Unicode or ANSI system and set appropriate ClassName.
if (Marshal.SystemDefaultCharSize == 1)
{
cParams.ClassName = "RichEdit50A";
}
else
{
cParams.ClassName = "RichEdit50W";
}
return cParams;
}
else // Module wasnt loaded, return default .NET RichEdit20 CreateParams.
{
return base.CreateParams;
}
}
}
~RichTextBoxEx()
{
//Free loaded Library.
if (mHandle != IntPtr.Zero)
{
FreeLibrary(mHandle);
}
}
[DllImport("kernel32.dll", SetLastError = true)]
private static extern IntPtr LoadLibrary(String lpFileName);
[DllImport("kernel32.dll", SetLastError = true)]
private static extern bool FreeLibrary(IntPtr hModule);
}
}
答案 3 :(得分:1)
您可以使用Scintilla。它具有语法突出显示和一些其他功能。此外,它还有一个.NET版本here。
另一个好工具是Alsing Syntax Box:
强大的语法突出显示Windows Microsoft.NET的Forms控件 平台。用100%管理的C#编写。 支持语法高亮和代码 折叠几乎任何编程 语言。
使用Alsing Syntax Box,您可以定义语法文件(就像this one for C#),稍后会有intellisense like feature。
您可以从其中一个开始为您的编辑。