Adventure - General-Purpose IDE, Lightweight Text Editor

Open source general-purpose IDE, lightweight text editor. Previously known as AutoGUI.
User avatar
Alguimist
Posts: 380
Joined: 05 Oct 2015, 16:41
Contact:

Adventure - General-Purpose IDE, Lightweight Text Editor

Post by Alguimist » 27 Apr 2021, 22:51

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.
Image
An Outline of Adventure's Main Features
 • 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.
 • 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
 • 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.
Requirements
There is no special requirements to run Adventure. AutoHotkey is recommended (not required) because most of the tools included with Adventure were specifically designed for it. If you prefer to run Adventure from the script, the minimum required version of AHK is 1.1.29 (uses OnError).

Tested on Windows XP, 7 and 10.
Development
Some of the planned features: custom theme dialog, custom hotkeys, dynamic rules for the parsing of stdout/stderr (natively available for AHK only), run without save for other programming languages, installer, context-aware autocompletion, update checker.

The XML files containing the definitions for colors, styles, keywords and properties applied to specific programming languages may be incomplete. For the level of current implementation, go to Syntax > More Lexers.

Comments are welcome! If you need help, feel free to ask! ;)
Latest Version
Image

User avatar
Xtra
Posts: 2116
Joined: 02 Oct 2015, 12:15

Re: Adventure - General-Purpose IDE, Lightweight Text Editor

Post by Xtra » 27 Apr 2021, 23:35

Nice i will have to check this out. Thanks!

User avatar
jNizM
Posts: 2726
Joined: 30 Sep 2013, 01:33
GitHub: jNizM
Contact:

Re: Adventure - General-Purpose IDE, Lightweight Text Editor

Post by jNizM » 28 Apr 2021, 00:50

Glad to see you are still working on this project and it continues to grow.

Would also be nice to see you move from SourceForge to GitHub at some point.
[AHK] 1.1.33.09 x64 Unicode (2.0-a134) | [WIN] 10 Pro (Version 20H2) x64 | [GitHub] Profile
Donations are appreciated if I could help you

User avatar
hasantr
Posts: 817
Joined: 05 Apr 2016, 14:18
Location: İstanbul

Re: Adventure - General-Purpose IDE, Lightweight Text Editor

Post by hasantr » 28 Apr 2021, 02:56

I've been waiting for this for a very long time. Thanks for the great ide.

User avatar
kczx3
Posts: 1311
Joined: 06 Oct 2015, 21:39

Re: Adventure - General-Purpose IDE, Lightweight Text Editor

Post by kczx3 » 28 Apr 2021, 10:43

Unfortunately, it seems my employer has blocked sourceforge... :(

User avatar
kczx3
Posts: 1311
Joined: 06 Oct 2015, 21:39

Re: Adventure - General-Purpose IDE, Lightweight Text Editor

Post by kczx3 » 28 Apr 2021, 12:00

I was able to work around that. Are there instructions on creating custom themes?

Other ideas:
  • Make the selection have alpha so that the syntax highlighting is still visible when text is selected.
  • Add the ability to open a workspace.
  • Function/class/variable list of open file.
  • Utilize Multiple Views
  • Add ability to Mark All from the Find dialog rather than just using the keyboard shortcut or Menu item.

User avatar
kczx3
Posts: 1311
Joined: 06 Oct 2015, 21:39

Re: Adventure - General-Purpose IDE, Lightweight Text Editor

Post by kczx3 » 29 Apr 2021, 13:45

Oops! It seems you are setting the Alpha on the selection. The problem is that your code always assigns a ForeColor to the selection style. I'd recommend flexing to not call Sci[n].SetSelFore(1, g_oColors["Selection"].FC) if FC is empty which allows the syntax highlighting to shine through.

Another thing I had added to AutoGUI was to highlight the Indentation Guide in the Brace Matching callback like so:

Code: Select all

; Brace matching
BracePos := CurPos - 1
BraceMatch := Sci[n].BraceMatch(BracePos, 0)
If (BraceMatch == -1) {
    BracePos := CurPos
    BraceMatch := Sci[n].BraceMatch(CurPos, 0)
}
If (BraceMatch != -1) {
    col1 := Sci[n].GetColumn(BraceMatch)
    col2 := Sci[n].GetColumn(BracePos)
    line1 := Sci[n].LineFromPosition(BracePos)
    line2 := Sci[n].LineFromPosition(BraceMatch)
    Sci[n].BraceHighlight(BracePos, BraceMatch)
    
    if (Chr(Sci[n].GetCharAt(BracePos)) ~= "{|}|[|]" && line1 != line2) {
        Sci[n].SetHighlightGuide(Min(col1, col2))
    }
    else {
        Sci[n].SetHighlightGuide(0)
    }
} Else {
    Sci[n].BraceHighlight(-1, -1)
}
Another enhancement would be to add options for the vertical Edge. Here's what I use for example:

Code: Select all

; Draw a vertical line at column 120
Sci[n].SetEdgeMode(1)
Sci[n].SetEdgeColumn(120)
Sci[n].SetEdgeColor(CvtClr(0x3E3D32))

User avatar
kczx3
Posts: 1311
Joined: 06 Oct 2015, 21:39

Re: Adventure - General-Purpose IDE, Lightweight Text Editor

Post by kczx3 » 29 Apr 2021, 13:59

I also prefer the Home key to be mapped to SCI_VCHOMEWRAP so allowing customization of those Cmd keys might be helpful too.

User avatar
boiler
Posts: 8273
Joined: 21 Dec 2014, 02:44

Re: Adventure - General-Purpose IDE, Lightweight Text Editor

Post by boiler » 29 Apr 2021, 14:24

It looks like it has a lot of great features. :clap: I’m looking forward to trying it out.

Is it possible to split the display to view more than one tab at once? If so, is it possible to view the same file in multiple panes simultaneously while staying in sync with each other as edits are made? If not, consider this a feature request, although I realize it may not be feasible to implement.

User avatar
kczx3
Posts: 1311
Joined: 06 Oct 2015, 21:39

Re: Adventure - General-Purpose IDE, Lightweight Text Editor

Post by kczx3 » 29 Apr 2021, 15:11

@boiler
That would be possible using the Multiple Views feature I mentioned above that Scintilla is capable of doing.

User avatar
boiler
Posts: 8273
Joined: 21 Dec 2014, 02:44

Re: Adventure - General-Purpose IDE, Lightweight Text Editor

Post by boiler » 29 Apr 2021, 15:54

@kczx3 - Yes, I remember you saying it was possible and there may have been some thought expressed by @Alguimist that it would be considered, which is why I was hoping it might have been implemented. Maybe “feasible” wasn’t the best word, but I was trying to say that I understand if it’s too involved to make it onto the to-do list.

MARCAN
Posts: 19
Joined: 27 Aug 2019, 04:38

Re: Adventure - General-Purpose IDE, Lightweight Text Editor

Post by MARCAN » 30 Apr 2021, 04:49

@Alguimist
Hi
Zscaler is giving me a Trojan Horse, when trying to download the file.

Can you please check it out?

Thanks!

tuzi
Posts: 106
Joined: 27 Apr 2016, 23:40

Re: Adventure - General-Purpose IDE, Lightweight Text Editor

Post by tuzi » 30 Apr 2021, 10:22

I've been waiting for the new version for 2 years.

Thank you Alguimist!!!! :superhappy: :superhappy:

User avatar
Alguimist
Posts: 380
Joined: 05 Oct 2015, 16:41
Contact:

Re: Adventure - General-Purpose IDE, Lightweight Text Editor

Post by Alguimist » 30 Apr 2021, 16:27

@Xtra: I hope you like it!

@jNizM, @hasantr and @tuzi: Thank you!
kczx3 wrote:Are there instructions on creating custom themes?
While a theme customization dialog isn't yet available, you have to manually edit Themes.xml. Some clarification is needed on the meanings of the abbreviated tag attributes: fc = foreground color, bc = background color, a = alpha, w = width, dlc = drawing lines color, bbc = folding button background color, mbc = margin background color, b = bold, i = italic, t = type, c = color, oa = outline alpha. For white themes, the "specifics" tag must be set to "Default", whereas themes with dark affinity rely on the incomplete "Monokai", language-specific variant, currently available for AutoHotkey only. Then, go to "View" > "Choose Theme" to apply the changes.
kczx3 wrote:Function/class/variable list of open file.
See this script. It could be adapted to work as a separate tool, indirectly integrated with Adventure. I'm now wondering if it could be suited for other languages as well.
kczx3 wrote:Add ability to Mark All from the Find dialog rather than just using the keyboard shortcut or Menu item.
The "Mark All" functionality can be applied to multiple selections, but the other way around, i.e. "Select All Marked Text" has not been implemented. It takes only one extra step to mark all once the selection has been applied.

In regard to "multiple views" (@Boiler said on another topic: "It's such a valuable feature when working on large scripts"), in what relates to code navigation, consider using line markers (F2) and the jump menu (Ctrl + AppsKey or right-click on the second part of the status bar).

@MARCAN
I couldn't find a way to report as a false-positive. Notice that AV-scans made by means of virustotal.com frequently present some exceptions for AutoHotkey binaries. See if whitelisting the URL in Zscaler solves the problem.

User avatar
boiler
Posts: 8273
Joined: 21 Dec 2014, 02:44

Re: Adventure - General-Purpose IDE, Lightweight Text Editor

Post by boiler » 30 Apr 2021, 17:15

Alguimist wrote: In regard to "multiple views" (@Boiler said on another topic: "It's such a valuable feature when working on large scripts"), in what relates to code navigation, consider using line markers (F2) and the jump menu (Ctrl + AppsKey or right-click on the second part of the status bar).
Thanks for the suggestion. That is helpful, although I will still always prefer being able to view and edit in multiple panes. My memory isn't good enough to get the same benefit from jumping back and forth between sections. :D

As an example, if I have a complicated GUI with several variables associated with the controls and I'm working on a subroutine or function that refers to them, I like to visually see the GUI definition as I write code referring to it. I often want to modify both sections together, so having them both editable in real time makes even some of the workarounds, such as copying the text or image of it to another window, not as useful, not to mention not as convenient.

Anyway, that is not meant to detract from anything here. Just trying to keep this on the wish list in case it might possibly be added in the future.

User avatar
kczx3
Posts: 1311
Joined: 06 Oct 2015, 21:39

Re: Adventure - General-Purpose IDE, Lightweight Text Editor

Post by kczx3 » 03 May 2021, 10:08

I know you have the existing Tools functionality but I'm curious if you've considered adding plugins that can directly interact with the editor in a structured way via an API of some kind.

I could make a Tool to do some things but I don't believe Tools are able to auto-start with the editor so would need to be manually started.

Actually... My Tools menu is empty. Are all the included Tools not automatically added here?

User avatar
joedf
Posts: 8002
Joined: 29 Sep 2013, 17:08
Facebook: J0EDF
Google: +joedf
GitHub: joedf
Location: Canada
Contact:

Re: Adventure - General-Purpose IDE, Lightweight Text Editor

Post by joedf » 03 May 2021, 12:57

Very cool! I made this topic sticky :+1:

User avatar
oldbrother
Posts: 180
Joined: 23 Oct 2013, 05:08

Re: Adventure - General-Purpose IDE, Lightweight Text Editor

Post by oldbrother » 05 May 2021, 12:52

Sorry, I'm confused with this version. I even couldn't create a simple GUI. :crazy: :crazy: :crazy:

autohost
Posts: 9
Joined: 03 May 2021, 15:18

Re: Adventure - General-Purpose IDE, Lightweight Text Editor

Post by autohost » 07 May 2021, 09:32

I tried to use Auto-GUI v3.0.0 and got the error "Auto-GUI has not been adapted to High-DPI display scaling."

Do you have any idea when that will be fixed?

I have AutoGui v2.5.7, and can use its File -> New GUI and its seems usable, just the left side controls look a bit cramped...

lexikos
Posts: 7506
Joined: 30 Sep 2013, 04:07
GitHub: Lexikos

Re: Adventure - General-Purpose IDE, Lightweight Text Editor

Post by lexikos » 08 May 2021, 06:38

The code pane flickers very noticeably when I resize the window. This appears to be easily fixed by adding the WS_CLIPCHILDREN style (option +0x2000000) to the main GUI.


The Find in Files tool refuses to run if A_ScreenDPI != 96. A quick patch to get it working on high DPI is to override AutoHotkey's default DPI awareness via __COMPAT_LAYER:

Code: Select all

FindInFiles() {
    Local compat_layer
    EnvGet compat_layer, __COMPAT_LAYER
    EnvSet __COMPAT_LAYER, %compat_layer% GDIDPIScaling DPIUnaware
    RunEx(A_ScriptDir . "\Tools\Find in Files\Find in Files." . (A_IsCompiled ? "exe" : "ahk") . " /A")
    EnvSet __COMPAT_LAYER, %compat_layer%
}
GDIDPIScaling corresponds to the "System (Enhanced)" DPI compatibility setting, which exists only on Windows 10 version 1703 and later. DPIUnaware is "System". (Unrecognized words in __COMPAT_LAYER have no effect, so there's no need to check OS version.)

If you set __COMPAT_LAYER and leave it, it will affect processes launched by Adventure afterward. You can just clear it after calling Run, but it's more proper to restore it to its previous value in case someone needs to apply a compatibility fix to Adventure itself (and the processes it starts).

I didn't test this with Auto-GUI, but it might work.

Post Reply

Return to “Adventure IDE”