1. General infos

1.1. Registry

vbeTwister saves all information in the registry
[HKEY_CURRENT_USER\Software\MMK Consulting\vbeTwister4vba]
[Commands]: subkeys BuildIn/Layouts/UserDefined
[Projects]: subkeys Access/Excel/Other/Outlook/PowerPoint/Word
[Settings]: subkeys <Projectname>
[Snippets]: no subkeys
The configuration dialog is a convenient way to manage these values
The values can be exported into an INI file and imported into the registry
The value "Path" needs to point to the directory containing the dll

1.2. Multilanguage support

All commands, dialoqs and messages are stored in an INI file and can be easily customized
The INI files are located in the installation\Languages directory and are named like en.ini, de.ini, ..
Two sections (caption and message) for the commands and for each dialog
The language files can be downloaded from www.vbetwister.com
Email us your language file and share it with the community

1.3. Workspace

Collection of tabs (designers, browser, codepanes (scrollbars, cursor, selection)) and special windows
Stored in the Windows registry by the name of the project
Restored on open (if option activated)
Unsaved MS Access forms/reports codepanes are reopened if the designers is closed without saving
[SHIFT] + [F1] activates the combobox in the tabs bar

1.4. Snapshots

A snapshot saves all information about the current workspace
Are created after specifiy commands (see command list below) and keystrokes

[CTRL] + [ESCAPE]: RestoreSnapshot
[CTRL] + [ESCAPE] long: ManageSnapshots
[CTRL] + [.]: RestoreSnapshot
[CTRL] + [.] long: RestoreSnapshotEx
[SHIFT][CTRL][ALT] + [ESCAPE]: UndoRestoreSnapshot
[None]: ManageSnapshots

2.0. Bars

2.1. Commands bar

Commands can be pinned on this commands bar.
The caption of the command is the caption of the button.
If <path>\Images\Commands\<method>.bmp exists the image is displayed.
If the separator attribute is set a line is drawn left of the button.
Menus (user defined commands with children) can only be display as text.

2.2. Tabs bar

Tabs are ordered in a predefined order based on the types (the VBE shuffles)
Unsaved tabs display an asterisk *
In a multiproject workspaces tabs display the postfix (projectname)
Tabs that host a designer display the postfix (GUI)
Tabs can be accessed by pressing [CTRL]/[ALT] + [1-9]
Tabs can be closed by pressing [CTRL]/[ALT] + [1-9] long
Tabs can be closed by clicking the cross button
A combobox can be display left of the tabs
Commands can be pinned right of the tabs (see 2.1. commmands bar)

2.3. Navigation bar

[ESCAPE]: Close window
[SHIFT] + [ESCAPE]: Dock/undock window
[F6]: Switch between codepane and navigation bar
[TAB]: Move focus between filter textbox and codepane listview
Automatic or manual refresh mode
The filter text is applied per tab
A click of the arrow icon on the right a popup with the codepane item icons appears
An exclamation mark next to the arrow indicates that not all codepane items are displayed
Codepane items can be moved via drag and drop (arrow symbol animation)
Right mouse click or [SHIFT]+[F10] open a context menu
[TAB]: switch focus between filter textfield and listview
[RETURN]/DblClick: move focus to the codepane
[F6]: switch focus between codepane and navigation listview
[SHIFT] + Click on icon: all checkboxes of the group are checked
The parts can be sorted an deactivated in the configuration dialog
The textcolor and style can be configured in the configuration dialog

2.4. Map bar

[ESCAPE]: Close window
[SHIFT] + [ESCAPE]: Dock/undock window
[F6]: Switch between codepane and navigation bar
[UP]/[DOWN]/[HOME]/[END]: Scrolling
Automatic or manual refresh mode
Click on the map moves the screen
Dragging the screen frame: Scrolling
The colors can be configured in the configuration dialog

3. Special windows

3.1. Browser window

[ESCAPE]: The focus is set on searchfield >> reset searchfield >> reset library selection >> close window
[CTRL] + [LEFT]/[RIGHT]: The navgation buttons are triggered

3.2. Immediate window

[CTRL] + [DELETE]: Clear window

3.3. Watches window

[INSERT]: New watch
[DELETE]/[RETURN]: Focus keeps staying in the window
[CTRL] + [DELETE]: Clear window
[CTRL] + [RETURN]: Edit 1st column
[CTRL][SHIFT] + [RETURN]: Edit 2nd column
[CTRL][SHIFT][ALT] + [RETURN]: Show information in a popup
[CTRL] + [LEFT]/[RIGHT]: Resize 1st column (docked window only)
[CTRL][SHIFT] + [LEFT]/[RIGHT]: Resize 2nd column (docked window only)
[CTRL][SHIFT][ALT] + [LEFT]/[RIGHT]: Resize 3rd column (docked window only)

3.4. Locals window

[RETURN]: Focus keeps staying in the window
[CTRL][SHIFT] + [RETURN]: Edit 2nd column
[CTRL][SHIFT][ALT] + [RETURN]: Show information in a popup
[CTRL] + [LEFT]/[RIGHT]: Resize 1st column (docked window only)
[CTRL][SHIFT] + [LEFT]/[RIGHT]: Resize 2nd column (docked window only)

3.5. Immediate/Watch/Locals window

[ESCAPE]: Close window
[SHIFT] + [ESCAPE]: Dock/undock window
[CTRL] + [UP]/[DOWN]: Resize window
[CTRL][SHIFT] + [UP]/[DOWN]: Scroll window
[CTRL] + [LEFT]/[RIGHT]: Resize window (floating window only)
[CTRL][ALT] + [LEFT]/[RIGHT]/[UP]/[DOWN]: Move window (floating window only)

3.6. Search window

[ESCAPE]: Close window
[SHIFT] + [ESCAPE]: Dock/undock window
the last search terms are stored in the combobox
the search is performed in real time (see configuration)
all visible matches are highlighted (see configuration)
some options are hidden if the window is docked
[CTRL] + [RETURN]: opens a search results window ("+" is displayed in the search button)

4. Syntax

VB/VBA source code ist stored in codemodules and displayed in codepanes.

4.1. Comments

In VB/VBA a comment starts with a single quotation mark, many position inside the line are allowed
Lines with a single quotation mark right at the beginning of the line are treated as special "commented lines"
All other comments are ignored by vbeTwister ([TAB] and commands like UncommentLines)
For better visualisation vbeTwister inserts into all lines of a multiline statement a single quotation mark

4.2 Blocks

Type/End Type
Enum/End Enum
With/End With
For Each/Next
For ... To/Next
Do While/Loop
Do Until/Loop
Do/Loop While
Do/Loop Until
If/End If
Select Case/End Select

4.3. Placeholder

{xxx} or "{xxx}" or ({xxx}) or , {xxx} or , "{xxx}"
({xxx}|{xxx}|{xxx}): Option group, select with [TAB], activate with [SPACE]
{$xxx$}: Replace other occurences of the current procedure
{@xxx@}: Popup for input and replace other occurences or the current procedure
{°xxx°}: Object variable type (e.g. after "set object = new")
{^xxx^}: Show context menu (e.g. variable types)
{^^xxx^^}: Show locals context menu (local variables)
{^^^xxx^^^}: Show access context menu (forms, reports, ...)

4.4. Variables

Variables are interpreted in realtime based on the context and need to be activated
They get activated via [SPACE] ( + [CTRL] if cursor is inside double quotes)
They get activated as part of a snippet
They get activated via special commands like UpdateDebugInfo*

$current_date
$current_time
$user_name
$project_name
$beacon_pattern
$section_pattern
$module_name
$module_type
$module_line
$module_line_count
$module_variable_count
$module_type_count
$module_enum_count
$module_procedure_count
$module_header
$procedure_name
$procedure_category
$procedure_type
$procedure_scope
$procedure_exit
$procedure_return_type
$procedure_argument_count
$procedure_variable_count
$procedure_start_line
$procedure_declaration_line
$procedure_body_line
$procedure_finish_line
$procedure_end_line
$procedure_total_line_count
$procedure_header_line_count
$procedure_body_line_count
$procedure_declaration_line_count
$procedure_core_line_count
$procedure_footer_line_count
$procedure_header
$procedure_error_header
$procedure_error_footer
$block_name
$block_category
$block_type
$block_scope
$block_exit
$block_start_line
$block_previous_line
$block_next_line
$block_end_line

e.g.: $block_exit ->Exit For/Exit Do
e.g.: $procedure_category ->Sub/Functiom/Property
e.g.: $procedure_type ->Sub/Function/Get/Let/Set
e.g.: $module_type -> Form/Report/Workbook/Worksheet/Document/Slide/Session/UserForm/VBForm/VBMDIForm
                                    /DocObject/Designer/UserControl/PropPage/ResFile/ClassModule/StdModule/Unknown/Browser

4.5. Bookmarks

This feature enables a quick navigation through the source code
They are temporarly as they are not part of the source code

AddBookmark: Create a new bookmark. A circle is display at the left handside
RemoveBookmark: Delete an existing bookmark: A crossed out circle is display at the left handside
GotoBookmark: Jump to the last bookmark
GotoBookmarkEx: Jump to the first bookmark
ManageBookmarks: Opens a dialog with a list of all bookmarks
RemoveBookmarks: Removes all bookmarks at once

4.6. Meta Comment Tags

These tags enable to add some meta information to your source code
They can me searched and viewed by the command MetaCommentTags
They are part of the source code and are therefore saved persistantly

NOTE: a comment about something (low priority)
TODO: for useful features, optimizations or refactoring (medium priority)
FIXME: for things that are definitely broken (high priority)

4.7. Section Comment Tags

These tags are used for organizing the source code
They are displayed in the NavigationBar and in commands like GotoLine and GotoLineEx
The pattern is a regular expression and can be customized in the configuration dialog
They are part of the source code and are therefore saved persistantly

InsertSectionCommentTag: Insert a new line with the section pattern
HighlightSection: Highlights the content of a section
MoveCursorSectionUp: Move the cursor to the previous section
MoveCursorSectionUpEx Move the cursor to the fist section
MoveCursorSectionDown Move the cursor to the next section
MoveCursorSectionDownEx Move the cursor to the last section

4.8. Beacon Comment Tags

These tags is used for for navigation through the source code
They are displayed in the NavigationBar and in commands like GotoLine and GotoLineEx
The pattern is a regular expression and can be customized in the configuration dialog
They are part of the source code and are therefore saved persistantly

InsertBeaconCommentTag: Insert a new line with the beacon pattern
HighlightBeacon: Highlights the content of a beacon
MoveCursorBeaconUp: Move the cursor to the previous beacon
MoveCursorBeaconUpEx Move the cursor to the fist beacon
MoveCursorBeaconDown Move the cursor to the next beacon
MoveCursorBeaconDownEx Move the cursor to the last beacon

5. Special keys

The following keystrokes got optimized:

5.1. [SPACE]

Triggers snippets check
Triggers variables check
Triggers placeholders check

5.2. [TAB]

In case a word is selected the next / [SHIFT] previous word gets selected
Select next / [SHIFT] previous option in an optiongroup of placeholders
Smart indention if the cursor is placed before the first character
Smart indention if the cursor is placed at the end of line
Smart indention and formatting of a "type" block in case of multiline-selection

5.3. [RETURN]

Smart indention of the new line of code depending on the context
If/ElseIf/Select Case/Case: A new line is inserted even if the cursor is not at the end of the line
After an underscore without preceding space: A space is inserted before the underscore

5.4. [DELETE]

At the end of line: The next line is trimmed left
Left of comment: The line is trimmed left
Inside a comment: up to <tabwidth> spaces are deleted
Left of a parentheses: corresponding parentheses is deleted

5.5. [BACK]

Left of comment: The line is trimmed left
Inside comment: up to <tabwidth> spaces are deleted

5.6. [HOME]

The cursor is always moved to the beginning the line, no matter if a text is selected or not


6. Commands

The more than 300 buildin commands can be configured extensively
User defined commands can be added and deleted. With children they serve as menus

6.1. The following commands come with a preconfigured long keystroke

BlockDetailsEx: The current bock and all nested blocks are shown in the list
CloseTabsEx: All tabs instead of only inactive tabs are closed
CopyLinesEx: All lines of the multiline statement are copied
DeclareVariableEx: A module instead of a procedure variable is declared
ExecuteCommandEx: Execute last command
GotoBookmarkEx:
GotoDefinitionEx: The object is selected instead of the codepane
GotoLineEx: Like GotoLine plus variables, types, structs and beacons
HighlightBlockEx: HighlightBlock + nested blocks
HighlightProcedureEx: HighlightProcedure + nested blocks
HighlightScreenEx: HighlightScreen + space highlighting
InsertParenthesesEx: the insertion point of the parentheses can be choosen in a popup
InsertParenthesesLineEx: the parentheses is inserted at the last line of a multiline statement
InsertParenthesesWordEx: the parentheses is inserted after a broader match
InsertProcedureEx: A property (get/let/set) procedure is declared
InsertSingleQuoteWordEx: the single quote is inserted after a broader match
InsertDoubleQuoteWordEx: the double quote is inserted after a broader match
IntroduceVariableEx: An object instead of a non object gets introduced
LastMessageEx: A dialog with the last error messages appears
ToggleSpaceHighlightingEx: Toggle highlight invalid spaces
MoveCursor*UpEx: The cursor is moved to the first beacon/block/event/meta/procedure/section/variable line
MoveCursor*DownEx: The cursor is moved to the last beacon/block/event/meta/procedure/section/variable line
MoveCursorWordLeftEx/RightEx: wider cursor jump
MoveEvent/ProcedureUpEx: The event/procedure ist moved to the first position
MoveEvent/ProcedureDownEx: Teh event/procedure is moved to the last position
PasteTextEx: A dialog with the recent clipboard items appears
ProcedureDetailsEx: The procedure and the nested blocks are displayed in the list
RestoreSnapshotEx: The last keystroke snapshots gets restored
RestoreTabsEx: A dialog with all closed tabs appears
SaveEx: All Access form/report designers with an opened and saved codepane tab are closed
Show*WindowEx: The window get's hidden
ToggleSpaceHighlightingEx: Switch InvalidSpaceHighlightning on/off
UncommentLinesEx: Comments with leading spaces are also uncommented
*BlockEx: The first/last line of the block are effected if the cursor is at the first/last line
*BlockEx: The ElseIf/Else or Case/Case Else part of the block is effected
Comment*Ex: Comments with leading spaces are also part of the range
*LinesEx: a lines of the current multiline statement are effected
*ProcedureEx: The lines above the declaration are also effected
AddWatchEx/*WordEx/SearchText*Ex/ReplaceText*Ex: A dialog with text variations appears

6.2. Some information about very tricky commands

AccessOpenDatabaseBackend: Opens the linked Access database
AccessOpenDatabaseShadow: Opens a new Access database file with tables linked to the current database
AccessObjectsList: List of tables/queries/forms/reports
AddTabs: Already opened objects are marked with an exclamation mark
AddWatch: The object of a With block is automatically added to the dot
CopyWord/ReplaceWord: No selection required
DeclareVariable: Compiler error selects text >> call command >> define the type >> restore snapshot
GotoDefinition: works also with GoTo/Label and in commented lines
InsertBlockConditionLine/InsertBlockDefaultLine: Only inside If & Select blocks
IntroduceVariable: Select text >> call command >> define the type >> restore snapshot
MetaComments: The predefined pattern is ' *(FIXME|TODO|NOTE) * and can be adjusted in the language file:
MoveCursorBlockUp/Down: Works also with matching parentheses
OptimizeLine: "Private" -> "Public" (Declare|Const|Enum|Type), API declaration
RestoreKeypressWorkspace: jump to the last position where a key was pressed
RestoreWorkspaceEx: Opens a popup with all saved snapshots
SelectWord: The whole word is selected if a part of the word is already selected
*Comment: All consecutive commented lines are affected

6.3. Dialogs

Some commands (e.g. AddTab) and features (InspectLocal, InspectWatch) are modal dialogs
Some command (e.g. CodeStatistics) are modalless dialogs, the cursor can be moved into the source code
Some commands (e.g. LocalVariables) are modal context menus, they can be closed with [ESCAPE] or [ENTER] or [SPACE]
Some host applications (e.g. MS Project) only allow modal dialogs

6.4. List of build-in commands

AccessGotoEventOfActiveControl
AccessObjectsList (C)
AccessOpenDatabaseBackend
AccessOpenDatabaseShadow
AddBookmark
AddTabs (M)
AddWatch
AddWatchEx (M)
BlockDetails (C)
BlockDetailsEx (C)
CheckSnippet
CloseTabs
CloseTabsEx
CodeStatistics (L)
CommentBlock
CommentBlockEx
CommentLines
CommentModule
CommentProcedure
CommentProcedureEx
ConfigureTwister (M)
CopyBlock
CopyBlockEx
CopyComment
CopyLines
CopyLinesEx
CopyModule
CopyProcedure
CopyProcedureEx
CopyWord
CopyWordEx (M)
CreateEnumBlock
CreateWithBlock
CursorVariablesList (C)
CutBlock
CutBlockEx
CutComment
CutLines
CutLinesEx
CutModule
CutProcedure
CutProcedureEx
CutWord
CutWordEx (M)
DeclareVariable (S)
DeclareVariableEx (S)
DeleteBlock
DeleteBlockEx
DeleteComment
DeleteLineNumbers
DeleteLines
DeleteLinesEx
DeleteLinesIndentions
DeleteModule
DeleteProcedure
DeleteProcedureEx
DeleteWord
DeleteWordEx (M)
DuplicateBlock
DuplicateBlockEx
DuplicateLines
DuplicateLinesEx
DuplicateProcedure
DuplicateProcedureEx
ExecuteCommand (M)
ExecuteCommandEx
ExecuteCurrentProcedure
FlipImmediateWindow
FlipLocalsWindow
FlipMapWindow
FlipNavigationWindow
FlipSearchTextWindow
FlipWatchesWindow
GotoBookmark (S)(L)
GotoBookmarkEx (S)(L)
GotoDefinition (S)
GotoDefinitionEx (S)
GotoLine (M)
GotoLineEx (M)
HighlightBeacon
HighlightBlock
HighlightBlockEx
HighlightCursor
HighlightParentheses
HighlightProcedure
HighlightProcedureEx
HighlightScreen
HighlightScreenEx
HighlightSection
HighlightSelection
HighlightVariable
IndentBlock
IndentBlockEx
IndentComment
IndentLinesByOneTab
IndentModule
IndentProcedure
IndentProcedureEx
IndentProject
InsertBeacon
InsertBlockConditionLine
InsertBlockDefaultLine
InsertBlockEndLine
InsertBlockExitPhrase
InsertBracketWord
InsertBracketWordEx
InsertDoBlock
InsertDoubleQuoteWord
InsertDoubleQuoteWordEx
InsertEnumBlock
InsertEventHandler (M)
InsertForBlock
InsertForEachBlock
InsertIfBlock
InsertLine
InsertLineNumbers
InsertLoopBlock
InsertMeta
InsertModuleHeader
InsertParenthesesEx (C)
InsertParenthesesLine
InsertParenthesesLineEx
InsertParenthesesWord
InsertParenthesesWordEx
InsertProcedure (M)
InsertProcedureErrorFooter
InsertProcedureErrorHandling
InsertProcedureErrorHeader
InsertProcedureEx (M)
InsertProcedureExitPhrase
InsertProcedureHeader
InsertSection
InsertSelectBlock
InsertSingleQuoteWord
InsertSingleQuoteWordEx
InsertTypeBlock
InsertWhileBlock
InsertWithBlock
InspectLocal
InspectWatch
IntroduceVariable (S)
IntroduceVariableEx (S)
InvalidSpaces (S)(L)
LastMessage
LastMessageEx (L)
LocalVariablesList (C)
LowerCaseWord
LowerCaseWordEx (M)
ManageBookmarks (S)(M)
ManageLayouts (M)
ManageMetas (L)
ManageSnapshots (M)
ManageWorkspace (M)
MoveCursorBeaconDown (S)
MoveCursorBeaconDownEx (S)
MoveCursorBeaconUp (S)
MoveCursorBeaconUpEx (S)
MoveCursorBlockDown
MoveCursorBlockDownEx
MoveCursorBlockUp
MoveCursorBlockUpEx
MoveCursorEventDown
MoveCursorEventDownEx
MoveCursorEventUp
MoveCursorEventUpEx
MoveCursorLeft
MoveCursorMetaDown
MoveCursorMetaDownEx
MoveCursorMetaUp
MoveCursorMetaUpEx
MoveCursorModuleEnd (S)
MoveCursorModuleStart (S)
MoveCursorProcedureDown
MoveCursorProcedureDownEx
MoveCursorProcedureUp
MoveCursorProcedureUpEx
MoveCursorRight
MoveCursorSectionDown (S)
MoveCursorSectionDownEx (S)
MoveCursorSectionUp (S)
MoveCursorSectionUpEx (S)
MoveCursorVariableDown
MoveCursorVariableDownEx
MoveCursorVariableUp
MoveCursorVariableUpEx
MoveCursorWordLeft
MoveCursorWordLeftEx
MoveCursorWordRight
MoveCursorWordRightEx
MoveDebuggerCallStackCurrent
MoveDebuggerCallStackDown
MoveDebuggerCallStackUp
MoveLinesDown
MoveLinesUp
MoveProcedureDown
MoveProcedureDownEx
MoveProcedureUp
MoveProcedureUpEx
OpenModuleFromActiveObject
OpenObjectFromActiveModule
OptimizeDeclaration
OrderLines (M)
PasteText
PasteTextEx (M)
PauseTwister
ProcedureCalls (L)(*)
ProcedureDetails (C)
ProcedureDetailsEx (C)
Redo
RemoveBookmark
RemoveBookmarks (S)
RemoveEnumBlock
RemoveSnapshots
RemoveWithBlock
ReplaceBlock
ReplaceBlockEx
ReplaceComment
ReplaceLines
ReplaceLinesEx
ReplaceModule
ReplaceProcedure
ReplaceProcedureEx
ReplaceTextBlock (S)
ReplaceTextBlockEx (S)(M)
ReplaceTextModule (S)
ReplaceTextModuleEx (S)(M)
ReplaceTextProcedure (S)
ReplaceTextProcedureEx (S)(M)
ReplaceTextProject (S)
ReplaceTextProjectEx (S)(M)
ReplaceWord
ReplaceWordEx (M)
RestoreSnapshot
RestoreSnapshotEx
RestoreTabs
RestoreTabsEx (M)
Save
SaveEx
ScrollLineDown
ScrollLineUp
ScrollLinesDown
ScrollLinesUp
SearchTextBlock (S)
SearchTextBlockEx (S)(M)
SearchTextBlockNew (S)
SearchTextBlockNewEx (S)(M)
SearchTextModule (S)
SearchTextModuleEx (S)(M)
SearchTextModuleNew (S)
SearchTextModuleNewEx (S)(M)
SearchTextProcedure (S)
SearchTextProcedureEx (S)(M)
SearchTextProcedureNew (S)
SearchTextProcedureNewEx (S)(M)
SearchTextProject (S)
SearchTextProjectEx (S)(M)
SearchTextProjectNew (S)
SearchTextProjectNewEx (S)(M)
SearchTextResults (S)(L)(*)
SearchTextWorkspaceNew (S)
SearchTextWorkspaceNewEx (S)(M)
SelectBlock (S)
SelectBlockEx (S)
SelectComment (S)
SelectLines (S)
SelectLinesEx (S)
SelectModule (S)
SelectProcedure (S)
SelectProcedureEx (S)
SelectWord (S)
SelectWordEx (S)(M)
SetFocusOnObjectFromActiveModule
ShowImmediateWindow
ShowImmediateWindowEx
ShowLocalsWindow
ShowLocalsWindowEx
ShowMapWindow
ShowMapWindowEx
ShowNavigationWindow
ShowNavigationWindowEx
ShowProjectWindow
ShowProjectWindowEx
ShowPropertyWindow
ShowPropertyWindowEx
ShowWatchesWindow
ShowWatchesWindowEx
StopDebugger
SwitchProdecureScope
SwitchProdecureType
TakeSnapshot
ToggleSpaceHighlighting
ToggleSpaceHighlightingEx
UncommentBlock
UncommentBlockEx
UncommentComment
UncommentLines
UncommentLinesEx
UncommentModule
UncommentProcedure
UncommentProcedureEx
Undo
UndoRestoreSnapshot
UnusedProcedures (L)(*)
UnusedVariables (L)(*)
UpdateDebugInfoBlock
UpdateDebugInfoBlockEx
UpdateDebugInfoLines
UpdateDebugInfoModule
UpdateDebugInfoProcedure
UpdateDebugInfoProcedureEx
UpdateDebugInfoProject
UpperCaseWord
UpperCaseWordEx (M)
VariableDetails (C)
ZoomIn
ZoomOut

(S): a snapshot is created before execution, press [SHIFT] + [ESCAPE] or use the command "RestoreWorkspace"
(M): A modal popup opens, the cursor can't be moved to a different window
(L): A modalless popup opens, the cursor can be moved to a different window
(C): A context menu opens, the cursor can't be moved to a different window
(*): The popup opens with the cached list of the previous call

6.5. List of user defined commands

Every user can define his own commands in the configuration dialog on the commands tab
They enable the users to execute easily their favorite procedures via a customizable shortcut/button/combobox/menu
The procedure has to be declare public inside a standard module (no class, form, report ...)
In the bars tab they can be selected in the combobox and so other commands definied as their children

6.6. Menus with user defined commands

User defined commands menus are the foundation of CommandsBar or TabsBar menus.


7. Configuration

7.1. Settings1 page

Maximize MS Office application window: All MS Office versions (default: true)
Maximize MS Access database window: MS Access 2000 - 2003 (default: true)
Maximize VBE window: Maximize window on startup (default: true)
Maximize VBE child windows: designers and codepanes and the browser (default: true)
Short MS Access object names: Strip the prefix "Form_" and "Report_" (default: true)
Optimize references popup: Resizing of the path textfield etc. (default: true)
Save and restore workspace: details see section workspace (default: true)
Save and restore clipboard: Some applications like MS Access empty the clipboard on startup and on close (default: true)
Optimize IntelliSense: Restore deleted word (default: true)

Commands (keystroke): activate/deactivate all commands (default: false)
Snippets (keystroke): activate/deactivate all snippets (default: false)
Optimize [TAB],[RETURN],[DELETE],[BACK],[HOME]: activate/deactive (default: true)
Tables and queries check after [.] and [!]: display popup with the names of the fields (default: true) Real time search: perform search interactive during entering (default: true)
Animate copy operations: Symbols are shown at the left handside (default: true)
Display sort icon in the column header: Show icon in the listviews of the dialog (default: true)
Activate "Header" in procedure dialog: InsertProcedure and InsertEventHandler (default: true)
Activate "Error handling" in procedure dialog: InsertProcedure and InsertEventHandler (default: true)
Reset: By clicking this button the settings, snippets, commands can be resetted
Insert closing parentheses: [)] is inserted if cursor not moved (not inside double quotes) (default: true)
Insert closing bracket: []] is inserted if cursor not moved (not inside double quotes) (default: true)
Insert double quotes: ["] is inserted if cursor not moved (default: true)
Insert single quotes: ['] is inserted if cursor not moved (only inside double quotes) (default: true)
CamelCase (Selection, navigation): upper/lower case is taken into account (default: true)
Indention within "Select Case" block: source code is indented one tab (default: true)
Insert counter after "Next": The last line of a "For" block is a "Next {variable}" statement (default: true)
Error header below variable declarations: InsertErrorHeader / InsertProcedure / InsertEventHandler (default: true)
Indent first tab: All lines inside a procedure or block start at position [TAB] and higher (default: true)
Indent variable declaration: All variables declaration lines inside a procedure start at position [TAB] (default: true)

Highlight leading spaces: visualize with a character
Highlight invalid spaces: visualize with red character and ">>"
Highlight selection matches: based on the cursor position
Highlight search matches: only the ones of the current screen
Highlight parentheses: based on the cursor position
Highlight procedure keywords: based on the cursor position
Connect procedure keywords: based on the cursor position
Highlight block keywords: based on the cursor position
Connect block keywords: based on the cursor position
Cursor in line instead of keyword: Condition for highlighting

7.2. Settings2 page

Language: details see below (default EN)
QuickInfo duration (msec): how long infos like commands are being displayed in the commandbar (default 3000)
Long keystroke duration (msec): how long a command shortcut needs to be pressed for the extended functionality (default 500)
Immediate window procedure char: gets replaced by the current procedure name (default #)
Margin lines top/button: number of lines between the cursor and the border (default 5)
Beacon comment tag (regular expression): command GotoBeacon (default: @@(.+)@@)
Section comment tag (regular expression): command GotoLineOrProcedureOrSection (default: __(.+)__)
Syntax highlighting delay (msec): spaces & procedures & blocks (default 500)
Parentheses/double quote/quote delay (msec): insertation delay (default 300)
Color of leading spaces: text color (default: RGB(200, 200, 200))
Char of leading spaces: text symbol (default: Chr(183))

Highlighting mode of selection: (default Underline)
TextColor for selection matches: (default 1)
BGColor for selection matches: (default 14471380)
LineColor for selection matches: (default 0)

Highlighting mode of search word: (default Frame)
TextColor of search word: (default 1)
BGColor of search word: (default 14471380)
LineColor of search word: (default 0)

Highlighting mode of procedure words: (default Frame)
TextColor of procedure words: (default 1)
BGColor of procedure words: (default 14471380)
LineColor of procedure words: (default 0)
LineColor of procedure bracket: (default 0)

Highlighting mode for block words: (default Frame)
TextColor of block words: (default 1)
BGColor of block words: (default 14471380)
LineColor of block words: (default 0)
LineColor or block bracket: (default 0)

Highlighting mode for parentheses: (default Frame)
TextColor for pair of parentheses: (default 1)
BGColor for pair of parentheses: (default 32768)
LineColor for pair of parentheses: (default 32768)
TextColor for single parentheses: (default 1)
BGColor for single parentheses: (default 255)
LineColor for single parentheses: (default 255)

Module header: Snippet for InsertModuleHeader, InsertProcedure, InsertEventHandler, @module_header
Procedure header: Snippet for InsertProcedureHeader, InsertProcedure, InsertEventHandler, @procedure_header
Error header: Snippet for InsertProcedureErrorHeader, InsertProcedureErrorHandling, $procedure_error_header
Error footer: Snippet for InsertProcedureErrorFooter, InsertProcedureErrorHandling, $procedure_error_footer

7.3. Bars page

TabsBar

ComboBox with commands: Show combobox (default: 1)
Object icons left of the name: Display the object type image left of the name (default: 1)
Close icons right of the name: Display close button next to the name (default: 1)

MapBar

Line height and width in pixels: (default: 1/150)
Color of declaration lines: color of the pixels (default: RGB(200, 200, 200))
Color of declaration beacons: color of the pixels (default: RGB(200, 200, 200))
Color of declaration sections: color of the pixels (default: RGB(200, 200, 200))
Color of procedure lines: color of the pixels (default: RGB(0, 0, 0))
Color of procedure beacon: color of the pixels (default: RGB(0, 0, 0))
Color of procedure section: color of the pixels (default: RGB(0, 0, 0))

NavigationBar fonts

Declaration: bold/color: Font definitions (default: )
Beacon: bold/color: font definition (default: 0/RGB(0, 0, 0))
Section: bold/color: font definition (default: 0/RGB(0, 0, 0))
Public: bold/color: font definition (default: 0/RGB(0, 0, 0))
Friend: bold/color: font definition (default: 0/RGB(0, 0, 0))
Private: bold/color: font definition (default: 0/RGB(0, 0, 0))
Missing: bold/color: font definition (default: 1/RGB(255, 0, 0))

NavigationBar frames

Filter: At with position should it be displayed (default: )
Module symbols: At with position should it be displayed (default: )
Module list: At with position should it be displayed (default: )
Clipboard: At with position should it be displayed (default: )
Predefined commands: At with position should it be displayed (default: )
Used commands: At with position should it be displayed (default: )
Snapshots: At with position should it be displayed (default: )
Bookmarks: At with position should it be displayed (default: )

Command positions in the bars

Position: From 1 to count of list entries
Command: ComboBox of all commands
Seperator: check/uncheck
Delete: click only

The image gets displayed insted of the caption if available at <InstallationDir>\Images\Commands\<command>.bmp

7.4. Commands page

Caption: Arbitrary value, [SHIFT] + [ESCAPE]: restores original caption
Shift: check/uncheck
Ctrl: check only
Alt: check/uncheck
Key: 0-9, A-Z, Up, Down, PageUp, PageDown, Return, Insert, Delete, Left, Right, Space, Pause, Escape, Home, End
Long: check/uncheck, keypress
MsgBox: check/uncheck, confirmation popup before execution
Info: check/uncheck, display info in commandbar when executed
Active: check/uncheck, [SHIFT]/[CTRL]/[ALT]/[Key] are ignored if not checked
Delete: click only, for buildin commands a minus is displayed because they can't be deleted

Activated all: Click to activate all commands
Deactivate all: Click to deactivate all commands
Export to Excel: Click to export the commands to MS Excel
Textfield: Enter text to filters the commands by caption

7.5. Snippets page

Position: Execution order according to this attribute
Pattern: Regular expression, \n: newline, \t: tab, @: cursor, {placeholder}
Text: $1 - $n for variables (before and after the cursor), $0 for current word
Active: check/uncheck, all snippets can be deactivated at any time
Delete: click only, all snippets can deleted at any time

Activated all: Click to activate all snippets
Deactivate all: Click to deactivate all snippets
Synchronize: Click to connect to server
Delete all: Click to delete all snippets

Press F2 to display a multiline dialog of the surrent snippet
e.g.: Pattern: ^( *)(#?)(else?)if@$: start of line, 0 - n spaces, 0 - 1 #, 0 - 1 "else", "if", cursor, end of the line
e.g.: Pattern: ((sub|function|property) .*)(\(|,) *@ *(\)|,) Text: $1$3{NAME} As {TYPE}@$1
e.g.: Pattern: xb, Text: $block_exit (Exit For/Exit Do)
e.g.: Pattern: fl, Text: FileLog "$module_name", "$procedure_name", "$module_line"
e.g.: Pattern: foreach, Text: For Each {VARIABLE} In {COLLECTION}

7.6. Projects page

Application: Name of the application (Word, Excel, PowerPoint, Access, ...)
Project: Name of the project, arbitrary value
Timestamp: Last saving of the project's workspace
Delete: click only, all projects workspaces can be deleted at any time

Delete all: Click to delete all project workspaces from the registry

7.7. About page

Legal notice: Details about the product and the developer
Version information: Click button to check online if a new version is available
Homepage: Click button to visit the homepage in your default browser
Configuration Export settings/snippets/commands/projects into or import from an INI file
License information: Details about licensing, click button to activate license