Skip to content

Commit

Permalink
Merge pull request #288 from humdingerb/docs
Browse files Browse the repository at this point in the history
Extended documentation
  • Loading branch information
jackburton79 authored Jan 29, 2024
2 parents 7d32328 + ae7a77b commit 8841bc4
Show file tree
Hide file tree
Showing 51 changed files with 692 additions and 35 deletions.
Binary file modified .genio
Binary file not shown.
44 changes: 16 additions & 28 deletions documentation/ReadMe.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,43 +18,39 @@

</head>
<body>
<!--

<div id="navbar">
<a class="active" href="ReadMe.html">Start</a> <a href="panes.html">Panes</a> <a href="editor.html">Editor</a> <a href="toolbar.html">Toolbar</a> <a href="menus.html">Menus</a> <a href="settings.html">Settings</a>
<a class="active" href="ReadMe.html">QuickStart</a> <a href="editor.html">Editor</a> <a href="panes.html">Panes</a> <a href="toolbar.html">Toolbar</a> <a href="menus.html">Menus</a> <a href="settings.html">Settings</a>
</div>
-->

<div id="content">
<p style="font-size:1.5em; font-weight:bold; text-align:center">Genio's User Documentation</p>
<h1>Genio's User Documentation</h1>

<img src="./images/genio_logo.png" style="border:none;padding-right:15px;float:left" alt="Big Genio icon" />

<p>Genio is an Integrated Development Environment (IDE) for Haiku. It's using Scintilla for its advanced editing features, like syntax highlighting and folding code blocks. Clang is used to provide real time analysis to warn about problems, provide solutions in a tooltip, code completion and more.</p>

<p>Most of Genio's features are easily discovered and don't need an explanation.<br />
If you have questions or issues that should be added to the documentation, please use <a href="https://github.com/Genio-The-Haiku-IDE/Genio/discussions">Genio's Discussions forum</a>.<!-- Please use the navigation bar at the top to quickly jump to a topic that does have some items worth of discussion.
</p>
If you have questions or issues that should be added to the documentation, please use <a href="https://github.com/Genio-The-Haiku-IDE/Genio/discussions">Genio's Discussions forum</a>.</p>
<p style="clear:left"></p>

<p>Here follows a quick introduction how to get started with a project.
-->
</p>

<p style="clear:left"></p>
<hr style="margin-top:30px" />
<h1>Quick start</h1>

<p>For orientation, let's start with a quick overview of Genio's main window, with its <span class="menu">Projects</span> pane to the left (1), <span class="menu">Output</span> pane at the bottom (2), the <span class="menu">Editor</span> view at the right (3), and <span class="menu">Menu and Tool bar</span> at the top (4).</p>

<p style="text-align:center"><img src="./images/main_window.png" style="border:none" alt="Genio's main window" /></p>


<h2>Open/create a new project</h2>
<h2><a id="open-project" name="open-project">Open/create a new project</a></h2>

<p>It's very easy to start a new project in Genio, either from scratch, from a template, or from an existing location on your harddisk or a remote repository.<p>

<h3>A local project</h3>
<h3><a id="local" name="local">A local project</a></h3>

<p>To "import" an existing project, you simply invoke <span class="menu">Project|Open project…</span> and browse to its folder and open it. Its files and folders appear in the <span class="menu">Projects</span> pane at the left.</p>

<h3>A remote project</h3>
<h3><a id="remote" name="remote">A remote project</a></h3>

<p>If a project is hosted on a remote git repository like "gitlab" etc., it's almost as easily added with <span class="menu">Project|Open remote project…</span>. That'll open this window:</p>

Expand All @@ -63,7 +59,7 @@ <h3>A remote project</h3>
</p>You enter the <span class="menu">URL</span> of the project's repo page, and browse to the <span class="menu">Base path</span> which is the location the source will be downloaded to. Optionally you can change the <span class="menu">Destination folder</span>, which will be auto-filled once you entered the URL.<br />
<span class="button">Clone</span> uses <span class="cli">git</span> to get the source.</p>

<h3>A project from scratch</h3>
<h3><a id="scratch" name="scratch">A project from scratch</a></h3>

<p>Starting from scratch, you pick an item from the <span class="menu">File|New</span> menu.<br />
Choose <span class="menu">New folder</span> for an empty folder, or one of the templates for a folder already populated with some functional source files.<br />
Expand All @@ -72,9 +68,9 @@ <h3>A project from scratch</h3>
<p>You can continue to add, rename or delete files by right-clicking in the <span class="menu">Projects</span> pane.</p>


<h2>Source control</h2>
<h2><a id="source-control" name="source-control">Source control</a></h2>

<img src="./images/source_control.png" style="border:none;padding:15px;float:left" alt="Source control" />
<img src="./images/panes-source_control.png" class="floatleft" alt="Source control" />

<p>In the <span class="menu">Source control</span> tab of the <span class="menu">Projects</span> pane you find most often needed actions to interact with your git repository. You can switch, create and remove branches and fetch or stash changes etc.</p>

Expand All @@ -84,25 +80,17 @@ <h2>Source control</h2>
<p style="clear:left"></p>


<h2>Project settings</h2>
<h2><a id="project-settings" name="project-settings">Project settings</a></h2>

<p>To be able to build your project, you need to open the <span class="menu">Project|Project settings…</span>.</p>

<p style="text-align:center"><img src="./images/project_settings.png" style="border:none;padding:15px" alt="Project settings" /></p>

<p>Here you specify the correct commands to build in release or debug mode, depending on your build system. Genio recognizes "Make" and "Jam" build systems and tries to provide working commands, but you may want to tweak things a bit.</p>


<h2>Tips</h2>

<ul>
<li><p>If you have several open projects, commands like <span class="menu">Project|Build project</span> or a search in the whole project work on the currently active project. This is indicated by a bolded project name. A project can be <span class="menu">Set active</span> from the context menu when right-clicking it.</p></li>
</ul>

<!--
<hr />
<a href="panes.html" style="border:none;float:right">Next: Panes</a>
-->
<a href="editor.html" style="border:none;float:right">Next: Editor</a>
<p></p>
</div>
</body>
</html>
49 changes: 42 additions & 7 deletions documentation/_doc.css
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,13 @@ a:hover, a:active {
color: #ff4500;
}

h3 a:hover, a:active {
text-decoration: none;
color: #000000;
/* Some headers act as anchors, don't give them a hover effect */

h1, h2, h3, h4, h5 {
a:hover, a:active {
text-decoration: none;
color: #000;
}
}

/* heading and navigation */
Expand Down Expand Up @@ -90,18 +94,26 @@ hr {
border: dotted thin #e0e0e0;
}
h1 {
font-size: 1.3em;
font-size: 1.6em;
border-bottom: dotted thin #e0e0e0;
margin-bottom: 45px;
margin: 45px;
text-align: center;
}
h2 {
font-size: 1.2em;
font-size: 1.5em;
border-bottom: dotted thin #e0e0e0;
margin-top: 40px;
}
h3 {
font-size: 1em;
font-size: 1.2em;
border-bottom: none;
margin-top: 30px;
margin-bottom: 0px;
}
h4 {
font-size: 1.1em;
border-bottom: none;
margin-top: 30px;
margin-bottom: 0px;
}
.key { /* Shortcut (separate with &#160; */
Expand Down Expand Up @@ -135,6 +147,16 @@ h3 {
font-size: 0.9em;
font-family: monospace;
}
.cli { /* Shell command or file */
background-color: #e8e8e8;
font-size: 0.9em;
font-family: monospace;
}

tt {
background-color: #e8e8e8;
}

td.onelinetop {
vertical-align: top;
white-space: nowrap;
Expand Down Expand Up @@ -162,3 +184,16 @@ ul {
min-height: 42px;
background: #e4ffde url(icons/info-box_32.png) 15px 15px no-repeat;
}

/* Images floating to the left of text */
.floatleft {
border:none;
padding:0 1em 2em 0;
float:left
}

.icons {
border:none;
padding:0 2em 0 0.5em;
float:right
}
155 changes: 155 additions & 0 deletions documentation/editor.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US">
<head>
<!--
* Copyright 2024
* Distributed under the terms of the MIT License.
*
* Authors:
* Humdinger <[email protected]>
-->
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta name="robots" content="all" />
<link rel="stylesheet" type="text/css" href="./_doc.css" />
<title>Genio's User Documentation</title>

</head>
<body>

<div id="navbar">
<a href="ReadMe.html">QuickStart</a> <a class="active" href="editor.html">Editor</a> <a href="panes.html">Panes</a> <a href="toolbar.html">Toolbar</a> <a href="menus.html">Menus</a> <a href="settings.html">Settings</a>
</div>

<div id="content">

<h1>The Editor</h1>

<p>The editor view takes naturally the largest part of the main window. In the <span class="menu">Window</span> menu it can be made <span class="menu">Fullscreen</span> (<span class="key">ALT</span>&nbsp;<span class="key">ENTER</span>), in <span class="menu">Focus mode</span> (<span class="key">SHIFT</span>&nbsp;<span class="key">ALT</span>&nbsp;<span class="key">ENTER</span>) the toolbar and the projects and output panes are hidden to minimize distractions.<br />
Hit <span class="key">ALT</span>&nbsp;<span class="key">ENTER</span> again to return to normal mode.</p>


<h2><a id="elements" name="elements">Elements of the editor view</a></h2>

<p style="text-align:center"><img src="./images/editor-view.png" style="border:none" alt="Editor view" /></p>

<h3><a id="tab" name="tab">File tab</a></h3>

<p>Every file is displayed in a tab in the editor view. In the <a href="settings.html#project-settings">Project settings</a>, each project can be assigned a color, which is displayed before the file name. This makes it easy to see at a glance where a file is coming from. A tooltip provides the same info textually.</p>


<h3><a id="margins" name="margins">Margins</a></h3>

<p>There are four margins that you can show/hide in <a href="settings.html#genio-settings">Genio's settings</a>:</p>

<ul>
<li><p><b>Line number margin</b><br/>
Clicking on a line in the <em>Line number margin</em> selects that whole line. You can drag over multiple lines while holding the mouse button to select them all.</p></li>

<li><p><b>Bookmark margin</b><br/>
A click in the <em>Bookmark margin</em> adds a little icon at that line and you can now jump between those bookmarks with the commands in <span class="menu">Search|Bookmark</span>.</p></li>

<li><p><b>Folding margin</b><br/>
The <em>Folding margin</em> has little '<tt> - </tt>' widgets at the start of code blocks that are between brackets. Click on the widget, and it turns into a '<tt> + </tt>' and the code block gets folded into a single horizontal line. Click on the widget again to unfold the code block.<br />
From the <span class="menu">View</span> menu you can quickly <span class="menu">Un/Fold all</span>, or use the corresponding icon from the <a href="toolbar.html#icons">Toolbar</a>.</p></li>

<li><p><b>Comment margin</b><br/>
A click in the <em>Comment margin</em> quickly un/comments that line.</p></li>
</ul>


<h3><a id="lock-menu" name="lock-menu">Lock Menu</a></h3>

<p>This is a pop-up menu allowing you to make the current file <span class="menu">Read-only</span> to prevent accidental changes. It's the same as clicking the lock icon in the <a href="toolbar.html#icons">Toolbar</a>.<br />
Locked files are marked with a little lock symbol in the tab.</p>


<h3><a id="line-column" name="line-column">Line/Column display</a></h3>

<p>It doesn't only display the line and column number of the current cursor position. Click it to open a panel to enter a line number to jump to. The same is done with <span class="menu">Search|Go to line…</span> or <span class="key">ALT</span>&nbsp;<span class="key">,</span>.</p>


<h3><a id="status" name="status">Status display</a></h3>

<p>The status area displays three types of information:</p>

<ul>
<li><p>The current writing mode (INS = insert, OVR = overwrite). Clicking it toggles the mode, which is normally done with <span class="key">INS</span> on the keyboard.</p></li>

<li><p>The line endings of the current file (LF = Linefeed, CR = Carriage Return).</p></li>

<li><p>The file's write permissions (RW = read/write, RO = read-only).</p></li>
</ul>


<h3><a id="vruler" name="vruler">Vertical ruler</a></h3>

<p>In <a href="settings.html#genio-settings">Genio's settings</a> you can opt to display a vertical line at a specific column to remind you to keep to a maximal line length, for example, 100 chars.</p>


<h2><a id="working" name="working">Working with the editor</a></h2>

<p>Let's have a quick look at some features that make working in the editor more fun and efficient.</p>


<h3><a id="switch" name="switch">Indenting blocks of code</a></h3>

<p>If you want to change the indention of a block of code, you select its lines and just press <span class="key">TAB</span> to indent more, or <span class="key">SHIFT</span>&nbsp;<span class="key">TAB</span> to indent less.</p>


<h3><a id="switch" name="switch">Switch between source and header</a></h3>

<p>With a quick <span class="key">ALT</span>&nbsp;<span class="key">TAB</span> or <span class="menu">View|Switch source/header</span>, you can jump between a .cpp and its .h file.</p>


<h3><a id="link" name="link">Links and info on headers</a></h3>

<p style="text-align:center"><img src="./images/editor-linked_info.png" style="border:none" alt="Links and info on headers" /></p>

<p>Included headers are underlined to mark them as link. Simply click on one to open the header file.<br />
Hover your mouse over it and a tooltip shows the header's location on disk and which functions etc. it provides and are used from it.</p>


<h3><a id="jumpdef" name="jumpdef">Jump to definition/declaration</a></h3>

<p>You can jump between the definition and declartion of a member variable, function or class etc. and vice-versa. Either right-click on it and choose <span class="menu">Go to definition/declaration</span> or hit <span class="key">ALT</span>&nbsp;<span class="key">G</span> after placing the cursor on it.</p>


<h3><a id="correction" name="correction">Code correction</a></h3>

<p>Genio is constantly having an eye on your code and warns about errors and typos etc. Potential issues are marked with a red squiggly underline.</p>

<p style="text-align:center"><img src="./images/editor-correction.png" style="border:none" alt="Code correction" /></p>

<p>If you hover the mouse pointer over a such underlined part, a tooltip will explain the issue. Also keep an eye on the <a href="panes.html#problems">Problems tab</a> in the output pane at the bottom.<br />
If there's a fix available, you can apply it with a right-click and choosing the fix from the pop-up menu. Here we need to add a semicolon at the end of line 323.</p>


<h3><a id="completion" name="completion">Code completion</a></h3>

<p>Using <span class="menu">Edit|Autocomplete</span>, or more conveniently <span class="key">ALT</span>&nbsp;<span class="key">SPACEBAR</span>, can make you more efficient and sometimes saves you having to consult the API documentation.</p>
<p>This example illustrates the usage:</p>

<p style="text-align:center"><img src="./images/editor-completion-1.png" style="border:none" alt="Code completion" /></p>

<p>Hitting <span class="key">ALT</span>&nbsp;<span class="key">SPACEBAR</span> after entering "desk" pops up a window where you can choose the correct object with <span class="key"></span>&nbsp;<span class="key"></span> and insert it with <span class="key">ENTER</span>.</p>

<p style="text-align:center"><img src="./images/editor-completion-2.png" style="border:none" alt="Code completion" /></p>

<p>When entering the ".", you get another window with the available functions of that object (here BDeskbar). If you continue writing, the selection jumps to the matching function. Again use <span class="key"></span>&nbsp;<span class="key"></span> and insert it with <span class="key">ENTER</span>.</p>

<p style="text-align:center"><img src="./images/editor-completion-3.png" style="border:none" alt="Code completion" /></p>

<p>Now another window pops up to show the type of arguments the picked function expects. If it is overloaded so there are several functions of that name, but with different parameters, you can use <span class="key"></span>&nbsp;<span class="key"></span> to see what's available.</p>

<p><span class="key">ESC</span> closes all these pop-up windows.</p>

<hr />
<a href="ReadMe.html" style="border:none;float:left">Back: QuickStart</a>
<a href="panes.html" style="border:none;float:right">Next: Panes</a>
<p></p>
</div>
</body>
</html>
Binary file added documentation/images/editor-completion-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/editor-completion-2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/editor-completion-3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/editor-correction.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/editor-linked_info.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/editor-view.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/icons/kIconBack_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/icons/kIconBuild.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/icons/kIconClean.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/icons/kIconClose.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/icons/kIconDebug.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/icons/kIconFileList.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/icons/kIconFind.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/icons/kIconFold_4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/icons/kIconForward_2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/icons/kIconLocked.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/icons/kIconRedo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/icons/kIconReplace.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/icons/kIconRun.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/icons/kIconSave.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/icons/kIconSaveAll.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/icons/kIconShowPunctuation.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/icons/kIconTerminal.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/icons/kIconUndo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/icons/kIconWinNav.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added documentation/images/icons/kIconWinStat.png
Binary file added documentation/images/menus-edit.png
Binary file added documentation/images/menus-file.png
Binary file added documentation/images/menus-genio.png
Binary file added documentation/images/menus-git.png
Binary file added documentation/images/menus-project.png
Binary file added documentation/images/menus-search.png
Binary file added documentation/images/menus-view.png
Binary file added documentation/images/menus-window.png
Binary file added documentation/images/panes-output_build_log.png
Binary file added documentation/images/panes-output_console_io.png
Binary file added documentation/images/panes-projects.png
File renamed without changes
Binary file added documentation/images/toolbar-console_bar.png
Binary file added documentation/images/toolbar-find_bar.png
Binary file added documentation/images/toolbar-replace_bar.png
Binary file added documentation/images/toolbar-toolbar.png
Loading

0 comments on commit 8841bc4

Please sign in to comment.