Syntaxhighlight für CPP

Forum für alles rund um die MSEide und MSEgui
Antworten
Mathias
Beiträge: 6146
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Syntaxhighlight für CPP

Beitrag von Mathias »

Ich habe versucht, in der mseIDE eine *.cpp Datei zu öffnen.
Wieso wird die Syntaxhighlight in dieser nicht angewendet ?
Auch mit *.java geht es nicht.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Syntaxhighlight für CPP

Beitrag von mse »

Vermutlich fehlt "*.cpp" in 'Project'-'Options'-'Editor'-'Source'-'Syntax definition files' bei cpp.sdf.
cppsdef.png

Auch mit *.java geht es nicht.

Siehe letzte Zeile im screenshot.

Mathias
Beiträge: 6146
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Syntaxhighlight für CPP

Beitrag von Mathias »

mseide ist eine rechte Wundertüte. 8)

Ich habe versucht, für GLSL von OpenGL einen Syntaxhighlight zu schreiben.
Jetzt wie ich wies wie es mit cpp geht, funktioniert es auch mit GLSL.

Wen du willst, kannst du die Datei im Anhang bei die einbauen.

Mit #define stimmt noch etwas nicht, vielleicht habe ich zu viel geändert.
Dateianhänge
glsl.sdef.tar.gz
(791 Bytes) 216-mal heruntergeladen
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Syntaxhighlight für CPP

Beitrag von mse »

Danke, committed in git master d4583d7a791e14af73d1bd53fd7b2115f1ee94f2.
Die Syntax Definition einer *.sdf Datei ist in
https://gitlab.com/mseide-msegui/mseide ... ainter.pas

Code: Alles auswählen

 
sdef file =
{globaldefinition}
{scope}
//last scope is default scope
globaldefinition = CASEINSENSITIVE | keywordchars | addkeywordchars |
     keyworddefs | editorcolors | styles | pairwords
 
keywordchars =
KEYWORDCHARS newline
{{string} newline}
//default = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxy0123456789_'
 
addkeywordchars =
ADDKEYWORDCHARS newline
{{string} newline}
 
string =
'{character}'
 
character =
ASCII-character
 
styles =
STYLE newline
{stylename styledef newline}
 
styledef =
[stylestring [fontcolor [colorbackground]]]
 
stylestring =
'[b][i][u][s]'
//b = bold i = italic u = underline s = strikeout
 
keyworddefs =
KEYWORDDEFS keyworddefsname [stylename] newline
{{keyword} newline}
 
keyword =
string
 
editorcolors =
COLORS [fontcolor [backgroundcolor [statementcolor [pairmarkbackgroundcolor]]]]
//   cl_default for MSEide project options settings
 
pairwords =
PAIRWORDS newline
{pairbegin {pairbegin} pairend newline}
// used in MSEide
 
pairbegin = string
pairend = string
 
scope =
SCOPE scopename [stylename] newline
{localdefinition}
 
localdefinition =
keywords | calltokens | jumptokens | endtokens | RETURN newline
 
keywords =
KEYWORDS [style] newline //style used as default
{keyworddefsname [style] newline}
 
calltokens =
CALLTOKENS newline
{{[.|,]string}[.]} scopename newline}
 
 //. -> whitespace, example:
 //'begin' finds 'abeginz ...
 //.'begin' finds newline'beginz', ' beginz' ...
 //'begin'. finds 'abegin ', 'abegin'newline ...
 //.'begin'. finds newline'begin ',' begin ', ' begin'newline ...
 //, -> begin of line
 
jumptokens =
JUMPTOKENS newline
[{{[.]string}[.]}] scopename newline}
 
// scopename newline -> unconditional jump
 
endtokens =
ENDTOKENS newline
{{[.]string}[.]} [stylename] newline}
 
 //'' -> end of line
 
 

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Syntaxhighlight für CPP

Beitrag von mse »

Mathias hat geschrieben:Mit #define stimmt noch etwas nicht, vielleicht habe ich zu viel geändert.

Funktioniert es mit git master 736552b492a9cd40f1d200c2bdd6f618244fb285?
https://gitlab.com/mseide-msegui/mseide-msegui

Code: Alles auswählen

 
diff --git a/apps/ide/syntaxdefs/glsl.sdef b/apps/ide/syntaxdefs/glsl.sdef
index 9e482b46d..ad39fe5c6 100644
--- a/apps/ide/syntaxdefs/glsl.sdef
+++ b/apps/ide/syntaxdefs/glsl.sdef
@@ -56,6 +56,8 @@ scope macros macros
   '//' comment2
 
  endtokens
+  ''
+
 scope block
  keywords
   glsl
 
 

Mathias
Beiträge: 6146
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Syntaxhighlight für CPP

Beitrag von Mathias »

Ich habe diese 2 Zeilen ergänzt, jetzt geht es. Habe ich die versehtlicht gelöscht ?

Ich habe es nochmals von vorn probiert, und nur den Block mit den reservierten Wörter ersetzt. Und dies funktioniert auch, obwohl ich die cpp Zeilen nicht auf glsl umbenannt habe.

So wie ich es gesehen habe, hast du die glsl.sdef bei dir schon eingebaut.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Syntaxhighlight für CPP

Beitrag von mse »

Mathias hat geschrieben:Ich habe diese 2 Zeilen ergänzt, jetzt geht es. Habe ich die versehtlicht gelöscht ?

Vermutlich ja.
Ich habe es nochmals von vorn probiert, und nur den Block mit den reservierten Wörter ersetzt. Und dies funktioniert auch, obwohl ich die cpp Zeilen nicht auf glsl umbenannt habe.

Korrekt, dies ist lediglich ein Bezeichner, der Text hat keine Bedeutung. Statt "cpp" könnte man auch überall "hansli" schreiben.

So wie ich es gesehen habe, hast du die glsl.sdef bei dir schon eingebaut.

Ja, vielen Dank.

Antworten