gedit zum editieren von bmax benutzen

Übersicht Sonstiges Smalltalk

Neue Antwort erstellen

Goodjee

Betreff: gedit zum editieren von bmax benutzen

BeitragSo, Sep 14, 2008 12:15
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo, linux user,
ich hab heute versucht, einen highlightmode für bmax zu erstellen, der funzt leider noch so garnich. vllt kennt sich ja wer von euch damit aus und kann mir sagen wo der fehler liegt:
Code: [AUSKLAPPEN]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<language id="bmx" _name="BlitzMax" version="1.0" _section="Sources" mimetypes="text/bmx">
   <metadata>
       <property name="mimetypes">text/bmx</property>
       <property name="globs">*.bmx</property>
       <property name="line-comment-start">'</property>
       <property name="block-comment-start">rem</property>
       <property name="block-comment-end">end rem</property>
   </metadata>
   <styles>
       <style id="keyword" _name="Keyword" map-to="def:keyword"/>
   </styles>
   <definitions>
      <context id="bmx">
         <include>
             <context id="keywords" style-ref="keyword">
                     <keyword>if</keyword>
                     <keyword>endif</keyword>
                     <keyword>else</keyword>
                     <keyword>elseif</keyword>
                  <keyword>Type</keyword>
                     <keyword>End</keyword>
                     <keyword>Field</keyword>
                     <keyword>Method</keyword>
                     <keyword>Function</keyword>
                     <keyword>return</keyword>
                     <keyword>while</keyword>
                     <keyword>wend</keyword>
                     <keyword>repeat</keyword>
                     <keyword>until</keyword>
                     <keyword>for</keyword>
                     <keyword>next</keyword>
                     <keyword>try</keyword>
                     <keyword>catch</keyword>
                     <keyword>eachin</keyword>
                     <keyword>rem</keyword>
                     <keyword>endrem</keyword>
                     <keyword>local</keyword>
                     <keyword>global</keyword>
                     <keyword>import</keyword>
                     <keyword>include</keyword>
             </context>
          </include>
       </context>
   </definitions>
</language>
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

FOODy

BeitragDo, Sep 18, 2008 22:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, Goodjee.
Ich finde die Idee sehr interessant.
Kenne mich mit der Sache nicht so gut aus, habe aber aus den vorhandenen Beispielen eine Definitionsdatei für BlitzMax schreiben/generieren können.

Es werden nur die Keywords aus den BRL und PUB Modulen hervorgehoben. (so wie die bei mir waren)

Definitionsdatei:
http://onkel-foody.de/files/ar...tzmax.lang (~31 KB)
( Die Definitionsdatei ist nur für den gtksourceview 2 gedacht; Kann nach /usr/share/gtksourceview-2.0/language-specs o.ä. kopiert werden)

[edit]
Update:
Jetzt werden auch Sequenzen (wie ~n,~t, ...) in Strings als auch Dokumentationskeywords (bbdoc,returns,about) in Rem-Blöcken hervorgehoben
[/edit]

Den "Keyword Generator" kann man hier finden: (optional; Nur wenn man die Keywords aktualisieren möchte)
http://onkel-foody.de/files/ar...MXKeywords
( in PHP geschrieben; Wandelt die commands.txt, die man unter BlitzMax/docs/html/Modules findet, in <keyword>-Tags um)

Mime Type definieren
Damit eine *.bmx Datei als BlitzMax Datei anerkannt wird kann man folgendes machen:
Code: [AUSKLAPPEN]
# Als root
su

# Verzeichnis wechseln
cd /usr/share/mime/packages

# freedesktop.org.xml öffnen
# es kann auch gedit o.ä. verwendet werden
vim freedesktop.org.xml



Ganz nach unten scrollen und vor </mime-info> folgendes einfügen:

Code: [AUSKLAPPEN]
<mime-type type="text/x-bmx">
    <comment xml:lang="en">BlitzMax</comment>
    <glob pattern="*.bmx"/>
  </mime-type>


Dann einmal
Code: [AUSKLAPPEN]
update-mime-database .

ausführen.

Nun sollte es gehen. ( Zumindest in Debian unter GNOME ;) )


Grüße,
FOODy
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB

Goodjee

BeitragFr, Sep 19, 2008 14:22
Antworten mit Zitat
Benutzer-Profile anzeigen
alta, du bist der beste Very Happy

wenn jetzt noch schlüsselwörter für den programmablauf wie if end type field method usw (die dich ich als fett definieren wollte) die einzigen fetten wären und die anderen befehle nur anders hervorgehoben würden wäre es perfekt Very Happy

sooo, ich habs mit perfekt gemacht Very Happy


edit:
ein kleines externes wekrzeug zum starten des codes:
Code: [AUSKLAPPEN]

/home/goodjee/BlitzMax/bin/bmk makeapp -o geditbuild $GEDIT_CURRENT_DOCUMENT_PATH
$GEDIT_CURRENT_DOCUMENT_DIR/geditbuild

muss natürlich leicht angepasst werden, aber macht gedit schon ziemlich tauglich zum coden
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

FOODy

BeitragFr, Sep 19, 2008 15:14
Antworten mit Zitat
Benutzer-Profile anzeigen
@Schlüsselwörter:
So ich hab es jetzt getrennt.
Es wird nun zwischen Schlüsselwörtern (die in brl.blitz definiert werden) und normalen Identifiers halbwegs unterschieden. (Notfalls müssten die <keywords> Angepasst werden, aber ich denke, dass das generierte schon ganz gut ist.)

Links sind die gleichen. (siehe 2ter Post; https://www.blitzforum.de/foru...370#307370)

@Externes Werkzeug:
Cool.
Wusste garnicht das man sowas machen kann. :D


Grüße,
FOODy
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB

Goodjee

BeitragFr, Sep 19, 2008 15:43
Antworten mit Zitat
Benutzer-Profile anzeigen
sehr schön, deine liste ist vollständiger als meine...wobei ich manche nicht verstehe warum sie drin sind, z.B. chr, aber is ja wayne Very Happy
damit ist gedit meine bmaxide...schön schlank, so wie die standartide dafür hat sie automatisches eindrücken und schönere farben Wink,
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

FOODy

BeitragFr, Sep 19, 2008 15:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, Goodjee.
Chr ist ein Keyword: (brl.blitz)
Code: [AUSKLAPPEN]
[...]
Rem
bbdoc: Create a string of length 1 with a character code
keyword: "Chr"
End Rem
[...]


Die Liste hab ich jetzt nochmal ausgebessert. (bzw den Generator)
Jetzt wird AppDir, AppTitle, etc nicht mehr als Keyword anerkannt, sondern als Identifier.

Links siehe 2ter Post. ( https://www.blitzforum.de/foru...370#307370 )


Grüße,
FOODy
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB

Goodjee

BeitragFr, Sep 19, 2008 17:17
Antworten mit Zitat
Benutzer-Profile anzeigen
jetzt wo dus saggst gibt alles einen sinn.

aber noch ein miniupdate meinerseits:
das externe werkzeug sollte hiermit auch mit pfaden mit leerzeichen geh:
Code: [AUSKLAPPEN]

/home/lukas/BlitzMax/bin/bmk makeapp -o geditbuild "$GEDIT_CURRENT_DOCUMENT_PATH"
"$GEDIT_CURRENT_DOCUMENT_DIR/geditbuild"


EDIT: nach einer prügelei mit grep und seinen komischen regex habe ich ein weiteres nützliches werkzeug geschaffen:

Code: [AUSKLAPPEN]

#!/bin/sh
read c
egrep -i "^$c(:|\(|\$| |)+" /home/lukas/BlitzMax/docs/html/Modules/commands.txt

hier muss man als eingabe das "momentane Wort" einstellen und schon kriegt man eine minihilfe dazu angezeigt, wenn man mit der maus drauf ist und das programm ausführt.
edit2:jetzt gehts wirklich Very Happy
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

Neue Antwort erstellen


Übersicht Sonstiges Smalltalk

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group