Du bist nicht angemeldet.

magerquark

Registrierter Benutzer

  • »magerquark« ist männlich
  • »magerquark« ist der Autor dieses Themas

Beiträge: 633

Dabei seit: 12. Dezember 2008

Hilfreich-Bewertungen: 1

  • Private Nachricht senden

1

Donnerstag, 20. August 2009, 19:12

YASHBox - Syntaxhighlighting - Zeilennummerierung

Ich möchte euch heute mein neues Projekt vorstellen.

YASHBox
Yet Another Syntax Highlighter - Box


Funktionen:
  • Syntaxhighlighting mit 3 verschieden einstellbare Farben:
    1 - Die frei definierbare Wörteliste
    2 - für Strings (das Zeichen welches Strings einleitet & beendet kann eingestellt weden)
    3 - für Kommentare (das Zeichen welches Kommentare einleitet kann eingestellt werden)
    4 - für durch code in der yashbox hinzugefügte keywords (s.h. DefineString)
  • Zeilennummeriereung am rechten/linken (einstellbar) Rand


Geplant:
[*]Perfomanceverbesserung
[/list]

Eigenschaften:

Visual Basic Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
YashBox1.KeyColor = Color.Blue 'Farbe die Benutzt wird um die Worter aus "KeyWords" zu Markieren
        YashBox1.KeyWords = New String() {"Public", "Class", "Private", "Sub", "ByVal", "As", "Handles", "MyBase", "End", "If", "New", "True", "False"}
        'Groß& Kleinschreibung spielt keine ROLLE.
        YashBox1.Comment = "'" 'Das (die) Zeichen mit der die Kommentare beginnen
        YashBox1.CommentColor = Color.DarkGreen 'Die Farbe mit der die Kommentar markiert werden
        YashBox1.CountForeColor = Color.Gray 'Zeilennummerierung: 1. Verlauf - Farbe : STANDARD: GRAU
        YashBox1.CountBackColor = Color.White 'Zeilennummerierung: 2. Verlauf - Farbe : STANDARD: WEIß 
        YashBox1.CountAlign = LeftRightAlignment.Left 'Zeilennummerierung Ausrichtung (linker/rechter Rand) STANDARD: LINKS
        YashBox1.HighlightEnabled = True 'Gibt an, ob gehighlighted werden soll. STANDARD: TRUE
        YashBox1.CountEnabled = True 'Gibt an ob die Zeilennummerierung aktiviert ist. STANDARD: TRUE
        YashBox1.CountFontColor = Brushes.Blue 'Die Schriftfarbe der Zeilennummerierung. STANDART: BLAU
        YashBox1.HighlightString = """" 'Zeichen mit dem die zu markierenden Strings beginnen und beendet werden. 
        'Standart ist wie bei Visual Basic dieses Zeichen: " .
        YashBox1.StringColor = Color.DarkRed 'Farbe mit der Strings markiert werden. STANDARD: Dunkelrot
        YashBox1.KeyWords2 = New String(){"siehe KeyWords"}
        Yashbox1.KeyColor2 = Color.Green 'die Farbe zu KeyWords2
        Yashbox1.IntegerColor = Color.Aqua 'Die Farbe mit der Zahlen markiert werden. 
        YashBox1.DefineString = "#Define" 
        YashBox1.DefineColor = YashBox1.KeyColor
        'Beispiel zu DefineString & DefineColor:
        '#Define x as String ->> Im Weiteren Text der Box wird x immer mit der farbe DefineColor markiert.


Screenshot:



Download:
Im Anhang (.RAR/.ZIP)


Sonstiges:


Programmiert wurde mit dem .net-Framework 2.0 unter VS 2008.



Ganz wichtig wär mir das ihr das korrekte Darstellen der Zeilennummerierung testet, da ich die Befürchtung hab, das es an verschiedenen PCs anders aussieht.
(DPI ist schon mit einbezogen in meine Berechnung)

EDIT:
NEUE VERSION!
Die Zeilennummerierung geht nur bis zur letzten, benutzten Zeile.

EDIT2:
NEUE VERSION!
Markierung von Zahlen (nicht in Verbindung mit Zeichen, d.h.: 1S --> hier wird die 1 nicht markiert. 11231 --> hier werden alle Zahlen markiert.
2te. KeyWords Liste mit anderer Farbe.
Markieren von im Text der YASHBOX definierten Konstanten.
(vgl. "#Define" in C++)
Druckfunktion wurde noch nicht umgesetzt.
»magerquark« hat folgende Dateien angehängt:
  • YASH.zip (10,69 kB - 99 mal heruntergeladen - zuletzt: 4. Januar 2012, 16:45)
  • YASH.rar (10,1 kB - 51 mal heruntergeladen - zuletzt: 14. Dezember 2011, 14:34)
http://tc-coding.de.vu
__________________________
"Know ye not that ye are gods?"

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »magerquark« (30. August 2009, 17:20)


jansteffen

progga in da house äh... forum ^^

  • »jansteffen« ist männlich

Beiträge: 120

Dabei seit: 2. Juni 2009

Wohnort: ERROR 404

Hilfreich-Bewertungen: 6

  • Private Nachricht senden

2

Freitag, 21. August 2009, 08:06

hey, echt cool, aber die numerierung und die zeilen stimmen nich ganz ueberein. Vorschlag: mach doch die numerierung so, das z.B. wenn 15 zeilen code da sind die numerierung auch nur bis 15 geht :thumbup:
Du sagst Justin Bieber, Ich sage John O'Callaghan
Du sagst Miley Cyrus, Ich sage Guru Josh project
Du sagst Kesha, Ich sage Deadmau5
Du sagst Eminem, Ich sage Papa Roach

92% Kinder und Jugendliche hören Pop und Hiphop. Wenn der einer der 8% bist, der noch echte Musik hört, kopier dies in deine Signatur!

magerquark

Registrierter Benutzer

  • »magerquark« ist männlich
  • »magerquark« ist der Autor dieses Themas

Beiträge: 633

Dabei seit: 12. Dezember 2008

Hilfreich-Bewertungen: 1

  • Private Nachricht senden

3

Freitag, 21. August 2009, 08:56

Hi,
das mit der Nummerierung nur soweit wie's auch Code gibt lässt sich leicht realisieren.
Das die Darstellung der Nummerierung nicht 100%ig hin haut hab ich befürchtet... werds nochmal aufm zweitsystem testen.
Leider komm ich heute erst am späten Nachmittag (vllt. sogar später Abend) zu.
Lg, magerquark
http://tc-coding.de.vu
__________________________
"Know ye not that ye are gods?"

Beiträge: 326

Dabei seit: 12. Januar 2009

Hilfreich-Bewertungen: 5

  • Private Nachricht senden

4

Freitag, 21. August 2009, 11:32

Echt super!
Darf ich die DLL in meine Anwendung mit rein kompilieren?

Peter
Viele Grüße
Peter
Das Technik-Logbuch
Mein System: Windows 7 Ultimate # VisualBasic2008 Express-Edition

magerquark

Registrierter Benutzer

  • »magerquark« ist männlich
  • »magerquark« ist der Autor dieses Themas

Beiträge: 633

Dabei seit: 12. Dezember 2008

Hilfreich-Bewertungen: 1

  • Private Nachricht senden

5

Samstag, 22. August 2009, 11:26

Ja, darfst du.
Ein Verweis in den Credits wäre aber nett.
(Beispiel: verwendet YASHBox (c) tc-coding.de.vu)
http://tc-coding.de.vu
__________________________
"Know ye not that ye are gods?"

magerquark

Registrierter Benutzer

  • »magerquark« ist männlich
  • »magerquark« ist der Autor dieses Themas

Beiträge: 633

Dabei seit: 12. Dezember 2008

Hilfreich-Bewertungen: 1

  • Private Nachricht senden

6

Samstag, 22. August 2009, 11:44

Neue Version online:
Die Zeilennummerierung geht nur bis zur letzten Zeile.
http://tc-coding.de.vu
__________________________
"Know ye not that ye are gods?"

Beiträge: 326

Dabei seit: 12. Januar 2009

Hilfreich-Bewertungen: 5

  • Private Nachricht senden

7

Samstag, 22. August 2009, 15:44

Mir ist da noch etwas eingefallen:

  • Warum gibt es eigentlich nur eine Keyword-Liste? Ich fände es klasse, wenn man auch noch eine 2. Liste hätte (Spezialbefehle, Einsprungpunkte, etc) (natürlich dann auch 2. Farbe)
  • Eine Erkennung von Bezeichnern (bsp: #define Test As Output oder #define Test As Input ==> Test wird in einer anderen Farbe geschrieben (auch im weiteren Verlauf)
  • Zahlenwerte lassen sich in einer anderen Farbe anzeigen

  • Last but not least: Eine Druckfunktion wäe klasse!
Viele Grüße
Peter
Das Technik-Logbuch
Mein System: Windows 7 Ultimate # VisualBasic2008 Express-Edition

magerquark

Registrierter Benutzer

  • »magerquark« ist männlich
  • »magerquark« ist der Autor dieses Themas

Beiträge: 633

Dabei seit: 12. Dezember 2008

Hilfreich-Bewertungen: 1

  • Private Nachricht senden

8

Samstag, 22. August 2009, 16:08

"Warum gibt es eigentlich nur eine Keyword-Liste? Ich fände es klasse, wenn man auch noch eine 2. Liste hätte (Spezialbefehle, Einsprungpunkte, etc) (natürlich dann auch 2. Farbe)"
Hatte anfangs 2 drin, dachte aber, dass es eh nur unübersichtlich ist und es nicht benötigt wird, kann ich aber gerne wieder einbauen.

"Eine Erkennung von Bezeichnern (bsp: #define Test As Output oder #define Test As Input ==> Test wird in einer anderen Farbe geschrieben (auch im weiteren Verlauf)"
Das wird warsch. nicht ganz so einfach, ich werde mich aber mal dran versuchen.

"Zahlenwerte lassen sich in einer anderen Farbe anzeigen"
Meinst du hierbei die Zeilennummerierung? Diese Farbe lässt sich einstellen.
Oder willst du alle Zahlen in der Box mit einer bestimmten Farbe anzeigen lassen?
Wenn ja - kein Problem, Regex sei dank.

"Last but not least: Eine Druckfunktion wäe klasse!"
Sowas hatte ich noch nie in einem Control, sollte sich aber auch realiseren lassen.
http://tc-coding.de.vu
__________________________
"Know ye not that ye are gods?"

Beiträge: 326

Dabei seit: 12. Januar 2009

Hilfreich-Bewertungen: 5

  • Private Nachricht senden

9

Samstag, 22. August 2009, 17:01


"Zahlenwerte lassen sich in einer anderen Farbe anzeigen"
Meinst du hierbei die Zeilennummerierung? Diese Farbe lässt sich einstellen.
Oder willst du alle Zahlen in der Box mit einer bestimmten Farbe anzeigen lassen?
Wenn ja - kein Problem, Regex sei dank.


Also ich meine, dass im Quelltext die Zahlen in einer Farbe gedruckt werden.

Bsp:
Dim Test As Integer = 123
Viele Grüße
Peter
Das Technik-Logbuch
Mein System: Windows 7 Ultimate # VisualBasic2008 Express-Edition

magerquark

Registrierter Benutzer

  • »magerquark« ist männlich
  • »magerquark« ist der Autor dieses Themas

Beiträge: 633

Dabei seit: 12. Dezember 2008

Hilfreich-Bewertungen: 1

  • Private Nachricht senden

10

Samstag, 22. August 2009, 17:47

NEUE VERSION

Hi, es ist eine Neue Version verfügbar.
Habe bis auf die Druckfunktion alle Vorschläge von Peterf1 umgesetzt.
Danke für die konstruktive Kritik!
lg, magerquark
http://tc-coding.de.vu
__________________________
"Know ye not that ye are gods?"

Beiträge: 326

Dabei seit: 12. Januar 2009

Hilfreich-Bewertungen: 5

  • Private Nachricht senden

11

Samstag, 22. August 2009, 18:10

Schon wieder ich ...

Bugs
  1. Wenn ich Strg + A drücke und dann Del (alles lösche), dann verschwindet auch die Zeilennummerierung!
  2. Die Performance muss verbessert werden! Wenn ich sehr schnell Text eingebe oder die Enter-Taste gedrückt halte, ruckelt die Darstellung und die Zeilennummerierung blinkt!


EDIT: Noch ein Vorschlag: Einstellung der Schriftart!
Viele Grüße
Peter
Das Technik-Logbuch
Mein System: Windows 7 Ultimate # VisualBasic2008 Express-Edition

magerquark

Registrierter Benutzer

  • »magerquark« ist männlich
  • »magerquark« ist der Autor dieses Themas

Beiträge: 633

Dabei seit: 12. Dezember 2008

Hilfreich-Bewertungen: 1

  • Private Nachricht senden

12

Samstag, 22. August 2009, 18:25


  1. Wenn ich Strg + A drücke und dann Del (alles lösche), dann verschwindet auch die Zeilennummerierung!


Das ist gewollt, schließlich geht die Zeilennummerierung nur bis zur letzten verwendeten Zeile.

  1. Die Performance muss verbessert werden! Wenn ich sehr schnell Text eingebe oder die Enter-Taste gedrückt halte, ruckelt die Darstellung und die Zeilennummerierung blinkt!


Dieses Problem ist uns bekannt ;D
GDI+ ist einfach zu lahm. Ich werde sehen was sich machen lässt, so schnell werde ich da aber nichts finden.
Wenn du willst mach ich ne eigenschaft um den Verlauf ganz rauszunehmen, das Flackern verschwindet dann.

Zur Schriftart muss ich schaun wie sich das auf die Zeilenhöhe auswirkt und ob ich das in meine Berechnung zur Zeilennummerierung mit einbinden kann.

Für mich ist jetzt erstmal Schluss. (bis morgen warscheinlich)
http://tc-coding.de.vu
__________________________
"Know ye not that ye are gods?"

Alex2000

unregistriert

13

Samstag, 22. August 2009, 18:30

schauts gut aus, weiter so... :thumbup:

Beiträge: 326

Dabei seit: 12. Januar 2009

Hilfreich-Bewertungen: 5

  • Private Nachricht senden

14

Sonntag, 23. August 2009, 13:38

Tut mir leid, aber ich habe noch einen Vorschlag:
Wie wäre es mit einem Highlighten von Einsprungspunkten, also wie

Zitat

Main:
'Hier ist das Hauptprogramm
Goto Main
Viele Grüße
Peter
Das Technik-Logbuch
Mein System: Windows 7 Ultimate # VisualBasic2008 Express-Edition

magerquark

Registrierter Benutzer

  • »magerquark« ist männlich
  • »magerquark« ist der Autor dieses Themas

Beiträge: 633

Dabei seit: 12. Dezember 2008

Hilfreich-Bewertungen: 1

  • Private Nachricht senden

15

Sonntag, 23. August 2009, 17:05

Kannst du das genauer erklären? Was ist mit einsprungpunkten gemeint?
Meinst du, dass in deinem Beispiel dann das zweite Main markiert wird?
Also einfach alles was hinter einem GoTo (oder einem anderen, definierbaren String) steht markiert wird?
http://tc-coding.de.vu
__________________________
"Know ye not that ye are gods?"

Beiträge: 326

Dabei seit: 12. Januar 2009

Hilfreich-Bewertungen: 5

  • Private Nachricht senden

16

Sonntag, 23. August 2009, 18:16

Also ich machs mal farbig:


#define P1 As Output

Main:
'Nach Absatzdrücken wird Main rot
SET P1 ON
Wait 1 s
SET P1 OFF
Wait 1 s
GOTO Main

grün: Kommentar
blau: Befehl in Keywordliste
Rot: Erkanner Einsprung

######################################
EDIT: Die Performance wäre wichtiger!
EDIT2: Aber noch ein Vorschlag, der glaube ich wohl nicht umgesetzt werden kann. Aber trotzdem: Eine "Vorschlagfunktion wie bei VB 2008
Viele Grüße
Peter
Das Technik-Logbuch
Mein System: Windows 7 Ultimate # VisualBasic2008 Express-Edition

Beiträge: 326

Dabei seit: 12. Januar 2009

Hilfreich-Bewertungen: 5

  • Private Nachricht senden

17

Donnerstag, 10. September 2009, 08:23

Ich bin jetzt aus dem Urlaub zurück und wollte nochmal die noch nötigen Verbesserungen zusammenfassen:
  • Die Performance
     Hier klicken für weitere Informationen
    Bei schneller Eingabe hinkt die Box, sowie die Zeilennummerierung blinkt


  • Markierung von Einsprungspunkten
     Hier klicken für weitere Informationen
    Der Einsprungspunkt Main (Sub) wird markiert und im weiteren Verlauf markiert (z.B.: rot). Entweder wird dieses "Main" immer gehighlightet oder nur nach GOSUB, GOTO etc.
    Main:

    'Nach Absatzdrücken wird Main rot

    SET P1 ON

    Wait 1 s

    SET P1 OFF

    Wait 1 s

    GOTO Main



    grün: Kommentar

    blau: Befehl in Keywordliste

    Rot: Erkanner Einsprung


  • Änderungsmöglichkeit der Schrift
     Hier klicken für weitere Informationen
    Die Schiftgröße, die "Standard"-Farbe und die Schirftart lassen sich auswählen. Falls dies nicht möglich sein sollte, wenigstens 2 Schiftarten (z.B.: Standart MS und Courier New) und mehrere Größen zur Auswahl. Jetztige Größe ist etwas klein!


  • BUG: Beim Einfügen
     Hier klicken für weitere Informationen
    Das Bild sagt alles...




Ich weiß, das hier ist extrem viel, aber es soll ja nur eine Zusammenfassung sein
Viele Grüße
Peter
Das Technik-Logbuch
Mein System: Windows 7 Ultimate # VisualBasic2008 Express-Edition

aspire

Registrierter Benutzer

Beiträge: 236

Dabei seit: 19. Januar 2009

  • Private Nachricht senden

18

Donnerstag, 10. September 2009, 12:04

Könntest ja noch einbaun das man aus dem ganzen ne .exe machen kann :) Code dazu gibts ja im Board ;D
Mitglied von [NO C&P CODE]

Cooly96

Registrierter Benutzer

  • »Cooly96« ist männlich

Beiträge: 81

Dabei seit: 27. Juli 2009

Wohnort: C:/Recycler

  • Private Nachricht senden

19

Donnerstag, 4. Februar 2010, 20:40

wie für ich den text ein 8| packs i wie net

TS-Development

unregistriert

20

Samstag, 6. Februar 2010, 22:37

Visual Basic Quellcode

1
 YashBox1.KeyWords = New String() {"[b]", "Class", "Private", "Sub", "ByVal", "As", "Handles", "MyBase", "End", "If", "New", "True", "False"}


Dort ist ein KeyWord =

Wenn ich das dann so eingebe wird es nicht blau aber Private oder Sub oder Handles werden blau! Schade! Vieleicht kannst du das Verbessern

Ähnliche Themen

Social Bookmarks