Code: Select all
Scintilla = Val( GetEnvironmentVariable("PB_TOOL_Scintilla") )
If Scintilla
    SendMessageTimeout_(Scintilla,#SCI_GETWRAPMODE,0,0,#SMTO_ABORTIFHUNG,2000,@result)
    If result = 0
        wrapmode = 1 ; 1 = wrap at word boundary
                     ; 2 = wrap at character boundary (for asian languages without spaces)
    Else
        wrapmode = 0
    EndIf
    ; by DoubleDutch, add visual marker and indent wrapped line
    ; http://www.purebasic.fr/english/viewtopic.php?f=18&t=30385
    ; http://forums.purebasic.com/german/viewtopic.php?f=16&t=25933&start=28
    SendMessageTimeout_(Scintilla, #SCI_SETWRAPVISUALFLAGS, #SC_WRAPVISUALFLAG_START, 0, #SMTO_ABORTIFHUNG,2000,@result)
    SendMessageTimeout_(Scintilla, #SCI_SETWRAPSTARTINDENT, 16, 0, #SMTO_ABORTIFHUNG,2000,@result)                    ; <-- indent amount
    SendMessageTimeout_(Scintilla, #SCI_SETWHITESPACEFORE, #True, RGB($70, $50, $d0), #SMTO_ABORTIFHUNG,2000,@result) ; <-- colour of marker
    #SCI_SETWRAPINDENTMODE = 2472
    #SC_WRAPINDENT_FIXED  = 0 ; Wrapped sublines aligned To left of window plus amount set by SCI_SETWRAPSTARTINDENT
    #SC_WRAPINDENT_SAME   = 1 ; Wrapped sublines are aligned To first subline indent
    #SC_WRAPINDENT_INDENT = 2 ; Wrapped sublines are aligned To first subline indent plus one more level of indentation
    SendMessageTimeout_(Scintilla,#SCI_SETWRAPINDENTMODE, 2, 0, #SMTO_ABORTIFHUNG,2000,@result)                       ; <-- indent mode
    #SC_WRAPVISUALFLAGLOC_DEFAULT       = 0 ; Visual flags drawn near border
    #SC_WRAPVISUALFLAGLOC_END_BY_TEXT   = 1 ; Visual flag at End of subline drawn near text
    #SC_WRAPVISUALFLAGLOC_START_BY_TEXT = 2 ; Visual flag at beginning of subline drawn near text
    SendMessageTimeout_(Scintilla,#SCI_SETWRAPVISUALFLAGSLOCATION, 2, 0, #SMTO_ABORTIFHUNG,2000,@result)              ; <-- marker location
    SendMessageTimeout_(Scintilla,#SCI_SETWRAPMODE,wrapmode,0,#SMTO_ABORTIFHUNG,2000,@result)
EndIf



