name: Avibe_Coder description: Avibe Coder is a development environment for Amiga version: 1.0 author: Christian Foltin submitter: Christian Foltin email: cfoltin/t-online de url: https://github.com/tuxerdeg-ux/Avibe-Coder donateurl: https://paypal.me/cfoltin category: development/ide license: Other minosversion: 4.1 texttype: Plain text distribute: yes fileid: 14218 hend: # Avibe Coder 1.0 Avibe Coder is a development environment for AmigaOS 4.1 (MUI, text editor with line numbers, code folding, multiple documents, find/replace, and a shell). This trial version writes a log file upon startup to help trace any errors. ## New in 1.0 * Help: Help menu > "Help (AmigaGuide)..." opens the brief help, which contains a link to the complete user manual (User.guide). Both are available in German and English (folders Help/deutsch and Help/english; the language follows the user interface; requires Multiview). Help > "Keyboard Shortcuts..." displays all shortcuts in a window, including editor, shell, and dialog keys. * User Interface: The main window fills the entire screen. New toolbar (TheBar.mcc and TheBarVirt.mcc, OS4Depot MCC_TheBar) with tooltips; icons that currently have no effect are grayed out. * Recently Opened: File > "Recent Files" and "... Projects" (ten each). Files and folders can be dragged and dropped from Workbench onto the window; a folder is opened as a project. * Editor: Go to Line (Ctrl-G or Amiga-G), Find Next with F3 and Shift-F3, Search Word Under Cursor (Amiga-E), Tab and Shift-Tab indent and unindent selected lines, Comment and Uncomment (Amiga-/, with a single undo step), bracket pairs are framed (Amiga-K jumps to the matching bracket), auto-indentation (one level deeper after {, a single } unindents), and three bookmarks (Right Amiga-1..3, set with Shift). * Highlighting: new Python 2.5, AmigaGuide, and HTML/XML. In C/C++, AmigaOS types (Node, Window, ...IFace), tag names like MUIA_Window_Title or WA_Title, and MUI tree macros (VGroup, Child, End ...) are colored separately. * Projects: Project > "Project Settings..." (Name, Target, Make, Compiler, and Options, stored in Avibe.project). * Development: Amiga-D looks up the definition of a name in the project and in the SDK headers, Amiga-H shows the AutoDoc entry, Ctrl-Space completes the word (from open documents, project, and SDK). * Debugging: Project > "Debug with gdb" displays the backtrace and registers of a crash; Project > "Load Crash/Enforcer Log..." makes lines with file.c:line accessible via double-click. * The editor is now called AvibeEditor.mcc (a modified copy of TextEditor.mcc under LGPL 2.1). It does not replace TextEditor.mcc; both can be installed side by side. Please install the new files AvibeEditor.mcc and avibe.library (then run "Avail FLUSH"). * Fixed: Crashes on startup and during completion (too much data on the stack) and double-triggered menu items. ## New in 0.9 * Multilingual: The user interface is available in English (built-in) and German. The system locale setting determines which language applies. The German text is located in the catalog Catalogs/german/avibe.catalog (the Catalogs folder is included with this archive). * Installation: Place the "Catalogs" folder next to the program, i.e., PROGDIR:Catalogs/german/avibe.catalog, or copy the file to LOCALE:Catalogs/german/. Without a catalog (or with another language), the user interface remains in English. * Not translated: The contents of generated project files (comments in the Makefile, template source code) and log file entries. * Further languages are possible: The structure is explained in the README (section "Multilingualism"). ## New in 0.8 * Editor: Horizontal scrollbar for lines wider than the window (e.g., long lines in a Makefile). * Status bar: Status lamp (Lamp.mcc, optional) instead of the word "Ready"; green when idle, red while building, running a program, or executing a shell command. If Lamp.mcc is missing, the text "Ready" remains. * Project tree: Right-click shows a dedicated menu (New File, New Folder, Rename, Delete, Update, Search in Project). * Project tree line style (e.g., "Glow") can be configured in the MUI settings of NListtree; Avibe Coder cannot set this itself. ## New in 0.7 * Project > "Import Folder...": Turns an existing source code folder into an Avibe project without moving any files. An external Makefile becomes Makefile.old, and Avibe generates a new one from all *.c files in the folder (using folders containing headers as include paths). In Avibe.project, folders can be excluded using exclude= (tests, docs ... are suggested by the import itself, and it warns if there are multiple main() functions) and additional include folders can be specified using include=. Afterward, an Avibe-Import.log file is placed in the folder. * Search in entire project: In the search window, the "Project folder" section (also Edit > "Search in Project..."); searches all project files except *.info, *.o, *.d, *.bak, and build.log. * Project tree: Project menu > "New File...", "New Folder...", "Rename...", and "Delete..." for the entry selected in the tree. Open files and non-empty folders are not affected. * Fixed: Avibe Coder could not be linked without the DEV flag (AvibeLog). * Project wizard: New template "AmigaOS Library (.library)" (Interface "main", ROMTag, vector table; example function Add). The result is .library; for testing, copy to LIBS: and run "Avail FLUSH". * Settings > Development > "Project": Compiler and options exclusively for the opened project (stored in Avibe.project; empty = global setting). * build.log: Building writes the complete output to the project folder. ## New in 0.6 * Settings > Development > "Compiler and SDK": Compiler command (default gcc), standard options (default -Wall -Wextra -O2), and optional SDK include and library folders for the generated Makefile. "Detect SDK" searches in SDK: and suggests folders. Individual projects can override these in Avibe.project using compiler= and stdflags=. * Build and Clean additionally write the complete output to the file build.log in the project folder (overwritten on each run), e.g., to attach to bug reports. * Project > "Start" (Key R) and the "Start" button in the "Build" tab execute the project's built program (runs "Build" first). Its output is displayed in the "Build" tab; "Stop" sends Ctrl-C. ## New in 0.5 * Project tree on the left: Project > "Open Project..." selects a folder; the tree displays its folders and files, and double-clicking opens a file. The folder will be reopened on the next startup ("Close Project" forgets it, "Update Project Tree" re-reads it). * "Development" settings page: Project folder, project name, and make command. Name and make command are stored in the file Avibe.project in the project folder. * Project > "New Project...": Project wizard. Creates a folder with src/, inc/, Avibe.project, sample source, and a generated Makefile. Templates: empty, C program (shell), MUI application, library (static), AmigaOS library (.library, pattern like avibe.library). The Makefile (compiler gcc) is generated from src/*.c and rewritten on "Update Project Tree"; custom rules belong in Makefile.user. * Project > "Build" (Key B) / "Clean": Executes the project's make command; output appears live in the "Build" tab. Errors and warnings are color-coded; double-clicking a line like "src/main.c:43:5: error: ..." jumps directly to the location. "Stop" aborts the run. On errors or warnings, Avibe switches to the "Debugging Infos" tab: every message is listed there with file, line, and column; a double-click jumps into the document. * Settings > Development > "Additional Paths": Directories with commands (e.g., make, gcc), separated by commas. The built-in shell appends them to the search path if it otherwise fails to find "make". ## New in 0.4 * The Fnc, Str, and Sym tabs in the right sidebar now show lists for the active document: functions, strings, and symbols (macros, struct, enum, typedef; variables for Makefiles). Double-clicking jumps to the location. This requires the new avibe.library 1.2 (included; please replace the old one in LIBS: and run "Avail FLUSH"). ## New in 0.3 * Syntax highlighting (C/C++, AmigaShell, ARexx, Makefile, Assembler, Lua, Python 2.5) with the new avibe.library; language selectable automatically or via the View menu. * Settings window (Settings menu) with General, Editor, Shell, and Syntax pages. * Backup copies (.bak), cleanup on save, window memory, and autosave with crash recovery. * Rearranged menus: "Find and Replace" under Edit, document switching under View. ## Requirements * AmigaOS 4.1 with MUI 5 * MUI classes: NList.mcc, NListview.mcc, NListtree.mcc, TheBar.mcc, TheBarVirt.mcc (OS4Depot: MCC_NList, MCC_NListtree, MCC_TheBar) * AvibeEditor.mcc (included with this archive) * avibe.library 1.0 (included; optional: everything works without it, but text will not be syntax-highlighted and the Fnc/Str/Sym lists will remain empty) * Optional: Aboutbox.mcc (only for the "About Avibe Coder" menu item) * For the shell: PIPE: must be mounted (standard in OS4.1) Avibe Coder checks the classes upon startup. If something is missing, a window appears listing what needs to be reinstalled. ## Installation 1. Copy AvibeEditor.mcc to MUI:Libs/MUI/. (If an older version was loaded: type "Avail FLUSH" in a shell.) 2. Copy avibe.library to LIBS: (also run "Avail FLUSH" if an older version was loaded). 3. Copy Avibe_Coder to any location and start it. The folders Catalogs (German texts) and Help must be located next to the program. Users who wish to use Avibe in English should rename or delete the "Catalogs" folder within the Avibe_Code folder. The log file Avibe_Coder.log is created in the same folder as the program and is rewritten on every startup; the log from the previous start is kept as Avibe_Coder.log.old. The folder must be writable (do not run from CD), otherwise no log will be created. ## Features * Multiple documents in tabs; open documents are remembered upon exit (ENVARC:AvibeCoder.session). * Line numbers, make spaces/tabs visible (View menu), code folding (click on the left margin, collapse/expand all in View menu). * Syntax highlighting based on file extension (C/C++, AmigaShell scripts, ARexx, Makefile, Assembler, Lua, Python, AmigaGuide, HTML); colors are display-only, text is saved unmodified. In View -> "Syntax Language", the language can be selected manually per document (the selection applies until the document is closed); the status line shows the active language. The "Syntax" page in settings turns highlighting on/off and defines a color for each token type (pens from the MUI color palette, e.g., "m5", are not adopted: please choose RGB colors). * Find and Replace (Edit menu, Shortcut F): in the current document, all open documents, or files on disk; modes include Normal, Regular Expression (with $1..$9 in replacement text), and DOS pattern. Matches appear in the "Outputs" tab; double-click jumps to them. * Editor convenience: Go to line (Ctrl-G), F3 / Shift-F3, Indent/Unindent (Tab), Comment (Amiga-/), bracket frames, auto-indentation, and three bookmarks (Right Amiga-1..3). All keys: Help > Keyboard Shortcuts. * Lookup (Amiga-D), AutoDoc (Amiga-H), and Completion (Ctrl-Space) with project and SDK headers. * Shell in "Terminal (Shell)" tab: Command line with output window, history with up/down arrows, Ctrl-C aborts, cd and cls built-in. Programs with screen control or input (more, ed, prompts) do not work there. * Settings (Settings menu): "Editor" page with tab width, font and size, text, background, and selection color, cursor width and cursor blinking. The "Shell" page has the same settings (without tab width) exclusively for the shell output window; editor and shell are independent of each other. "Apply" takes effect immediately (the main window is briefly rebuilt in the process), "Save" additionally writes to ENVARC:AvibeCoder.prefs, "Reset" sets the default values of the currently visible page in the mask (then click "Apply"). The "Development" page contains the compiler command, SDK detection, include and additional paths, as well as defaults for new projects (see "New in 0.5" to "New in 0.7"). The "General" page: * Startup: Remember open documents and reopen them, remember window position and size, bottom page at startup, line numbers / visible spaces / code folding at startup. * Files: Line endings for new documents (LF or CRLF), backup copy ".bak" on save, remove trailing spaces from lines and terminate file with a newline (only in the saved file, not in the editor), start folder for file dialogs (last used or fixed folder). * Exit and Save: Save all documents with filenames on exit without prompting; autosave every N minutes (0 = off). Backups are located in ENVARC:AvibeCoder.recover/ and never modify the actual files; after a crash, Avibe Coder asks upon startup whether to restore them. They are deleted upon normal exit.