scintilla_helper

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

scintilla_helper

Beitrag von ts-soft »

scintilla_helper ist eine kleine UserLib, die sich noch in der Entwicklung
befindet. Sie ergänzt die vorhandene Scintilla Lib um PB-Typische Befehle,
die gerade dem Einsteiger die Verwendung des Scintilla-Gadgets
vereinfachen sollen.

Diese erste Version unterstützt nur 32-Bit Windows, das wird sich aber
ändern, wenn die Lib aus der Testphase raus ist, dann werden 64-Bit und
Linux unterstützt, desweiteren wird es dann auch eine Hilfe geben.

Die Lib unterstützt ASCII, Unicode und Threadsafe. Für das Scintilla werden
folgende Codepages unterstützt:
#SC_CP_UTF8 = UTF-8, 65001 = Unicode sowie 0 = ASCII

Folgende Funktionen wurden implementiert:

Code: Alles auswählen

PB Art Funktionen:
SCI_AddGadgetItem(ID, pos, Text.s)
SCI_CountGadgetItems(ID)
SCI_GetGadgetItemText(ID, pos)
SCI_RemoveGadgetItem(ID, pos)
SCI_ClearGadgetItems(ID)
SCI_SetGadgetItemText(ID, pos, Text.s)
SCI_GetGadgetText(ID)
SCI_SetGadgetText(ID, Text.s)
SCI_GetGadgetAttribute(ID, Attribute)
	#PB_Editor_ReadOnly
SCI_SetGadgetAttribute(ID, Attribute, Value)
	#PB_Editor_ReadOnly
SCI_GetGadgetColor(ID, Type)
	#PB_Gadget_FrontColor
	#PB_Gadget_BackColor
SCI_SetGadgetColor(ID, Type, Color)
	#PB_Gadget_FrontColor
	#PB_Gadget_BackColor
SCI_SetGadgetFont(ID, FontName.s, Size)

Extra Funktionen:
SCI_GetTextFormat(ID)
Ermittelt anhand der eingestellten Codepage das Textformat im Gadget,
mögliche Ergebnisse: #PB_Ascii, #PB_UTF8, #PB_Unicode

SCI_GetCurrentSelection(ID)
Aktuell selektierter Text wird zurückgegeben.

SCI_GetCurrentWord(ID)
Das Word, in dem sich der Cursor befindet, wird zurückgegeben.

SCI_LoadFile(ID, FileName.s)
Es wird die angegebene Datei schnell ins Gadget geladen,
die CodePage des Gadget wird, wenn BOM vorhanden, an das FileFormat angepaßt.

SCI_SaveFile(ID, FileName.s)
Der aktuelle Inhalt des Gadgets wird, unter Berücksichtigung
der Codepage, schnell gespeichert.

ScintillaGadgetPB(ID, x, y, w, h , SyntaxHilightingDLL.s)
Dieses Gadget aktiviert SyntaxHilighting für PureBasic, 
hierfür ist die SyntaxHilighting.dll aus dem SDK von PureBasic
erforderlich. Farben werden von der PB-IDE übernommen, wenn vorhanden,
ansonsten standard PB-Farben.
Ich bitte euch um gründliches Testen, sowie Vorschläge für Erweiterungen.
Bitte keine Lexxer-spezifischen Wünsche, da läßt sich nicht viel
vereinfachen.

Download

PS: Ihr könnt auch Snippets posten, die ich dann evtl. übertrage

Gruß

Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Interesse scheint nicht so gross, naja.
( oder schlafen die alle am Samstag so früh ? )

Update:
ScintillaGadgetPB hinzugefügt.
Erzeugt ein Scintilla das bereits für SyntaxHighlighting für PB konfiguriert ist.
Hierfür ist lediglich die SyntaxHilighting.dll aus dem SDK von PureBasic
erforderlich.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
man-in-black
Beiträge: 362
Registriert: 21.08.2006 17:39

Beitrag von man-in-black »

cool! :allright:
habs zwar noch nicht getestet, aber werde es vllt heut nachmittag machen...


(ich habs immer wieder gelassen mich mit dem ScintillaGadget zu befassen, weil es mir doch ein wenig zu hoch vorkam. :oops: )


MFG,
MIB
(hab alles, kann alles, weiß alles!!^^)

Bild
Benutzeravatar
milan1612
Beiträge: 810
Registriert: 15.04.2007 17:58

Beitrag von milan1612 »

Super! Ich steig beim Scintilla immer nie wirklich durch, das kommt wie gerufen!
Koenntest du vielleicht mal versuchen die gesamte Syntax Highlighting Konfiguration
zu vereinfachen, also mit Styles und den Keywords usw? Waere super :allright:
Bin nur noch sehr selten hier, bitte nur noch per PN kontaktieren
Andesdaf
Moderator
Beiträge: 2671
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

Danke! Immer wieder wollte ich mir Scintilla mal genauer anschauen,
bin aber immer in den ScintillaSendMessages drin stecken geblieben
:allright: :allright: :allright:
Win11 x64 | PB 6.20
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

> bin aber immer in den ScintillaSendMessages drin stecken geblieben
daran wird sich nicht viel ändern, die einfachen Messages werde ich nicht
wrappen, macht keinen Sinn. Nur dort, wo man 3, 4 oder mehr Messages
kombinieren muß um ein Ergebnis zu erzielen.
z.B. GetCurrentWord()

Desweiteren natürlich alle Funktionen, die auch das EditorGadget hat, das ist
ja schon erledigt, aber noch nicht besonders getested. (wird wohl noch der
eine oder andere Bug auftauchen)

Bei den Lexxern kann ich nicht viel optimieren, höchsten Proceduren mit
mehreren Parametern, die immer zusammengehören, so das man sich
ein paar ScintillaSendMessage sparen kann.

Beispiele könnte ich hinzufügen, für Standardlexxer der SciLexxer.dll.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Update

Komplette Hilfe hinzugefügt
"dokumentierten" Source hinzugefügt (eignet sich auch als Include-Datei)

Beispiele hab ich keine erstellt. Das ganze Wochenende 7 downloads, dat
lohnt die Mühe nicht. Wenn jemand noch Beispiele hat, werde ich sie gerne
hinzufügen.

PS: Das ScintillaGadgetPB funktioniert unter x64 noch nicht richtig, muß ich
noch mal checken wo der Wurm da steckt.

Ich hoffe es ist nützlich und man kann daraus lernen.

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Andesdaf
Moderator
Beiträge: 2671
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

danke. die Hilfe wollte ich auch so mal aus Spaß machen, hatte dann aber
doch keine Lust :mrgreen:
Win11 x64 | PB 6.20
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Andesdaf hat geschrieben:danke. die Hilfe wollte ich auch so mal aus Spaß machen, hatte dann aber
doch keine Lust :mrgreen:
Hätteste mal gemacht, dann wären nicht soviele falsche öffnende Klammern darin :mrgreen:

fixed
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Thorsten1867
Beiträge: 1360
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von Thorsten1867 »

Gibt es auch eine Alternative zum automatischen Zeilenumbruch?

Code: Alles auswählen

eg = EditorGadget(#Gadget,240,63,355,110)
SendMessage_(eg, #EM_SETTARGETDEVICE, 0, 0)
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Antworten