Что мне нужно знать, чтобы создать редактор исходного кода? - PullRequest
2 голосов
/ 05 мая 2010

Скажите, я хочу создать редактор исходного кода для языка программирования ocaml, с чего мне начать? Я ищу создание редактора для платформы Windows в качестве хобби-проекта. Мой основной навык в веб-разработке. Я разработал приложения для Windows давно. Я понятия не имею, как это делается с сегодняшними доступными инструментами. У меня есть Visual Studio 2008, и C # - мой язык.

Ответы [ 4 ]

2 голосов
/ 05 мая 2010

Более легкая альтернатива - использовать 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);    
    }

}
2 голосов
/ 05 мая 2010

Вам нужно знать:

  • Синтаксис OCAML, функции, ключевые слова, функции и т.д. ...
  • C #, так как это ваш родной язык, я думаю
  • Вам нужно знать, какие функции вы хотите реализовать
  • ... если он использует графический интерфейс или просто из терминала, такого как nano / vim
  • как работает подсветка синтаксиса
  • как открывать и сохранять файлы
  • как работает автозаполнение
  • и т.д ..

Возможно, вы захотите взглянуть на некоторые редакторы с открытым исходным кодом, такие как dev-c ++ или gedit

Кроме того, поскольку вы лично более склонны к веб-разработке, вы можете начать создавать приложение, которое запускается в веб-браузере. Это часто проще и помогает понять основы создания редактора кода. Позже вы всегда можете написать один для настольных компьютеров.

2 голосов
/ 05 мая 2010

Если вам удобнее всего работать в Visual Studio, вы можете использовать оболочку Visual Studio для создания собственной IDE на основе этого фундамента.

Вот подкаст, который дает хороший обзор: http://www.code -magazine.com / codecast / index.aspx? MessageId = 32b9401a-140d-4acb-95bb-6accd3a3dafc

Также, для справки, IronPython Studio был создан с использованием оболочки Visual Studio 2008: http://ironpythonstudio.codeplex.com/

Просмотр этого исходного кода должен послужить хорошей отправной точкой.

1 голос
/ 05 мая 2010

Вы можете использовать Scintilla . Он имеет подсветку синтаксиса и некоторые другие функции. Также доступна версия .NET здесь .

Другим хорошим инструментом является Синтаксис Alsing Box :

Мощная подсветка синтаксиса Windows Контроль форм для Microsoft.NET Платформа. Написано на 100% управляемом C #. Поддерживает подсветку синтаксиса и кода сворачивание практически для любого программирования язык.

С помощью Alsing Syntax Box вы можете определить файл синтаксиса (точно так же как этот для C # ) и позже иметь особенность типа intellisense .

Вы можете начать с одного из них для вашего редактора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...