HiEdit

HiEdit is a multitabbed, ultra fast, large file edit control consuming very little memory.  It can display non-printable characters in a readable format and can be used for any general purpose editing of text and birary files.

Summary
HiEdit is a multitabbed, ultra fast, large file edit control consuming very little memory.
Add control to the GUI.
Sets the autoindent state
Close file or all files
Convert case of selected text
Find desired text in the control
Get the control colors
Get the index of the current file
Returns count of open files.
Get the file path.
Returns the zero-based index of the uppermost visible line.
Get the text of the desired line from the control
Returns an integer specifying the number of lines in the HiEdit control.
Returns redo type and/or data for desired redo level.
Get letfmost and/or rightmost character positions of the selection
Returns selected text
Returns the length of text, in characters.
Get range of characters from the control
Returns undo type and/or data for desired undo level.
Returns line number of the line containing specific character index.
Returns the character index of the line.
Returns the lenght of the line.
Sets the line numbers bar state and looks.
Opens new tab.
Open file in new tab
Do redo operation
Reload file
Replace selection with desired text
Save file to disk
Scroll content of control until caret is visible.
Set the control colors
Set the the current file
Set notification events
Sets the control font
Set syntax highlighting.
Set the selection
Sets the tab width
Sets the image list of the tab navigation toolbar
Show popup menu containg list of open files.
Do undo operation

Add

HE_Add(hwnd,  
x,  
y,  
w,  
h,  
style = "HSCROLL VSCROLL",
dllPath = "HiEdit.dll")

Add control to the GUI.

Parameters

x,y,w,hPosition of the control
styleSpace separated list of control styles, by default both scroll bars are visible.  You can use numbers or style strings.
dllPathPath of the control dll, by default control is searched in the current folder.

Styles

HSCROLL, VSCROLL, TABBED, HILIGHT, TABBEDBTOP, TABBEDHRZSB, TABBEDBOTTOM

AutoIndent

HE_AutoIndent(hEdit,
pState)

Sets the autoindent state

Parameters

pStateTRUE or FALSE

CloseFile

HE_CloseFile(hEdit,  
idx = -1)

Close file or all files

Parameters

idxIndex of the file to close.  -2 to close ALL opened files, -1 to close current file (default)

ConvertCase

HE_ConvertCase(hEdit,  
case = "toggle")

Convert case of selected text

Parameters

casecan be “upper”, “lower”, “toggle” (default), “capitalize”.

Returns

Returns TRUE if successful, FALSE otherwise

FindText

HE_FindText(hEdit,  
sText,  
cpMin = 0,
cpMax = -1,
flags = "")

Find desired text in the control

Parameters

sTextText to be searched for.
cpMinStart searching at this character position.  By default 0.
cpMaxEnd searching at this character position.  By default -1.
flagsSpace separated combination of search flags: “WHOLEWORD” “MATCHCASE”

Returns

The zero-based character position of the next match, or -1 if there are no more matches.

GetColors

HE_GetColors(hEdit,  
color = "")

Get the control colors

Parameters

colorsSet to the color name to return its value.  Omit to return all colors in INI format

Returns

Color(s) or FAIL if unsuccessful.  See SetColors for details about available colors

GetCurrentFile

HE_GetCurrentFile(hEdit)

Get the index of the current file

GetFileCount

HE_GetFileCount(hEdit)

Returns count of open files.

GetFileName

HE_GetFileName(hEdit,  
idx = -1)

Get the file path.

Parameters

idxIndex of the file.  -1 to get file path of the current file (default)

Returns

TRUE if successful, FALSE otherwise

GetFirstVisibleLine

HE_GetFirstVisibleLine(hEdit)

Returns the zero-based index of the uppermost visible line.

GetLine

HE_GetLine(hEdit,  
idx = -1)

Get the text of the desired line from the control

Parameters

idxZero-based index of the line.  -1 means current line.

Returns

The return value is the number of characters copied.  The return value is empty string if the line number specified by the line parameter is greater than the number of lines in the HiEdit control

GetLineCount

HE_GetLineCount(hEdit)

Returns an integer specifying the number of lines in the HiEdit control.  If no text is in the HiEdit control, the return value is 1.

GetRedoData

HE_GetRedoData(hEdit,
level)

Returns redo type and/or data for desired redo level.  The same rules as in GetUndoData

GetSel

HE_GetSel( hEdit,  
ByRef start_pos = "@",
ByRef end_pos = "@")

Get letfmost and/or rightmost character positions of the selection

Parameters

start_posOptional starting position of the selection.
end_posOptional ending position of the selection.

Returns

Starting position.

GetSelText

HE_GetSelText(hEdit)

Returns selected text

GetTextLength

HE_GetTextLength(hEdit)

Returns the length of text, in characters.

GetTextRange

HE_GetTextRange(hEdit,  
min = 0,
max = -1)

Get range of characters from the control

Parameters

minIndex of leftmost characther of the range.  By default 0.
maxIndex of rightmost characther of the range.  -1 means last character in the control.

GetUndoData

HE_GetUndoData(hEdit,
level)

Returns undo type and/or data for desired undo level.

Parameters

levelUndo level

Types

UNKNOWNThe type of undo action is unknown.
TYPINGTyping operation.
DELETEDelete operation.
DRAGDROPDrag-and-drop operation.
CUTCut operation.
PASTEPaste operation.
SETTEXTWM_SETTEXT message was used to set the control text
REPLACESELEM_REPLACESEL message was used to insert text
CLEARDelete selected text
BACKSPACEBack Space Operation
INDENTIncrease Indent
OUTDENTDecrease Indent
CODEPAGEConvert codepage
CASEConvert case

LineFromChar

HE_LineFromChar(hEdit,
ich)

Returns line number of the line containing specific character index.

Parameters

ichThe character index of the character contained in the line whose number is to be retrieved.  If the ich parameter is -1, either the line number of the current line (the line containing the caret) is retrieved or, if there is a selection, the line number of the line containing the beginning of the selection is retrieved.

Returns

The zero-based line number of the line containing the character index specified by ich.

LineIndex

HE_LineIndex(hedit,  
idx = -1)

Returns the character index of the line.

Parameters

idxLine number for which to retreive character index.  -1 (default) means current line.

Returns

The character index of the line specified in the idx parameter, or -1 if the specified line number is greater than the number of lines.

LineLength

HE_LineLength(hEdit,  
idx = -1)

Returns the lenght of the line.

Parameters

idxLine number for which to retreive line length.  -1 (default) means current line.

Returns

the length, in characters, of the line

LineNumbersBar

HE_LineNumbersBar(hEdit,  
state = "show",
linw = 40,
selw = 10)

Sets the line numbers bar state and looks.

Parameters

stateCan be “show”, “hide”, “automaxsize”, “autosize”
linwLine numbers width (by default 40)
selwSelection bar width (by default 10)

NewFile

HE_NewFile(hEdit)

Opens new tab.

OpenFile

HE_OpenFile(hEdit,  
pFileName,  
flag = )

Open file in new tab

Parameters

pFileNamePath of the file to be opened
flagSet to TRUE to create new file if pFileName doesn’t exist.  If set to FALSE, function fails if the file doesn’t exist (default).  Returns: TRUE if successful/FALSE otherwise

Redo

HE_Redo(hEdit)

Do redo operation

Returns

TRUE if the Redo operation succeeds, FALSE otherwise

ReloadFile

HE_ReloadFile(hEdit,  
idx = -1)

Reload file

Parameters

idxIndex of the file to reload.  -1 to reload current file (default)

ReplaceSel

HE_ReplaceSel(hEdit,  
text = "")

Replace selection with desired text

Parameters

textText to replace selection with.

SaveFile

HE_SaveFile(hEdit,  
pFileName,  
idx = -1)

Save file to disk

Parameters

pFileNameFile name.
idxIndex of the file to save.  -1 to save current file (default)

Returns

TRUE if successful, FALSE otherwise

ScrollCaret

HE_ScrollCaret(hEdit)

Scroll content of control until caret is visible.

SetColors

HE_SetColors(hEdit,  
colors,  
fRedraw = true)

Set the control colors

Parameters

colorsAny subset of available color options in INI format (array of NAME=COLOR lines).  Skiped colors will not be changed.
fRdrawSet to TRUE to redraw control

Colors

TextNormal Text Color
BackEditor Back Color
SelTextSelected Text Color
ActSelBackActive Selection Back Color
InSelBackInactive Selection Back Color
LineNumberLine Numbers Color
SelBarBackSelection Bar Back Color
NonPrintableBack0 - 31 special non printable chars
NumberNumber Color

SetCurrentFile

HE_SetCurrentFile(hEdit,
idx)

Set the the current file

Parameters

idxNew file index to set as current.

SetEvents

HE_SetEvents(hEdit,  
func,  
e = "selchange")

Set notification events

Parameters

funcSubroutine that will be called on events.
eWhite space separated list of events to monitor (by default “selchange”).

Globals

HE_HWNDControl handle
HE_EVENTSpecifies event that occurred.  Event must be registered to be able to monitor them.  Events “tabmclick” and “filechange” are registered automatically.
HE_INFOString specifying event info.  You can access individual info elements as INFO_Start
HE_RESULTPlaceholder for notification result, if its needed.

Events & Infos

SelChangeS<start> E<end> L<line> [t|*] (t if tab changed, * if text changed)
Keykey pressed
Mousex<xcoord> y<ycoord> v<virtual_key>
ScrollSet HE_Result to 1 to prevent standard menu from showing ContextMenu -
FileChange<file_index> (file is changed outside of the application)
Tabmclick(middle button click over tab)

Returns

”OK” if succesiful, error string otherwise

SetFont

HE_SetFont(hEdit,  
pFont = "")

Sets the control font

Parameters

pFontAHK font definition: “Style, FontName”

SetKeywordFile

HE_SetKeywordFile(pFile)

Set syntax highlighting.

Parameters

pFilePath to .hes file

Keyword File

[ext1,ext2,...,extN]Each keyword definiton block starts with list of extensions in angular brackets.
0xSSRRGGBB=word1 word2 ... wordNColor keywords on this line with BBGGRR color.  SS is 00 by default.
delimitersHigh byte in the color (0x01xxxxxx) refers to delimiters.  Delimiters are added from ALL sections for a file extension.
string charsA & at the end of keyword specifies a string char.  For ex.  “& means that everything enclosed in two “ is a string
comments keywordA + at the end of keyword specifies a comment char/keyword.  For ex.  //+ means that everything that follows is a comment.  Multiline comments are not supported yet.  A “-” at the end of keyword specifies that ALL text up to the end of line will be painted using the color specified UNLESS a comment indicator is found.
;Line comment

SetSel

HE_SetSel(hEdit,  
nStart = 0,
nEnd = -1)

Set the selection

Parameters

nStartStarting character position of the selection.  Set -1 to remov current selection.
nEndEnding character position of the selection.  Set -1 to use position of the last character in the control.

SetTabWidth

HE_SetTabWidth(hEdit,  
pWidth,  
pRedraw = true)

Sets the tab width

Parameters

pWidthTab width in characters
pRedrawSet to true to redraw control (default)

SetTabsImageList

HE_SetTabsImageList(hEdit,  
pImg = "")

Sets the image list of the tab navigation toolbar

Parameters

pImg.BMP file with image list.  Omit this parameter to use default image list.

ShowFileList

HE_ShowFileList(hEdit,  
x = 0,
y = 0)

Show popup menu containg list of open files.

Parameters

x, yPosition of popup window

Undo

HE_Undo(hEdit)

Do undo operation

Returns

TRUE if the Undo operation succeeds, FALSE otherwise

Example

Gui, +LastFound
hwnd := WinExist()

hEdit := HE_Add(hwnd,0,0,600,500)
Gui, SHow, w600 h500

#include HiEdit.ahk

About

HE_Add(hwnd,  
x,  
y,  
w,  
h,  
style = "HSCROLL VSCROLL",
dllPath = "HiEdit.dll")
Add control to the GUI.
HE_AutoIndent(hEdit,
pState)
Sets the autoindent state
HE_CloseFile(hEdit,  
idx = -1)
Close file or all files
HE_ConvertCase(hEdit,  
case = "toggle")
Convert case of selected text
HE_FindText(hEdit,  
sText,  
cpMin = 0,
cpMax = -1,
flags = "")
Find desired text in the control
HE_GetColors(hEdit,  
color = "")
Get the control colors
HE_GetCurrentFile(hEdit)
Get the index of the current file
HE_GetFileCount(hEdit)
Returns count of open files.
HE_GetFileName(hEdit,  
idx = -1)
Get the file path.
HE_GetFirstVisibleLine(hEdit)
Returns the zero-based index of the uppermost visible line.
HE_GetLine(hEdit,  
idx = -1)
Get the text of the desired line from the control
HE_GetLineCount(hEdit)
Returns an integer specifying the number of lines in the HiEdit control.
HE_GetRedoData(hEdit,
level)
Returns redo type and/or data for desired redo level.
HE_GetSel( hEdit,  
ByRef start_pos = "@",
ByRef end_pos = "@")
Get letfmost and/or rightmost character positions of the selection
HE_GetSelText(hEdit)
Returns selected text
HE_GetTextLength(hEdit)
Returns the length of text, in characters.
HE_GetTextRange(hEdit,  
min = 0,
max = -1)
Get range of characters from the control
HE_GetUndoData(hEdit,
level)
Returns undo type and/or data for desired undo level.
HE_LineFromChar(hEdit,
ich)
Returns line number of the line containing specific character index.
HE_LineIndex(hedit,  
idx = -1)
Returns the character index of the line.
HE_LineLength(hEdit,  
idx = -1)
Returns the lenght of the line.
HE_LineNumbersBar(hEdit,  
state = "show",
linw = 40,
selw = 10)
Sets the line numbers bar state and looks.
HE_NewFile(hEdit)
Opens new tab.
HE_OpenFile(hEdit,  
pFileName,  
flag = )
Open file in new tab
HE_Redo(hEdit)
Do redo operation
HE_ReloadFile(hEdit,  
idx = -1)
Reload file
HE_ReplaceSel(hEdit,  
text = "")
Replace selection with desired text
HE_SaveFile(hEdit,  
pFileName,  
idx = -1)
Save file to disk
HE_ScrollCaret(hEdit)
Scroll content of control until caret is visible.
HE_SetColors(hEdit,  
colors,  
fRedraw = true)
Set the control colors
HE_SetCurrentFile(hEdit,
idx)
Set the the current file
HE_SetEvents(hEdit,  
func,  
e = "selchange")
Set notification events
HE_SetFont(hEdit,  
pFont = "")
Sets the control font
HE_SetKeywordFile(pFile)
Set syntax highlighting.
HE_SetSel(hEdit,  
nStart = 0,
nEnd = -1)
Set the selection
HE_SetTabWidth(hEdit,  
pWidth,  
pRedraw = true)
Sets the tab width
HE_SetTabsImageList(hEdit,  
pImg = "")
Sets the image list of the tab navigation toolbar
HE_ShowFileList(hEdit,  
x = 0,
y = 0)
Show popup menu containg list of open files.
HE_Undo(hEdit)
Do undo operation