Скажите, что я хочу создать редактор исходного кода для языка программирования ocaml, с чего начать? Я хочу создать редактор для платформы Windows в качестве хобби проекта. Мое основное умение - в веб-разработке. Я давно разработал приложения для Windows. Я понятия не имею, как это делается с сегодняшними доступными инструментами. У меня есть визуальная студия 2008, а C# - мой язык выбора.Что мне нужно знать для создания редактора исходного кода?
ответ
Вы должны знать:
- OCAML Синтаксис функции, ключевые слова, функции и т.д. ...
- C#, как это ваш родной язык, я думаю,
- Вы должны знать, какие функции вы хотите реализовать
- ... если он использует графический интерфейс или просто из терминала, как нано/Vim
- как подсветка синтаксиса работает
- как открыть и сохранение файлов
- как автодополнение работает
- и т.д ..
Вы могли бы хотеть смотреть на некоторые редакторы с открытым исходным кодом, как Dev-C++ или Gedit
Кроме того, как вы лично больше веб -devvy, вы можете захотеть создать тот, который работает в веб-браузере. Это часто бывает проще и помогает понять основы создания редактора кода. Позже вы всегда можете написать один для настольных компьютеров.
Спасибо Koning. Я ценю ваш ответ. Это то, что я точно ищу. Мне нужно было где-то начать. Это оно. Спасибо. – Animesh
Нет проблем. То, что большинство людей не знает, это то, что Конинг является голландским для короля. Все здесь называют меня королем, даже не зная. BTW, THX у меня почти есть 2000rep сейчас ^^^ – 2010-05-05 01:19:52
ха-ха .. ну теперь мы знаем .. cheers .. – Animesh
Если вы наиболее удобны в Visual Studio, то вы можете использовать среду Visual Studio для создания собственной среды разработки на основе этого фундамента.
Вот подкаст, который дает хороший обзор: http://www.code-magazine.com/codecast/index.aspx?messageid=32b9401a-140d-4acb-95bb-6accd3a3dafc
Кроме того, в качестве справки, IronPython студия была создана с помощью Visual Studio 2008 Shell: http://ironpythonstudio.codeplex.com/
Сидя, что исходный код должен дать вы хорошая отправная точка.
Большое спасибо за ответ Ben. Я обязательно рассмотрю обзор vs shell, а также студию ironpython. – Animesh
Вы можете использовать Scintilla. Он имеет подсветку синтаксиса и некоторые другие функции. Кроме того, он имеет версию .NET версии here.
Еще один хороший инструмент Alsing Syntax Box:
Мощный подсветка синтаксиса для Windows Формы управления для Microsoft.NET Platform. Написан на 100% управляемом C#. Поддерживает подсветку синтаксиса и код складной для любого программирования язык.
С Alsing Синтаксис Box, вы можете определить синтаксис файла (так же, как this one for C#), а затем имеют intellisense like feature.
Вы можете начать с одного из них для своего редактора.
SciTE - мой второй любимый редактор. Я посмотрю на оба упомянутых вами инструмента. Благодаря! – Animesh
зажигалку веса альтернативой является использование 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);
}
}
Это выглядит из моей лиги. Но я посмотрю на него, как только мне станет удобно. Благодаря! – Animesh
Редактор исходного кода просто блокнота, это все дополнительные функции, такие как IntelliSense, подсветку кода и т.д. и т.д., что сделать IDE (который, я думаю, действительно то, что вы хотите?) – PostMan
Да, IDE, но на самом деле не очень тяжелый, например, затмение или визуальная студия. Что-то похожее на блокнот, но может компилировать и выполнять код. – Animesh
они не могут скомпилировать и выполнить код. Компилятор (например, GCC) компилируется, ваш процессор выполняет. IDE запускает только компилятор. – 2010-05-05 01:00:43