Jump to content
Kip

SciLexer UDF

Recommended Posts

Horizontal or vertical?

You a tooltip under the function when you're typing? (CallTip)

Vertical works fine, but it's horizontal that doesn't resize.

Yeah CallTips that show the syntax of a function. Like it would show: WinSetState("title", "text", state).

Thanks for your help Kip, these UDF's are very nice.

Heres my code, and why does it go into a infinite loop when I try to open a file?

Edited by TehWhale

Share this post


Link to post
Share on other sites

Hey Kip! Nice UDF!

I have a question for you.

How do I go about adding an embedded SciTE into a Tab control? It all runs fine but nothing shows up.

And after messing with it I realized I had to supply it the handle to the window. Is there anything I can do to make this work inside the tab not below the tab? :mellow:

Thanks

How did you supply it?

Edited by Zisly

Share this post


Link to post
Share on other sites

I will give the "code", I want it to be created in a tab.

Any tips?

$tab = GUICtrlCreateTabItem($Iname)
        $editF[$o] = $Iname
        $edit[$o] = Sci_CreateEditor($Form1,@DesktopWidth - 830, @DesktopHeight - 640, @DesktopWidth - 350, @DesktopHeight - 400)

Share this post


Link to post
Share on other sites

If you want to use multiple SciLexer controls in the same size and position, you also can use the included document management functions :mellow:

_SendMessage($Sci, $SCI_CREATEDOCUMENT)

_SendMessage($Sci, $SCI_GETDOCPOINTER, 0, 0)

_SendMessage($Sci, $SCI_SETDOCPOINTER, 0,$DocPointer)

_SendMessage($Sci, $SCI_RELEASEDOCUMENT, 0, $DocPointer)

--> http://anubis.uji.es/doc/anjuta-1.1.97/ScintillaDoc.html

Edited by ProgAndy

*GERMAN* [note: you are not allowed to remove author / modified info from my UDFs]My UDFs:[_SetImageBinaryToCtrl] [_TaskDialog] [AutoItObject] [Animated GIF (GDI+)] [ClipPut for Image] [FreeImage] [GDI32 UDFs] [GDIPlus Progressbar] [Hotkey-Selector] [Multiline Inputbox] [MySQL without ODBC] [RichEdit UDFs] [SpeechAPI Example] [WinHTTP]UDFs included in AutoIt: FTP_Ex (as FTPEx), _WinAPI_SetLayeredWindowAttributes

Share this post


Link to post
Share on other sites

I get a couple of errors.. :mellow:

C:\Documents and Settings\Ludo\Bureaublad\Scilexer\Scilexer Example.au3(40,35) : ERROR: Sci_AddLines() called with wrong number of args.
    Sci_AddLines($Sci, $DefaultText,0)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files\AutoIt3\Include\_SciLexer.au3(45,31) : REF: definition of Sci_AddLines().
Func Sci_AddLines($Text,$Line)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Documents and Settings\Ludo\Bureaublad\Scilexer\Scilexer Example.au3(41,35) : ERROR: Sci_AddLines() called with wrong number of args.
    Sci_AddLines($Sci, $DefaultText,2)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files\AutoIt3\Include\_SciLexer.au3(45,31) : REF: definition of Sci_AddLines().
Func Sci_AddLines($Text,$Line)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Documents and Settings\Ludo\Bureaublad\Scilexer\Scilexer Example.au3(56,30) : ERROR: Sci_GetSelection() called with wrong number of args.
    $Sel = Sci_GetSelection($Sci)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files\AutoIt3\Include\_SciLexer.au3(154,24) : REF: definition of Sci_GetSelection().
Func Sci_GetSelection()
~~~~~~~~~~~~~~~~~~~~~~~^
C:\Documents and Settings\Ludo\Bureaublad\Scilexer\Scilexer Example.au3(58,64) : ERROR: Sci_GetCurrentWord() called with wrong number of args.
    GUICtrlSetData($Word,"Current word: "& Sci_GetCurrentWord($Sci)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files\AutoIt3\Include\_SciLexer.au3(161,26) : REF: definition of Sci_GetCurrentWord().
Func Sci_GetCurrentWord()
~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Documents and Settings\Ludo\Bureaublad\Scilexer\Scilexer Example.au3(59,67) : ERROR: Sci_GetCurrentLine() called with wrong number of args.
    GUICtrlSetData($LineBla,"Current line: "& Sci_GetCurrentLine($Sci)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files\AutoIt3\Include\_SciLexer.au3(143,26) : REF: definition of Sci_GetCurrentLine().
Func Sci_GetCurrentLine()
~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Documents and Settings\Ludo\Bureaublad\Scilexer\Scilexer Example.au3(60,64) : ERROR: Sci_GetCurrentPos() called with wrong number of args.
    GUICtrlSetData($PosBla,"Current pos: "& Sci_GetCurrentPos($Sci)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files\AutoIt3\Include\_SciLexer.au3(120,25) : REF: definition of Sci_GetCurrentPos().
Func Sci_GetCurrentPos()
~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Documents and Settings\Ludo\Bureaublad\Scilexer\Scilexer Example.au3(61,52) : ERROR: Sci_GetZoom() called with wrong number of args.
    GUICtrlSetData($ZoomBla,"Zoom: "& Sci_GetZoom($Sci)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files\AutoIt3\Include\_SciLexer.au3(115,19) : REF: definition of Sci_GetZoom().
Func Sci_GetZoom()
~~~~~~~~~~~~~~~~~~^
C:\Documents and Settings\Ludo\Bureaublad\Scilexer\Scilexer Example.au3 - 7 error(s), 0 warning(s)
Edited by ludocus

Share this post


Link to post
Share on other sites

You can't, you'll have to create an whole new lexer to do that. (You can only make your own lexer with the second file)

Ok.

In the second example i saw that there were some red text in the sci control.

But I can't find where you set it :mellow:

Could you post a litle example to ex; make all 'do' to blue?

Share this post


Link to post
Share on other sites

Added 30 new functions: (to the new version)

Sci_CalltipShow($Sci, $iPos, $sText)

Sci_CalltipActive($Sci)

Sci_CalltipCancel($Sci)

Sci_CalltipHighlight($Sci, $iStartPos, $iEndPos)

Sci_CalltipPos($Sci)

Sci_CallTipSetHltColor($Sci, $iColor)

Sci_CallTipSetColor($Sci, $iColor)

Sci_CallTipSetBkColor($Sci, $iColor)

Sci_AutoCompleteActive($Sci)

Sci_AutoCompleteCancel($Sci)

Sci_AutoCompleteShow($Sci, $iLen, $sWords)

Sci_LineWrapSetMode($Sci, $iMode)

Sci_LineWrapSetIndent($Sci, $iMode)

Sci_LineWrapSetIndentLocation($Sci, $iLocation)

Sci_SetSavePoint($Sci)

Sci_GetModify($Sci)

Sci_SetAnchor($Sci, $iPos)

Sci_SetCurrentPosEx($Sci, $iPos)

Sci_ReplaceSel($Sci, $sText)

Sci_SelectionSetBkColor($Sci, $iColor, $iUse=True)

Sci_SelectionSetColor($Sci, $iColor, $iUse=True)

Sci_SelectionSetAlpha($Sci, $iAlpha)

Sci_SelectionGetAlpha($Sci)

Sci_CaretSetColor($Sci, $iColor)

Sci_CaretGetColor($Sci)

Sci_CaretSetWidth($Sci, $iWidth)

Sci_CaretGetWidth($Sci)

Sci_FoldingShowLines($Sci, $iStart, $iEnd)

Sci_FoldingHideLines($Sci, $iStart, $iEnd)

Sci_FoldingToggleFold($Sci, $iLine)

How can I set the "wrap" property of SciTE in my control ?

Use Sci_LineWrapSetMode($Sci, $iMode) where:

$iMode = 0 : don't wrap

$iMode = 1 : wrap words

$iMode = 2 : wrap characters

Share this post


Link to post
Share on other sites

Func Sci_GetChar($Sci, $Pos)
    Return ChrW(SendMessage($Sci, $SCI_GETCHARAT, $Pos, 0))
EndFunc
==> It doesn't work properly because the control returns a negative value for characters between 128 and 255.

Try :

Func Sci_GetChar($Sci, $Pos)
    Local $iChr = SendMessage($Sci, $SCI_GETCHARAT, $Pos, 0)
    If $iChr < 0 Then $iChr += 256
    Return Chr($iChr)
EndFunc

Share this post


Link to post
Share on other sites

In the new version lacks the Plugins.au3 me, can someone upload?

THX

Is really nice, I've always wanted

Edited by Jam00

Share this post


Link to post
Share on other sites

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>

#include <_SciLexer.au3>

Global Const $DefaultText = "#Include <GUIConstants.au3>" &@CRLF&@CRLF& _
    "$Gui1 = GUICreate(""Gui1"",600,500)"&@CRLF& _
    @TAB&  "$Button1 = GUICtrlCreateButton(""Button1"",150,300,120,23)" &@CRLF& _
    "GUISetState(@SW_SHOW)" &@CRLF&@CRLF& _
    "While 1" &@CRLF&@TAB&@CRLF& _
    @TAB& "$Msg = GUIGetMsg(1)" &@CRLF&@TAB&@CRLF& _
    @TAB& "Switch $Msg[0]" &@CRLF& _
    @TAB&@TAB& "Case $GUI_EVENT_CLOSE" &@CRLF& _
    @TAB&@TAB&@TAB& "Exit" &@CRLF&@TAB&@TAB&@TAB&@CRLF& _
    @TAB& "EndSwitch" &@CRLF&@TAB&@CRLF& _
    "WEnd"

$Gui = GUICreate("SciTest",800,700)
    
    $Sci = Sci_CreateEditor($Gui,200,10,590,680)
    Sci_AddLines($Sci, $DefaultText,0)
    Sci_AddLines($Sci, $DefaultText,2)
    
GUISetState(@SW_SHOW)



While 1
    
    $Msg = GUIGetMsg(1)
    Switch $Msg[0]
        Case $GUI_EVENT_CLOSE
            Exit
            
    EndSwitch   
WEnd

Theres a basic lexer with some sample text, no formatting. Trying to figure out the rest (how to load a style, etc.)

Share this post


Link to post
Share on other sites

The answer to formatting lies in this snippet:

Func InitEditor($Sci)

SendMessage($Sci, $SCI_SETLEXER, $SCLEX_AU3, 0)

$bits = SendMessage($Sci, $SCI_GETSTYLEBITSNEEDED, 0, 0)

SendMessage($Sci, $SCI_SETSTYLEBITS, $bits, 0)



SendMessage($Sci, $SCI_SETTABWIDTH, 4, 0)

SendMessage($Sci, $SCI_SETINDENTATIONGUIDES, True, 0)



SendMessage($Sci, $SCI_SETZOOM, IniRead(@ScriptDir & "\config.ini", "Settings", "Zoom", -1), 0)



SendMessageString($Sci, $SCI_SETKEYWORDS, 0, FileRead(@ScriptDir & "\Keywords.txt"))

SendMessageString($Sci, $SCI_SETKEYWORDS, 1, FileRead(@ScriptDir & "\Functions.txt"))

SendMessageString($Sci, $SCI_SETKEYWORDS, 2, FileRead(@ScriptDir & "\Macros.txt"))

SendMessageString($Sci, $SCI_SETKEYWORDS, 3, FileRead(@ScriptDir & "\SendKeys.txt"))

SendMessageString($Sci, $SCI_SETKEYWORDS, 4, FileRead(@ScriptDir & "\PreProcessor.txt"))

SendMessageString($Sci, $SCI_SETKEYWORDS, 5, FileRead(@ScriptDir & "\Special.txt"))

;SendMessageString($Sci, $SCI_SETKEYWORDS, 6,"simple scilexer UDF by Kip")

SendMessageString($Sci, $SCI_SETKEYWORDS, 7, FileRead(@ScriptDir & "\UDFs.txt"))



SendMessage($Sci, $SCI_SETMARGINTYPEN, $MARGIN_SCRIPT_NUMBER, $SC_MARGIN_NUMBER)

SendMessage($Sci, $SCI_SETMARGINWIDTHN, $MARGIN_SCRIPT_NUMBER, SendMessageString($Sci, $SCI_TEXTWIDTH, $STYLE_LINENUMBER, "_99999"))



SendMessage($Sci, $SCI_SETMARGINWIDTHN, $MARGIN_SCRIPT_ICON, 16)



SendMessage($Sci, $SCI_AUTOCSETSEPARATOR, Asc(@CR), 0)

SendMessage($Sci, $SCI_AUTOCSETIGNORECASE, True, 0)



SetStyle($Sci, $STYLE_DEFAULT, 0x000000, 0xFFFFFF, 10, "Courier New")

SendMessage($Sci, $SCI_STYLECLEARALL, 0, 0)



SetStyle($Sci, $STYLE_BRACEBAD, 0x009966, 0xFFFFFF, 0, "", 0, 1)



SetStyle($Sci, $SCE_AU3_DEFAULT, 0x000000, 0xFFFFFF)

SetStyle($Sci, $SCE_AU3_COMMENT, 0x339900, 0xFFFFFF)

SetStyle($Sci, $SCE_AU3_COMMENTBLOCK, 0x009966, 0xFFFFFF)

SetStyle($Sci, $SCE_AU3_NUMBER, 0xA900AC, 0xFFFFFF, 0, "", 1)



SetStyle($Sci, $SCE_AU3_FUNCTION, 0xAA0000, 0xFFFFFF, 0, "", 1, 1)



SetStyle($Sci, $SCE_AU3_KEYWORD, 0xFF0000, 0xFFFFFF, 0, "", 1)

SetStyle($Sci, $SCE_AU3_MACRO, 0xFF33FF, 0xFFFFFF, 0, "", 1)

SetStyle($Sci, $SCE_AU3_STRING, 0xCC9999, 0xFFFFFF, 0, "", 1)

SetStyle($Sci, $SCE_AU3_OPERATOR, 0x0000FF, 0xFFFFFF, 0, "", 1)

SetStyle($Sci, $SCE_AU3_VARIABLE, 0x000090, 0xFFFFFF, 0, "", 1)

SetStyle($Sci, $SCE_AU3_SENT, 0x0080FF, 0xFFFFFF, 0, "", 1)



SetStyle($Sci, $SCE_AU3_PREPROCESSOR, 0xFF00F0, 0xFFFFFF, 0, "", 0, 0)

SetStyle($Sci, $SCE_AU3_SPECIAL, 0xF00FA0, 0xFFFFFF, 0, "", 0, 1)

SetStyle($Sci, $SCE_AU3_EXPAND, 0x0000FF, 0xFFFFFF, 0, "", 1)

SetStyle($Sci, $SCE_AU3_COMOBJ, 0xFF0000, 0xFFFFFF, 0, "", 1, 1)

SetStyle($Sci, $SCE_AU3_UDF, 0xFF8000, 0xFFFFFF, 0, "", 1, 1)



SetProperty($Sci, "fold", "1")

SetProperty($Sci, "fold.compact", "1")

SetProperty($Sci, "fold.comment", "1")

SetProperty($Sci, "fold.preprocessor", "1")



SendMessage($Sci, $SCI_SETMARGINWIDTHN, $MARGIN_SCRIPT_FOLD, 0); fold margin width=0



SendMessage($Sci, $SCI_SETMARGINTYPEN, $MARGIN_SCRIPT_FOLD, $SC_MARGIN_SYMBOL)

SendMessage($Sci, $SCI_SETMARGINMASKN, $MARGIN_SCRIPT_FOLD, $SC_MASK_FOLDERS)

SendMessage($Sci, $SCI_SETMARGINWIDTHN, $MARGIN_SCRIPT_FOLD, 20)

SendMessage($Sci, $SCI_MARKERDEFINE, $SC_MARKNUM_FOLDER, $SC_MARK_ARROW)

SendMessage($Sci, $SCI_MARKERDEFINE, $SC_MARKNUM_FOLDEROPEN, $SC_MARK_ARROWDOWN)

SendMessage($Sci, $SCI_MARKERDEFINE, $SC_MARKNUM_FOLDEREND, $SC_MARK_ARROW)

SendMessage($Sci, $SCI_MARKERDEFINE, $SC_MARKNUM_FOLDERMIDTAIL, $SC_MARK_TCORNER)

SendMessage($Sci, $SCI_MARKERDEFINE, $SC_MARKNUM_FOLDEROPENMID, $SC_MARK_ARROWDOWN)

SendMessage($Sci, $SCI_MARKERDEFINE, $SC_MARKNUM_FOLDERSUB, $SC_MARK_VLINE)

SendMessage($Sci, $SCI_MARKERDEFINE, $SC_MARKNUM_FOLDERTAIL, $SC_MARK_LCORNER)

SendMessage($Sci, $SCI_SETFOLDFLAGS, 16, 0)

SendMessage($Sci, $SCI_MARKERSETFORE, $SC_MARKNUM_FOLDER, 0xFFFFFF)

SendMessage($Sci, $SCI_MARKERSETBACK, $SC_MARKNUM_FOLDERSUB, 0x808080)

SendMessage($Sci, $SCI_MARKERSETBACK, $SC_MARKNUM_FOLDEREND, 0x808080)

SendMessage($Sci, $SCI_MARKERSETFORE, $SC_MARKNUM_FOLDEREND, 0xFFFFFF)

SendMessage($Sci, $SCI_MARKERSETBACK, $SC_MARKNUM_FOLDERTAIL, 0x808080)

SendMessage($Sci, $SCI_MARKERSETBACK, $SC_MARKNUM_FOLDERMIDTAIL, 0x808080)

SendMessage($Sci, $SCI_MARKERSETBACK, $SC_MARKNUM_FOLDER, 0x808080)

SendMessage($Sci, $SCI_MARKERSETFORE, $SC_MARKNUM_FOLDEROPEN, 0xFFFFFF)

SendMessage($Sci, $SCI_MARKERSETBACK, $SC_MARKNUM_FOLDEROPEN, 0x808080)

SendMessage($Sci, $SCI_MARKERSETFORE, $SC_MARKNUM_FOLDEROPENMID, 0xFFFFFF)

SendMessage($Sci, $SCI_MARKERSETBACK, $SC_MARKNUM_FOLDEROPENMID, 0x808080)

SendMessage($Sci, $SCI_SETMARGINSENSITIVEN, $MARGIN_SCRIPT_FOLD, 1)



SendMessage($Sci, $SCI_MARKERSETBACK, 0, 0x0000FF)



GUIRegisterMsg(0x004E, "WM_NOTIFY")



If @error Then

Return 0

Else

Return 1

EndIf

EndFunc

This is the InitEditor function from the first version. It will need cleanup and a little work for creating your own lexer style, but I think everything is there.

Edited by Melba23
Fixed formatting again

Share this post


Link to post
Share on other sites

I have to Admit this is a pretty cool script. I have no use for it ATM, but i have a feeling it will come in handy. Also now i know wtf that is called when you highlight syntax and stuff!

Share this post


Link to post
Share on other sites

An example on how to create your own lexer and how to use callbacks:

For more info check: http://www.scintilla.org/ScintillaDoc.html#Notifications

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <WinApi.au3>

#include <_SciLexer.au3>

Global $Statements = StringSplit("while wend do until for in step next if then else endif func endfunc or and"," ")

$Gui = GUICreate("SciTest",800,700)
    
    $Sci = Sci_CreateEditor($Gui,200,10,590,680)
    
    
    Sci_StyleSet($Sci, $STYLE_DEFAULT, 0x000000, 0xFFFFFF, 0, 0, 0, "Courier New", 10)
    Sci_StyleClearAll($Sci); This might look weird, but it resets all styles to de default style.
    
    Sci_StyleSet($Sci, _    ; handle to control
                    1, _    ; The style number. This can be any number you like from 0 to 255, except not the numbers 32 to 39.
                    0xFF0000, _; Text color (BGR)
                    0xFFFFFF, _; Background color (BGR)
                    false, _; Bold
                    false, _; Italic
                    false, _; Underline
                    -1, _   ; Fontname
                    -1, _   ; Fontsize
                    false)  ; Hotspot
                    
                ; If any of the parameters is -1, then the value of the default style is used.
    
    
    
    GUIRegisterMsg(0x004E, "WM_NOTIFY")
    
GUISetState(@SW_SHOW)



While 1
    
    $Msg = GUIGetMsg(1)
    Switch $Msg[0]
        Case $GUI_EVENT_CLOSE
            Exit
            
    EndSwitch   
WEnd

Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)
    
    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    
    
            
            Local $tagNMHDR = DllStructCreate("hwnd;int;uint;int;int;int;int;ptr;int;int;int;int;int;int;int;int;int;int;int", $lParam)
            Local $hWndFrom = DllStructGetData($tagNMHDR, 1)
            Local $IdFrom = DllStructGetData($tagNMHDR, 2)
            Local $Event = DllStructGetData($tagNMHDR, 3)
            Local $Position = DllStructGetData($tagNMHDR, 4)
            Local $Ch = DllStructGetData($tagNMHDR, 5)
            Local $Modifiers = DllStructGetData($tagNMHDR, 6)
            Local $ModificationType = DllStructGetData($tagNMHDR, 7)
            Local $Char = DllStructGetData($tagNMHDR, 8)
            Local $Length = DllStructGetData($tagNMHDR, 9)
            Local $LinesAdded = DllStructGetData($tagNMHDR, 10)
            Local $Message = DllStructGetData($tagNMHDR, 11)
            Local $uptr_t = DllStructGetData($tagNMHDR, 12)
            Local $sptr_t = DllStructGetData($tagNMHDR, 13)
            Local $Line = DllStructGetData($tagNMHDR, 14)
            Local $FoldLevelNow = DllStructGetData($tagNMHDR, 15)
            Local $FoldLevelPrev = DllStructGetData($tagNMHDR, 16)
            Local $Margin = DllStructGetData($tagNMHDR, 17)
            Local $ListType = DllStructGetData($tagNMHDR, 18)
            Local $X = DllStructGetData($tagNMHDR, 19)
            Local $Y = DllStructGetData($tagNMHDR, 20)
            
            
            Switch $Event
                
                Case $SCN_MODIFIED
                    
                    
                    If BitAND($ModificationType, $SC_MOD_INSERTTEXT) or BitAND($ModificationType, $SC_MOD_DELETETEXT) Then
                        
                        
                        
                        Local $tChar = DllStructCreate("char["&$Length&"]",$Char)
                        Local $Text = DllStructGetData($tChar, 1)
                        
                    ; $hWndFrom is $Sci
                        
                        $iLine = Sci_GetCurrentLine($hWndFrom)
                        $iStartPos = Sci_GetLineStartPos($hWndFrom, $iLine-1)
                        $sLine = Sci_GetLine($hWndFrom, $iLine-1)
                        
                        Sci_StyleApply($hWndFrom, $STYLE_DEFAULT, $iStartPos, StringLen($sLine)); Reset this line's style
                        
                        
                        For $i = 1 to $Statements[0]
                            
                            $iOcc = 1
                            
                            While 1
                                
                            ; $Statements[$i] is the statement
                                
                                $iPos = StringInStr($sLine, $Statements[$i], 2, $iOcc)
                                
                                if $iPos = 0 Then ExitLoop
                                
                                Sci_StyleApply($hWndFrom, 1, $iStartPos+$iPos-1, StringLen($Statements[$i]))
                                
                                Sci_CalltipShow($hWndFrom, $iPos, $Statements[$i])
                                
                                $iOcc += 1
                                
                            WEnd
                            
                        Next
                        
                        
                    EndIf
                    
                Case $SCN_CHARADDED; Only when 1 char is added, so it isn't very usefull.
                    
                    Local $Text = Chr($Ch)
                    
                    
                Case $SCN_HOTSPOTCLICK
                    
                    
                    
                Case $SCN_CALLTIPCLICK
                    
                    MsgBox(0,"Example","That's right!")
                    
            EndSwitch
                
    
    Return $GUI_RUNDEFMSG
    
EndFunc
If it starts complaining about a duplicate funtion name, remove the WM_NOTIFY function from _SciLexer.au3.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...