No SciTe (Scintilla), como posso criar realce de sintaxe para minha própria linguagem personalizada?

4

Eu quero criar um idioma personalizado, com seu realce personalizado de sintaxe.

O Notepad ++ (um Text-editor baseado no Windows SciTe / Scintilla), me permitiu criar um "Language" personalizado, e agora, no Linux, eu quero reproduzir a mesma coisa.

Eu preciso (?) usar SkiTe / Scintilla porque, a menos que alguém saiba o contrário, é o único editor de texto simples que pode exibir tamanho diferente fonts no mesmo arquivo de texto (por exemplo, default-font = 12pt, comment-font = 24pt).

Eu usei a fonte comments para exibir um script complexo (alfabeto) em uma fonte maior.
Por favor, deixe-me saber se existe algum outro editor de texto plain que faça isso.

Eu assumo que este é um recurso do SciTe / Scintilla (e não do Notepad ++).
Alguma da mágica é possível / provavelmente (?) Feita em arquivos como ase:
/usr/share/scite/.properties

Notepad ++ tem uma interface gráfica para configurar um novo idioma / sintaxe,
... mas eu poderia usar alguma direção sobre como fazer isso no SciTe.

Obrigado ...

    
por Peter.O 19.10.2010 / 13:13

3 respostas

2

Eu olhei para ele uma vez, é bem doloroso, porque tudo está definido estaticamente no código-fonte do c ++.

Você tem que definir um certo número de regras entre o que já existe no scintilla, para coisas como ... bem, é bem destroçado. Você pode procurar rapidamente por "scintilla lexer" no google, mas você entende que marcadores de sintaxe são muito sofisticados para codificar, basta olhar para o notepad ++ e todos os seus recursos: é quase um analisador de código, encontrado em compiladores.

Além disso, um léxico de cintilação pode ser feito para qualquer tipo de linguagem.

Outro problema é que colorir o texto tem que ser independente de plataforma, e novamente, eu acho que favorece windows (duh), e não esqueça o renderizador de fonte, que também pode ser outra coisa.

Não tenho certeza se o scintilla foi portado para o gnome ou o kde, tem?

    
por 18.01.2011 / 14:13
0

Isso provavelmente não atenderá a sua solicitação, mas jEdit tem uma configuração abrangente para realce de idioma se você quiser um editor que realce sua nova linguagem.

    
por 20.10.2010 / 00:36
0

AFAIK, o Notepad ++ é baseado em lexers da Scintilla.

Eu pensei que "nova linguagem" significava apenas "lexer existente, mas um novo conjunto de palavras-chave"; mas parece mais poderoso.

O que eu encontrei: ( link )

Komodo's system for defining multi-language syntax lexing and user-defined syntax highlighting is called UDL (User Defined Languages). UDL files are written in a language called Luddite, then compiled into Scintilla lexers and packaged for use in Komodo.

Portanto, depois de definir seu idioma no Notepad ++, você poderá obter o léxico compilado e adicioná-lo ao scite.

    
por 29.05.2014 / 19:21