Re: GoScintilla - 2.2 (Purebasic 4.5 only)
Posted: Fri Dec 24, 2010 9:23 am
Thanx, that works...
Very good is goscintilla !
merry christmas
Very good is goscintilla !
merry christmas
http://www.purebasic.com
https://www.purebasic.fr/english/
Code: Select all
;/////////////////////////////////////////////////////////////////////////////////
;***Go-Scintilla 2***
;*=================
;*
;*©nxSoftWare (www.nxSoftware.com) 2010.
;*======================================
;*
;* Commented demo program.
;/////////////////////////////////////////////////////////////////////////////////
; IncludePath "C:\Dobro\Purebasic_4_51\Include\"
XIncludeFile "GoScintilla.pbi"
;Initialise the Scintilla library for Windows.
CompilerIf #PB_Compiler_OS = #PB_OS_Windows
InitScintilla()
CompilerEndIf
Enumeration
#window
#editeur
EndEnumeration
If OpenWindow(#window, 100, 200, 600, 600, "GoScintilla demo!", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered)
RemoveKeyboardShortcut(#window, #PB_Shortcut_Tab) ;Required for the tab key to function correctly when the Scintilla control has the focus.
;Create our Scintilla control. Note that we do not specify a callback; this is optional for GoSctintilla.
GOSCI_Create( #editeur, 10, 10, 580, 580, 0, #GOSCI_AUTOSIZELINENUMBERSMARGIN)
;Set the padding added to the width of the line-number margin.
GOSCI_SetAttribute ( #editeur, #GOSCI_LINENUMBERAUTOSIZEPADDING, 10) ; numeros de ligne
;Set folding symbols margin width.
GOSCI_SetMarginWidth( #editeur, #GOSCI_MARGINFOLDINGSYMBOLS,12) ; le symbole de folding
;Set the back color of the line containing the caret.
GOSCI_SetColor( #editeur, #GOSCI_CARETLINEBACKCOLOR, $B4FFFF) ; ligne selectionnée
;Set font.
GOSCI_SetFont( #editeur, "Comic Sans MS", 10,#PB_Default)
;Set tabs. Here we use a 'hard' tab in which a tab character is physically inserted. Set the 3rd (optional) parameter to 1 to use soft-tabs.
GOSCI_SetTabs( #editeur, 8,#PB_Default) ; mise en forme !!
;Set styles for our syntax highlighting.
;=======================================
;First define some constants to identify our various styles.
;You can name these as we wish.
Enumeration
#STYLES_COMMANDS = 1
#STYLES_COMMENTS
#STYLES_LITERALSTRINGS
#STYLES_NUMBERS
#STYLES_CONSTANTS
#STYLES_FUNCTIONS
EndEnumeration
;Set individual styles for commands.
GOSCI_SetStyleFont( #editeur, #STYLES_COMMANDS, "", -1, #PB_Font_Bold)
GOSCI_SetStyleColors( #editeur, #STYLES_COMMANDS, $800000,#PB_Default) ;We have omitted the optional back color.
;Set individual styles for comments.
GOSCI_SetStyleFont( #editeur, #STYLES_COMMENTS, "", -1, #PB_Font_Italic)
GOSCI_SetStyleColors( #editeur, #STYLES_COMMENTS, $006400,#PB_Default) ;We have omitted the optional back color.
;Set individual styles for literal strings.
GOSCI_SetStyleColors( #editeur, #STYLES_LITERALSTRINGS, #Gray,#PB_Default) ;We have omitted the optional back color.
;Set individual styles for numbers.
GOSCI_SetStyleColors( #editeur, #STYLES_NUMBERS, #Red,#PB_Default) ;We have omitted the optional back color.
;Set individual styles for constants.
GOSCI_SetStyleColors( #editeur, #STYLES_CONSTANTS, $2193DE,#PB_Default) ;We have omitted the optional back color.
;Set individual styles for functions.
GOSCI_SetStyleColors( #editeur, #STYLES_FUNCTIONS, #Blue,#PB_Default) ;We have omitted the optional back color.
;Set delimiters and keywords for our syntax highlighting.
;========================================================
;Delimiters.
;First set up a ; symbol to denote a comment. Note the use of #GOSCI_DELIMITTOENDOFLINE.
;Note also that this symbol will act as an additional separator.
GOSCI_AddDelimiter( #editeur, ";", "", #GOSCI_DELIMITTOENDOFLINE, #STYLES_COMMENTS)
;Now set up quotes to denote literal strings.
;We do this by passing the beginning and end delimiting characters; in this case both are quotation marks. Note the use of #GOSCI_DELIMITBETWEEN.
;Note also that a quote will subsequently act as an additional separator.
GOSCI_AddDelimiter( #editeur, Chr(34), Chr(34), #GOSCI_DELIMITBETWEEN, #STYLES_LITERALSTRINGS)
;Now set up a # symbol to denote a constant. Note the use of #GOSCI_LEFTDELIMITWITHOUTWHITESPACE.
GOSCI_AddDelimiter( #editeur, "#", "", #GOSCI_LEFTDELIMITWITHOUTWHITESPACE, #STYLES_CONSTANTS)
;Now set up a ( symbol to denote a function. Note the use of #GOSCI_RIGHTDELIMITWITHWHITESPACE.
GOSCI_AddDelimiter( #editeur, "[", "", #GOSCI_RIGHTDELIMITWITHWHITESPACE, #STYLES_FUNCTIONS)
;We arrange for a ) symbol to match the coloring of the ( symbol.
GOSCI_AddDelimiter( #editeur, "]", "", 0, #STYLES_FUNCTIONS)
;Basic command keywords.
GOSCI_AddKeywords( #editeur, "Debug End If ElseIf Else EndIf For To Next Step Protected ProcedureReturn", #STYLES_COMMANDS,#PB_Default,#PB_Default)
;Add some folding keywords.
GOSCI_AddKeywords( #editeur, "Procedure Macro", #STYLES_COMMANDS, #GOSCI_OPENFOLDKEYWORD,#PB_Default)
GOSCI_AddKeywords( #editeur, "EndProcedure EndMacro", #STYLES_COMMANDS, #GOSCI_CLOSEFOLDKEYWORD,#PB_Default)
;Additional lexer options.
;=========================
;The lexer needs to know what separator characters we are using.
GOSCI_SetLexerOption( #editeur, #GOSCI_LEXEROPTION_SEPARATORSYMBOLS, @"=+-*/%()[],.") ;You would use GOSCI_AddKeywords() to set a style for some of these if required.
;We can also set a style for numbers.
GOSCI_SetLexerOption( #editeur, #GOSCI_LEXEROPTION_NUMBERSSTYLEINDEX, #STYLES_NUMBERS)
;Set some initial text.
;======================
text$ = "; GoScintilla 2.0." + #CRLF$
text$ + "; By Stephen Rodriguez." + #CRLF$ + #CRLF$
text$ + "#MyConstant$ = " + Chr(34) + "Version = 1.0" + Chr(34) + #CRLF$ + #CRLF$
text$ + "Procedure.i AddIntegers(a, b)" + #CRLF$
text$ + #TAB$ + "Protected result" + #CRLF$
text$ + #TAB$ + "result = a + b ; Calculate the sum of the 2 integers." + #CRLF$
text$ + #TAB$ + "ProcedureReturn result" + #CRLF$
text$ + "EndProcedure" + #CRLF$ + #CRLF$
text$ + "Debug " + Chr(34) + "The sum of 10 and 20 is " + Chr(34) + " + Str(AddIntegers(10, 20))" + #CRLF$ + #CRLF$
text$ + "End" + #CRLF$
GOSCI_SetText( #editeur, text$,#PB_Default)
;Debug GOSCI_GetText(#editeur)
Repeat
eventID = WaitWindowEvent()
Select eventID
Case #PB_Event_Gadget
Select EventGadget()
EndSelect
EndSelect
Until eventID = #PB_Event_CloseWindow
;Free the Scintilla gadget.
;This needs explicitly calling in order to free resources used by GoScintilla.
GOSCI_Free( #editeur)
EndIf
; IDE Options = PureBasic 4.51 RC 2 (Windows - x86)
; CursorPosition = 93
; FirstLine = 85
; EnableXP
; Executable = t.exe
no in my Samsung NC10 !srod wrote:The original CHM file works fine here.
Code: Select all
Procedure Load_Pb(num)
;num=numero de l'editeur
lineIndex=0
NomFichier_load$ = OpenFileRequester("Ouvrir", NomFichier_load$, "Purebasic|*.pb;*.pbi", 0 )
If ReadFile(0, NomFichier_load$) ; Si le fichier peut être lu , on continue...
While Eof(0) = 0 ; Boucle tant que la fin du fichier n'est pas atteinte. (Eof = 'End Of File')
Ligne$=ReadString(0) ; Affiche ligne par ligne le contenu du fichier
; lineIndex=lineIndex+1
GOSCI_InsertLineOfText(num, -1,Ligne$ )
Wend
CloseFile(0) ; Ferme le fichier précédemment ouvert
;GOSCI_SetText(#Editor, Ligne$, clearUndoStack=#False)
Ligne$=""
Else
MessageRequester("Information","Impossible d'ouvrir le fichier!")
EndIf
EndProcedure
Code: Select all
Procedure Load_Pb(num)
;num=numero de l'editeur
lineIndex=0
NomFichier_load$ = OpenFileRequester("Ouvrir", NomFichier_load$, "Purebasic|*.pb;*.pbi", 0 )
If ReadFile(0, NomFichier_load$) ; Si le fichier peut être lu , on continue...
While Eof(0) = 0 ; Boucle tant que la fin du fichier n'est pas atteinte. (Eof = 'End Of File')
Ligne$=ReadString(0) ; Affiche ligne par ligne le contenu du fichier
;lineIndex=lineIndex+1
GOSCI_InsertLineOfText(num, -1,Ligne$ )
Wend
CloseFile(0) ; Ferme le fichier précédemment ouvert
;GOSCI_SetText(#Editor, Ligne$, clearUndoStack=#False)
Ligne$=""
Else
MessageRequester("Information","Impossible d'ouvrir le fichier!")
EndIf
nom$=GetFilePart(NomFichier_load$)
nom_onglet_panel(#Panel, nom$)
EndProcedure
Code: Select all
Procedure Load_Pb(num)
;num=numero de l'editeur
lineIndex=0
NomFichier_load$ = OpenFileRequester("Ouvrir", NomFichier_load$, "Purebasic|*.pb;*.pbi", 0 )
If ReadFile(0, NomFichier_load$) ; Si le fichier peut être lu , on continue...
GOSCI_InsertLineOfText(num, -1,"" ) ; ------------------ SROD HERE !! insert in the number one line !! :)
While Eof(0) = 0 ; Boucle tant que la fin du fichier n'est pas atteinte. (Eof = 'End Of File')
Ligne$=ReadString(0) ; Affiche ligne par ligne le contenu du fichier
;lineIndex=lineIndex+1
GOSCI_InsertLineOfText(num, -1,Ligne$ )
Wend
CloseFile(0) ; Ferme le fichier précédemment ouvert
;GOSCI_SetText(#Editor, Ligne$, clearUndoStack=#False)
Ligne$=""
Else
MessageRequester("Information","Impossible d'ouvrir le fichier!")
EndIf
nom$=GetFilePart(NomFichier_load$)
nom_onglet_panel(#Panel, nom$)
EndProcedure