Adventure IDE

## Introduction

Adventure is a lightweight and flexible, general-purpose IDE (Integrated Development Environment) and advanced text editor. Formerly known as AutoGUI, a GUI designer for AutoHotkey scripts, the project evolved towards the goal of achieving the status of a complete IDE, accomplished once its code editor became feature-rich and with the implementation of a debugger. No longer an editor with features particularly targeted to a specific language, Adventure is right away ready to suite the needs of programmers on a broad range of environments and scenarios, or else it can be adapted for such.

General Features
Feature | Description
--- | ---
•Multi-tabbed editor | Multiple documents can be opened in a single instance of the program, each one represented by a tab button.
•Line and text markers | Indicators that provide quick navigation and visual aid.
•Smart highlighting | Automatic highlight of text that matches the selection.
•Search | Advanced Find/Replace dialog. Quick "Find Next" mode: select the desired text and press F3.
•Find in Files | Integrated file search tool. Also works separately.
•Auto-save and backup | Automatic file saving on a specific interval. A backup copy is also created on manual saving.
•File metadata | Data such as line and text markers, cursor position, selections and contracted folds, is preserved out of the file.
•Jump menu | A pop-up menu that provides access to all marked lines. Right-click the 2nd part of the status bar or press Ctrl + AppsKey.
•Load/Save session | The set of open files (location and metadata), or a subset of it, can be stored for later reopening.
•Recent files | Most recently used files.
•Favorites | A user-defined menu that provides easy access to frequently used files.
•File History Manager | Management of sessions, favorites, recent files, open files. Metadata settings.
•Tab bar positioning and style | The tab bar can be positioned on the bottom (default) or on the top.
•Custom themes | Colors and styles can be defined for text, background, selection, margins, etc, and also for specific syntactic elements.
•Zoom in/out | Increase/decrease font size via keyboard or mouse.
•Multiple selection/typing/paste | Allowing the selection of noncontiguous text areas. Multiple insertion points (carets) allow multityping.
•Rectangular selection | To select a limited portion of text across lines, press and hold Alt + Shift, then move the cursor with the arrow keys.

Programming Features
Feature | Description
--- | ---
•Support for multiple programming languages | Style definitions for lexical elements and keywords for highlight and autocompletion.
•Syntax highlighting | Colored/styled indication of the syntactic elements of text so as to enhance readability.
•Autocompletion | Automatic prediction of the remaining characters in keywords.
•Code tooltips (calltips) | Pop-up reminder of the signature of a function, method or command.
•Insertion of parameters | Insertion of the function signature by pressing Ctrl + Insert or by clicking on the calltip.
•Autoclose brackets | Automatic insertion of the matching brace.
•Templates | Sample files providing minimal or routinely used lines of code.
•Custom Syntax Type Menu | The Syntax menu can be configured to display only the necessary items.
•Line numbering | An extra margin that displays the numbers associated to the lines.
•Code folding | Logical sections of text (such as functions) can be visually delimited, allowing the collapse or expansion of specific areas.
•Automatic indentation | When the Enter key is pressed, the indentation level of the previous line is reproduced in the new line.
•Indentation guides | Vertical lines that follow along blocks of code.
•Show white spaces | A way to visualize white spaces and line ending characters.
•Hexadecimal/decimal conversion | Convert the number representation from hex to decimal and vice versa.
•Run with Associated Application | Directly run files with the press of a key (F9).
•Command line parameters | Command line arguments can be specified for the execution of the current file (tab-based). Additionally, file association info.
•Explorer context menu | Integration with the dynamic shell menu that provides access to specific actions and common verbs.
•Custom Tools menu | A user-defined menu that provides access to useful applications.
•Facilities for AutoHotkey:
•Dedicated menu | Functionality available exclusively for AutoHotkey.
•Run without save | AHK code can be quickly tested without choosing a file location.
•StdErr capture | By intercepting the standard error stream of a failed script execution, the editor is able to jump to the affected line.
•Debugger | A way to inspect the flow and variables of a script on a step-by-step basis or through breakpoints.
•Tools | A set of tools particularly useful for the development of AutoHotkey scripts.
•Help | Integration with an up-to-date version of the AHK help file (compiled in the classical style).
•AHK-WinAPI table | A document that provides a deeper understanding on how AutoHotkey works.

## Tools

The Tools menu is a user-defined menu. A tool can be an executable file, a script, a help file, a folder, a web address. To add, modify or remove items from the Tools menu, go to Tools > Configure Tools. On the left of the dialog is a list of the currently defined tools, which can be moved up or down with the respective buttons. To add a new tool, click New, then browse to the file in the file selection dialog. To remove an item from the list, click Remove. On the right are the input fields where a new or existing tool can be set.

Near the parameters field, a button gives access to a popup menu with the available placeholders. Choose "{:FULLPATH:}", for example, to pass the entire path of the current file to the command line of the tool when executed.

Settings are stored in the file Settings\Tools.xml. For a preset of tools, rename the file AHK-Tools.xml to Tools.xml. Some of these tools are relevant to AutoHotkey only. See the complete list of tools below.

Tools
Name | Description
--- | ---
•Auto-GUI | Windows form designer for AutoHotkey.
•MagicBox | Powerful message box generator.
•Expressive | Regular expression tool.
•Constantine | Windows API constants reference.
•A_Variables | AutoHotkey built-in variables.
•Scripts Manager | AutoHotkey Scripts Manager.
•COM Inspector | ActiveX/COM Objects Reference.
•Structor and Verifier | Windows API structure offsets, size of data types and constant values.
•ErrorView | Win32 error messages reference.
•Script Directives | AutoHotkey directives generator.
•XML Syntax Checker | Warn about errors in the formatting of XML documents.

## Configuration

It might be of interest to enable multiple selection (Options > Enable Multiple Selection) and the Explorer context menu (Run > Explorer Context Menu...), options not enabled by default because they were not fully tested.

The Find/Replace dialog offers the option "F3: find the next occurrence of the currently selected text", which means that, once enabled, the F3 key can be used to quickly find the next or previous (Shift + F3) occurrence of the selected text without the dialog being visible. Some search options like case sensitive and regular expression do not take place when using this mode.

File metadata: by default, Adventure doesn't store the position of selections and the lines indicating collapsed folds. Go to Sessions > Manage Sessions... > Settings to enable them.

Configuration
Where | What can be configured
--- | ---
Find/Replace dialog | Basic matching options, F3 mode, wrap around, starting position, automatic highlight options.
File History Manager | Related menu items, startup session, file metadata (cursor position, line markers, text markers, selections, code folding).
View menu | Tab bar position and style, visible margins, word wrap, syntax highlighting, theme, font family and size.
Syntax Type menu/dialog | Current syntax type, default syntax type, available menu items.
Options menu | AutoComplete, calltips, autoclose brackets, indentation, caret, multiple selection, auto-save and backup, ask to save on exit.
Indentation dialog | Indentation size, indent with spaces, automatic indentation, indentation guides.
Caret dialog | Width/style and blinking rate.
Auto-save and backup dialog | Directory, backup before saving, auto-save interval and location, automatic deletion.
Explorer menu | Enabled for the drop-down of the Execute button and/or as a submenu of the tab bar menu.
Tools menu/dialog | Items, display name, file, parameters, working dir, icon, description.
AHK Settings | 32 and 64-bit executable path, alternative executable, standard error capture, help file path.
Settings file (Adventure.ini) | Some settings (file manager path, for example) are not yet exposed in the user interface. Be careful when editing this file.
FileTypes.xml | File extension types and description, Scintilla lexers, open/save dialog filter groups.
Themes.xml | Global theme data for common elements of the Scintilla control.
Language-specific XML files | Files containing the definitions for colors, styles, keywords and properties applied to specific programming languages.
AutoCompletion XML files | Files containing the list of keywords. The language id attribute must be in conformity with those defined in FileTypes.xml.

November, 2020