diakonos 0.8.11 → 0.9.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGELOG +439 -0
- data/LICENCE.md +675 -0
- data/bin/diakonos +6 -0
- data/diakonos-256-colour.conf +220 -0
- data/diakonos.conf +1802 -0
- data/help/about-help.dhf +31 -0
- data/help/clipboard.dhf +45 -0
- data/help/close-file.dhf +6 -0
- data/help/code-block-navigation.dhf +16 -0
- data/help/column-markers.dhf +15 -0
- data/help/config.dhf +69 -0
- data/help/cursor-stack.dhf +19 -0
- data/help/delete.dhf +41 -0
- data/help/extensions.dhf +125 -0
- data/help/file-type.dhf +24 -0
- data/help/key-mapping.dhf +127 -0
- data/help/line-numbers.dhf +22 -0
- data/help/macros.dhf +27 -0
- data/help/new-file.dhf +6 -0
- data/help/open-file.dhf +21 -0
- data/help/quit.dhf +7 -0
- data/help/resizing.dhf +19 -0
- data/help/ruby.dhf +17 -0
- data/help/save-file.dhf +10 -0
- data/help/scripting.dhf +92 -0
- data/help/search.dhf +103 -0
- data/help/shell.dhf +60 -0
- data/help/speed.dhf +23 -0
- data/help/support.dhf +15 -0
- data/help/switch-buffers.dhf +15 -0
- data/help/tabs.dhf +36 -0
- data/help/undo.dhf +9 -0
- data/help/uninstall.dhf +18 -0
- data/help/welcome.dhf +32 -0
- data/help/word-wrap.dhf +17 -0
- data/lib/diakonos/about.rb +70 -0
- data/lib/diakonos/bookmark.rb +46 -0
- data/lib/diakonos/buffer/bookmarking.rb +47 -0
- data/lib/diakonos/buffer/cursor.rb +335 -0
- data/lib/diakonos/buffer/delete.rb +170 -0
- data/lib/diakonos/buffer/display.rb +362 -0
- data/lib/diakonos/buffer/file.rb +157 -0
- data/lib/diakonos/buffer/indentation.rb +175 -0
- data/lib/diakonos/buffer/searching.rb +552 -0
- data/lib/diakonos/buffer/selection.rb +360 -0
- data/lib/diakonos/buffer/undo.rb +73 -0
- data/lib/diakonos/buffer-hash.rb +60 -0
- data/lib/diakonos/buffer-management.rb +59 -0
- data/lib/diakonos/buffer.rb +698 -0
- data/lib/diakonos/clipboard-klipper-dbus.rb +62 -0
- data/lib/diakonos/clipboard-klipper.rb +62 -0
- data/lib/diakonos/clipboard-osx.rb +59 -0
- data/lib/diakonos/clipboard-xclip.rb +60 -0
- data/lib/diakonos/clipboard.rb +47 -0
- data/lib/diakonos/config-file.rb +67 -0
- data/lib/diakonos/config.rb +382 -0
- data/lib/diakonos/core-ext/enumerable.rb +15 -0
- data/lib/diakonos/core-ext/hash.rb +60 -0
- data/lib/diakonos/core-ext/object.rb +6 -0
- data/lib/diakonos/core-ext/regexp.rb +6 -0
- data/lib/diakonos/core-ext/string.rb +122 -0
- data/lib/diakonos/ctag.rb +28 -0
- data/lib/diakonos/cursor.rb +27 -0
- data/lib/diakonos/display/format.rb +75 -0
- data/lib/diakonos/display.rb +336 -0
- data/lib/diakonos/extension-set.rb +49 -0
- data/lib/diakonos/extension.rb +34 -0
- data/lib/diakonos/finding.rb +40 -0
- data/lib/diakonos/functions/basics.rb +34 -0
- data/lib/diakonos/functions/bookmarking.rb +61 -0
- data/lib/diakonos/functions/buffers.rb +491 -0
- data/lib/diakonos/functions/clipboard.rb +70 -0
- data/lib/diakonos/functions/cursor.rb +264 -0
- data/lib/diakonos/functions/grepping.rb +83 -0
- data/lib/diakonos/functions/indentation.rb +71 -0
- data/lib/diakonos/functions/readline.rb +93 -0
- data/lib/diakonos/functions/search.rb +179 -0
- data/lib/diakonos/functions/selection.rb +98 -0
- data/lib/diakonos/functions/sessions.rb +78 -0
- data/lib/diakonos/functions/shell.rb +250 -0
- data/lib/diakonos/functions/tags.rb +65 -0
- data/lib/diakonos/functions/text-manipulation.rb +196 -0
- data/lib/diakonos/functions-deprecated.rb +77 -0
- data/lib/diakonos/functions.rb +292 -0
- data/lib/diakonos/grep.rb +98 -0
- data/lib/diakonos/help.rb +47 -0
- data/lib/diakonos/hooks.rb +13 -0
- data/lib/diakonos/installation.rb +19 -0
- data/lib/diakonos/interaction-handler.rb +216 -0
- data/lib/diakonos/interaction.rb +52 -0
- data/lib/diakonos/key-map.rb +62 -0
- data/lib/diakonos/keying.rb +442 -0
- data/lib/diakonos/line-mover.rb +42 -0
- data/lib/diakonos/list.rb +59 -0
- data/lib/diakonos/logging.rb +27 -0
- data/lib/diakonos/mode.rb +17 -0
- data/lib/diakonos/mouse.rb +18 -0
- data/lib/diakonos/number-fitter.rb +11 -0
- data/lib/diakonos/range.rb +31 -0
- data/lib/diakonos/readline/functions.rb +82 -0
- data/lib/diakonos/readline.rb +223 -0
- data/lib/diakonos/search.rb +58 -0
- data/lib/diakonos/sessions.rb +257 -0
- data/lib/diakonos/sized-array.rb +48 -0
- data/lib/diakonos/text-mark.rb +19 -0
- data/lib/diakonos/vendor/fuzzy_file_finder.rb +386 -0
- data/lib/diakonos/version.rb +25 -0
- data/lib/diakonos/window.rb +43 -0
- data/lib/diakonos.rb +592 -0
- metadata +160 -68
data/help/about-help.dhf
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
# Diakonos Help
|
2
|
+
|
3
|
+
Welcome to the Diakonos help system! To learn more about how to use Diakonos,
|
4
|
+
type in some keywords as if you were searching the Internet. Diakonos will
|
5
|
+
show the titles of matching help documents. Use the arrow keys to choose a
|
6
|
+
document, and press Enter to read it.
|
7
|
+
|
8
|
+
If you're not sure what keywords to type, you can type a partial word and
|
9
|
+
press <Tab> to see a list of tags that start with what you typed. Or,
|
10
|
+
advanced users can prefix the search with a slash (/) and a full-document,
|
11
|
+
regular expression search will be performed. Type a slash by itself to see a
|
12
|
+
list of all help documents.
|
13
|
+
|
14
|
+
The documentation is written using the default key chords and sequences. As
|
15
|
+
such, please be aware that the documentation may not correspond to your
|
16
|
+
actual setup if the keyboard configuration has been changed (by you, or
|
17
|
+
someone else, such as a system administrator).
|
18
|
+
|
19
|
+
When you are finished reading a document, close it with the close file key
|
20
|
+
chord, <Ctrl-W>.
|
21
|
+
|
22
|
+
To abort your search for help and close the help system, press <Esc> twice.
|
23
|
+
|
24
|
+
## Diakonos Help Files
|
25
|
+
|
26
|
+
The help documents are normal files, and are opened just like other files in
|
27
|
+
Diakonos. You can copy code examples and configuration lines out of them
|
28
|
+
and paste them in other buffers. You can even create your own files (with a
|
29
|
+
.dhf extension) and place them alongside the default help files.
|
30
|
+
|
31
|
+
Tags: diakonos help usage support
|
data/help/clipboard.dhf
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
# The Clipboard
|
2
|
+
|
3
|
+
To select text, press <Ctrl-space>. This marks (or "anchors") one end of the
|
4
|
+
text you wish to select. Use any movement keys (such as the arrow keys) to move the
|
5
|
+
cursor to the other end of the text you wish to select. As you do so, you will see
|
6
|
+
the selection grow, being highlighted in a different colour. To work with the
|
7
|
+
selection, press one of the following key chords:
|
8
|
+
|
9
|
+
<Ctrl-C> to copy
|
10
|
+
<Ctrl-X> to cut
|
11
|
+
<Ctrl-V> to paste
|
12
|
+
<Alt-U> to unselect the text
|
13
|
+
|
14
|
+
Diakonos also lets you cut one or more lines of text without needing to
|
15
|
+
delineate a selection. Pressing <Ctrl-K> once cuts the current line and
|
16
|
+
places it in the clipboard. You can press <Ctrl-K> more times to cut and add
|
17
|
+
more lines.
|
18
|
+
|
19
|
+
<Ctrl-Alt-K> will cut from the cursor to the end of the current line.
|
20
|
+
|
21
|
+
Diakonos also supports synchronization with Klipper, the KDE clipboard
|
22
|
+
manager. This requires DCOP to be installed. Uncomment the indicated line
|
23
|
+
in the configuration file. Alternatively, synchronization with the X
|
24
|
+
clipboard can be accomplished with xclip (third-party software). Uncomment
|
25
|
+
the xclip line for xclip usage.
|
26
|
+
|
27
|
+
## Block Selection
|
28
|
+
|
29
|
+
Diakonos supports block selection. This allows you to select and work with
|
30
|
+
rectangular highlighted areas instead of selecting text the usual way (as a
|
31
|
+
left-to-right flow of characters).
|
32
|
+
|
33
|
+
To change to block selection mode, press <Alt-Shift-M,B>. The status line will
|
34
|
+
indicate "block" mode. To change to normal selection mode, press
|
35
|
+
<Alt-Shift-M,N>. Mnemonic: M for Mark, B for Block, N for Normal.
|
36
|
+
|
37
|
+
## Advanced Selection
|
38
|
+
|
39
|
+
Press <Alt-space> to select the current code block. That is, the lines which
|
40
|
+
are at the same depth of indentation as the current line. Press <Alt-space>
|
41
|
+
more times to select each successive parent block (i.e., lines at shallower
|
42
|
+
levels of indentation).
|
43
|
+
|
44
|
+
|
45
|
+
Tags: clipboard copy cut paste kde klipper dcop select selecting selection selected unselect unselecting mark marking highlight eol line block column
|
data/help/close-file.dhf
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
# Code Block Navigation
|
2
|
+
|
3
|
+
Using <Ctrl-PageDown>, you can jump to the next code block of the same
|
4
|
+
indentation level as the current line. <Ctrl-PageUp> goes back in the opposite
|
5
|
+
direction (up or previous block). You might use this to easily browse: the
|
6
|
+
methods of a class; or the different 'when' clauses of a Ruby case expression; or
|
7
|
+
the components of an if-elsif-else tree; or the rules of a CSS stylesheet; and
|
8
|
+
so on. Diakonos will automatically limit the extent of the navigation, so if
|
9
|
+
you start your browsing within an if-elsif tree, your cursor won't jump outside
|
10
|
+
that tree if you press <Ctrl-PageDown> too many times.
|
11
|
+
|
12
|
+
<Alt-PageDown> brings the cursor one block level deeper; <Alt-PageUp> brings
|
13
|
+
you out one level.
|
14
|
+
|
15
|
+
|
16
|
+
Tags: code block navigation navigate move moving movement jump jumping cursor
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# Column Markers
|
2
|
+
|
3
|
+
You can define column markers using the view.column_markers.* settings. You
|
4
|
+
might use a column marker as a visual cue to help you not exceed a certain line
|
5
|
+
length. You can set up as many column markers as you like.
|
6
|
+
|
7
|
+
## Example of a column marker
|
8
|
+
|
9
|
+
view.column_markers.margin.column 80
|
10
|
+
view.column_markers.margin.format 9
|
11
|
+
|
12
|
+
Adding these lines to your configuration would set up a column marker named
|
13
|
+
'margin'. The name 'margin' is arbitrary; use whatever string you want for your
|
14
|
+
markers. The 'margin' marker would highlight the 80th column using the format
|
15
|
+
code 9 (white on red in the default 16-colour configuration).
|
data/help/config.dhf
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
# Configuring Diakonos
|
2
|
+
|
3
|
+
## Personal configuration
|
4
|
+
|
5
|
+
Press <F12> to open your personal Diakonos configuration file, which is
|
6
|
+
~/.diakonos/diakonos.conf . Read the comments in the file for information on
|
7
|
+
the individual settings. Edit the file as you like. When you save the file,
|
8
|
+
your changes take effect immediately in your current session.
|
9
|
+
|
10
|
+
Your personal configuration remains separate from the system-wide
|
11
|
+
configuration, located elsewhere. Your personal settings take precedence over
|
12
|
+
system configuration where there is any difference or discrepancy.
|
13
|
+
|
14
|
+
## Saving configuration changes
|
15
|
+
|
16
|
+
Since configuring Diakonos is nothing but editing and saving the configuration
|
17
|
+
file, to stop configuring, simply switch buffers or close the configuration
|
18
|
+
file (with <Ctrl-W>).
|
19
|
+
|
20
|
+
## Configuration file format
|
21
|
+
|
22
|
+
Each line in the configuration file has a setting identifier and the value of
|
23
|
+
the setting, for example:
|
24
|
+
|
25
|
+
lang.text.format.default white
|
26
|
+
|
27
|
+
The identifier and the value are separated by one or more spaces.
|
28
|
+
Previous versions of Diakonos used a semicolon to separate; this is still
|
29
|
+
permitted, but may not be in future versions.
|
30
|
+
|
31
|
+
Comments can be placed in the file by starting a line with an octothorpe
|
32
|
+
character (#).
|
33
|
+
|
34
|
+
## Including other configuration files
|
35
|
+
|
36
|
+
You can create and include custom configuration files which remain distinct
|
37
|
+
from your standard default configuration file. You can place these files
|
38
|
+
wherever you like, but it is recommended to put them in ~/.diakonos. Then,
|
39
|
+
place a line like this at the bottom of the default configuration file:
|
40
|
+
|
41
|
+
include ~/.diakonos/extra.conf
|
42
|
+
|
43
|
+
If a setting is specified again (whether in the same file, or an included
|
44
|
+
file), it overrides the previous setting given higher up in the configuration
|
45
|
+
file(s). Note that editing and saving custom configuration files which reside
|
46
|
+
outside of ~/.diakonos will not cause the changes to be automatically loaded
|
47
|
+
like they are with configuration files in ~/.diakonos. To reload all
|
48
|
+
configuration files, quit and restart Diakonos, or press <Shift-F2> and type
|
49
|
+
"load_configuration".
|
50
|
+
|
51
|
+
## Configuration inheritance
|
52
|
+
|
53
|
+
Configuration settings can be inherited (cascaded). Simply use an equals sign
|
54
|
+
(=) to set one setting to the value of another.
|
55
|
+
|
56
|
+
one.setting = another.setting
|
57
|
+
|
58
|
+
For an example, have a look at the Ruby language definition in the default
|
59
|
+
configuration file. See how the shared settings are defined earlier in the
|
60
|
+
file, then used later on in the Ruby language configuration.
|
61
|
+
|
62
|
+
Inheritance will work for any setting, not just formatting. The important
|
63
|
+
thing to remember is that Diakonos will parse configuration files top to
|
64
|
+
bottom, and visit each included file in the order the include directives are
|
65
|
+
encountered, with a depth-first strategy. So you should define ancestor
|
66
|
+
settings before descendant settings.
|
67
|
+
|
68
|
+
|
69
|
+
Tags: diakonos config configure configuration configuring setup setting settings options option preferences
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# The Cursor Stack
|
2
|
+
|
3
|
+
The cursor stack is just like the Back and Forward functionality of your web
|
4
|
+
browser. Diakonos semi-intelligently keeps track of the places where you do
|
5
|
+
work. Using the cursorReturn command (<Ctrl-J>), you can return to previous
|
6
|
+
work areas. Use <Ctrl-L> to go forward through the stack.
|
7
|
+
|
8
|
+
Here is an example of a common scenario:
|
9
|
+
|
10
|
+
1. you are editing in some location
|
11
|
+
2. you need to examine some other code (such as the definition of a method)
|
12
|
+
elsewhere in the file
|
13
|
+
3. you page through the file, or search for text
|
14
|
+
4. after examining the code there, possibly copying material to the clipboard,
|
15
|
+
5. you press <Ctrl-J> and return to the exact location you were working in prior
|
16
|
+
to your search
|
17
|
+
|
18
|
+
|
19
|
+
Tags: cursor stack move movement jump jumping moving remember previous position next back forward browser web bookmark bookmarks bookmarking webbrowser page file search return clipboard
|
data/help/delete.dhf
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
# Deleting Text
|
2
|
+
|
3
|
+
## Common Deletion
|
4
|
+
|
5
|
+
Diakonos behaves just as you would expect when you press <Delete> or
|
6
|
+
<Backspace>; they delete the current and previous character respectively.
|
7
|
+
|
8
|
+
When text is selected, pressing <Delete> or <Backspace> will delete the
|
9
|
+
selected text. Selecting text and then typing (or pasting) will also delete
|
10
|
+
the selected text (and then process what was typed or pasted).
|
11
|
+
|
12
|
+
## Deleting a Line
|
13
|
+
|
14
|
+
<Ctrl-K> will delete the current line, regardless of where on the line the
|
15
|
+
cursor is.
|
16
|
+
|
17
|
+
## Deleting Part of a Line
|
18
|
+
|
19
|
+
<Ctrl-Alt-K> will delete all the text from the cursor to the end of the current
|
20
|
+
line.
|
21
|
+
|
22
|
+
You can delete from the cursor up to a certain character by pressing <Ctrl-D-T>
|
23
|
+
(mnemonic: "Delete Till"). Diakonos will prompt you for a character, and then
|
24
|
+
delete everything from the cursor to the first instance of that character to
|
25
|
+
the right of the cursor. For example, pressing <Ctrl-D-T-.> will delete up to
|
26
|
+
the next period.
|
27
|
+
|
28
|
+
You can delete all text in between a pair of the same character by pressing
|
29
|
+
<Ctrl-D-I> (mnemonic: "Delete Inside" or "Delete In Between"). Diakonos will
|
30
|
+
prompt you for a character, and then delete between the closest pair of that
|
31
|
+
character. For example, situating the cursor inside a string inside some
|
32
|
+
source code, then pressing <Ctrl-D-I-"> will deleted the contents of the
|
33
|
+
string. That is:
|
34
|
+
|
35
|
+
my_string = "this is a string"
|
36
|
+
|
37
|
+
would become
|
38
|
+
|
39
|
+
my_string = ""
|
40
|
+
|
41
|
+
Tags: delete deleting text deletion remove removal removing line
|
data/help/extensions.dhf
ADDED
@@ -0,0 +1,125 @@
|
|
1
|
+
# Extending Diakonos
|
2
|
+
|
3
|
+
Diakonos has a simple but powerful extension system. Extensions are written in
|
4
|
+
Ruby (http://www.ruby-lang.org).
|
5
|
+
|
6
|
+
|
7
|
+
## Installing and Uninstalling Extensions
|
8
|
+
|
9
|
+
### Unpack/Clone
|
10
|
+
|
11
|
+
Extensions are installed in ~/.diakonos/extensions/. Each extension should
|
12
|
+
have its own subdirectory under there. Extension tarballs or repository clones
|
13
|
+
should be unpacked or cloned under there.
|
14
|
+
|
15
|
+
### Load
|
16
|
+
|
17
|
+
Once an extension is installed into ~/.diakonos/extensions/, you activate it
|
18
|
+
by adding a command to your configuration:
|
19
|
+
|
20
|
+
load_extension name_of_the_extension
|
21
|
+
|
22
|
+
Diakonos will load extensions at startup, and will reload extensions whenever
|
23
|
+
the Diakonos configuration is updated.
|
24
|
+
|
25
|
+
### Unload
|
26
|
+
|
27
|
+
To deactivate an extension, simply remove (or comment out) all load_extension
|
28
|
+
directives from your configuration which load the extension.
|
29
|
+
|
30
|
+
### Uninstall
|
31
|
+
|
32
|
+
Extensions can be removed cleanly by deleting the extension's subdirectory out
|
33
|
+
of ~/.diakonos/extensions/.
|
34
|
+
|
35
|
+
|
36
|
+
## Extension Format
|
37
|
+
|
38
|
+
### Directory Structure
|
39
|
+
|
40
|
+
A Diakonos extension consists of a directory (or directory tree) of files:
|
41
|
+
|
42
|
+
info.yaml
|
43
|
+
*.conf
|
44
|
+
*.rb
|
45
|
+
|
46
|
+
The simplest extension will have nothing but an info.yaml file. This "empty"
|
47
|
+
extension will do nothing useful, though, of course.
|
48
|
+
|
49
|
+
Diakonos will parse and load all configuration files (*.conf) in the root of
|
50
|
+
the extension's directory. All Ruby files (*.rb) found in the extension's
|
51
|
+
directory, or any subdirectory underneath it, are loaded and executed at
|
52
|
+
startup, and on configuration change. Typically, an extension will only have
|
53
|
+
one configuration file, but it may have any number of Ruby files.
|
54
|
+
|
55
|
+
### Information File
|
56
|
+
|
57
|
+
To be valid, an extension must have a properly-formatted info.yaml file. As
|
58
|
+
the filename suggests, info.yaml is a YAML file. It consists of several keys,
|
59
|
+
and a few arrays, described below.
|
60
|
+
|
61
|
+
The diakonos key is required. It is strongly recommended to have name, uris
|
62
|
+
and version keys. The other keys are optional.
|
63
|
+
|
64
|
+
name: (recommended) The name of the extension.
|
65
|
+
|
66
|
+
description: (optional) A brief, one-line description of the extension.
|
67
|
+
|
68
|
+
author: (optional) Several subkeys provide information about the extension's author.
|
69
|
+
name: The author's name or nickname.
|
70
|
+
email: The author's email address.
|
71
|
+
uri: A URI associated with the author. This might be a homepage, or a blog.
|
72
|
+
|
73
|
+
version: (recommended) The version of the extension.
|
74
|
+
|
75
|
+
uris: (recommended)
|
76
|
+
homepage: The website giving more information about the extension.
|
77
|
+
repository: The URI of the extension's source code repository. This should
|
78
|
+
be a URI that can be used with version control software, and so might
|
79
|
+
begin with "svn://" or "git://".
|
80
|
+
|
81
|
+
licence: (optional) The licence of the extension's source code.
|
82
|
+
|
83
|
+
requirements: (required) Several subkeys tell diakonos about what versions of
|
84
|
+
things the extension works with.
|
85
|
+
diakonos: (required) Several subkeys tell Diakonos about what versions of
|
86
|
+
Diakonos the extension works with.
|
87
|
+
minimum: The minimum version of Diakonos required for the extension to
|
88
|
+
function properly.
|
89
|
+
tested: A list of Diakonos versions which the extension is known to run
|
90
|
+
under.
|
91
|
+
gems: (optional) If the extension needs any gems to function, they should be
|
92
|
+
listed here, with their minimum and tested versions given.
|
93
|
+
|
94
|
+
notes: (optional) Longer text describing the extension, its capabilities and
|
95
|
+
its usage. For multiple paragraphs, use the YAML syntax "notes: >", and
|
96
|
+
indent the paragraphs to the same level.
|
97
|
+
|
98
|
+
|
99
|
+
## Extension Code
|
100
|
+
|
101
|
+
Extension code is any valid Ruby code. See
|
102
|
+
http://rdoc.info/projects/Pistos/diakonos
|
103
|
+
for source code documentation for Diakonos, and
|
104
|
+
http://github.com/Pistos/diakonos/tree/master/extensions/dk-hello-world
|
105
|
+
for an example of an extension.
|
106
|
+
|
107
|
+
To have code execute on keypress, define a method in the Diakonos::Functions
|
108
|
+
module. All methods in Diakonos::Functions are exposed to the keying system,
|
109
|
+
any method name can be referred to by the key directive in configuration files.
|
110
|
+
|
111
|
+
Methods of Diakonos::Functions are run within the context of the main
|
112
|
+
::Diakonos::Diakonos object. In this context, you get access to all of the
|
113
|
+
instance variables. Some variables of note:
|
114
|
+
|
115
|
+
@current_buffer
|
116
|
+
@diakonos_home String containing the user's Diakonos dir (usually ~/.diakonos)
|
117
|
+
@buffers A BufferHash holding all the open buffers
|
118
|
+
@status_vars
|
119
|
+
@settings A Hash containing all settings from all configuration files
|
120
|
+
|
121
|
+
When not within a method of Diakonos::Functions, main ::Diakonos::Diakonos
|
122
|
+
object can be referred to by using the global variable $diakonos.
|
123
|
+
|
124
|
+
|
125
|
+
Tags: script scripts scripting program programming language ruby extend extension extensions plugin plug-in plugins plug-ins addon addons add-on add-ons package packages format layout structure load loading unload unloading activate deactivate activating deactivating install installing installation
|
data/help/file-type.dhf
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# File Type
|
2
|
+
|
3
|
+
The language (or type) of a file is shown in the status bar between
|
4
|
+
parentheses. For example, the file type of this help document is "dhf".
|
5
|
+
|
6
|
+
Diakonos can usually guess a file's language correctly. To do so, it
|
7
|
+
considers the filename and, if present, the "bang" line at the top of the
|
8
|
+
file. The bang line takes precedence over the filename.
|
9
|
+
|
10
|
+
If Diakonos was wrong in its automatic determination of the file type, you can
|
11
|
+
force it to assume a certain file type by pressing <Alt-Shift-T> and typing in
|
12
|
+
the file type (e.g. java, ruby, html, xml, and so on).
|
13
|
+
|
14
|
+
The configuration settings (available by pressing <F12>) which affect
|
15
|
+
Diakonos' guessing are a language's filemask and bangmask settings. These
|
16
|
+
settings are regular expressions. For example:
|
17
|
+
|
18
|
+
lang.perl.filemask \.(?:pl|pm)$
|
19
|
+
lang.perl.bangmask perl
|
20
|
+
|
21
|
+
These configuration lines tell Diakonos to think a file is a Perl file if its
|
22
|
+
extension is .pl or .pm, or if the bang line has the word "perl" in it.
|
23
|
+
|
24
|
+
Tags: file files lang language languages programming type mode types modes
|
@@ -0,0 +1,127 @@
|
|
1
|
+
# Key Mapping
|
2
|
+
|
3
|
+
## Executive Summary
|
4
|
+
|
5
|
+
<Alt-Shift-K> key mapping exploration mode
|
6
|
+
<Alt-K> key printing mode
|
7
|
+
<F12> edit configuration file
|
8
|
+
|
9
|
+
Example configuration line:
|
10
|
+
|
11
|
+
key alt+b alt+! addNamedBookmark 1
|
12
|
+
|
13
|
+
## Customizing the Diakonos key mapping
|
14
|
+
|
15
|
+
Diakonos' key mapping is extremely customizable. You can map any Diakonos
|
16
|
+
function to nearly any key chord or key sequence (as long as your terminal
|
17
|
+
can produce the chord or sequence).
|
18
|
+
|
19
|
+
To change the key mapping for a function, or to change the function mapped to
|
20
|
+
a key mapping, you need to know what function you want performed, and what key
|
21
|
+
chord or sequence you want to press in order to perform that function.
|
22
|
+
Diakonos can help you determine these.
|
23
|
+
|
24
|
+
## What does this key do?
|
25
|
+
|
26
|
+
Press <Alt-Shift-K> and Diakonos will enter a special mode. In this mode, any
|
27
|
+
key chord or sequence you press will make Diakonos report the function (and
|
28
|
+
any function arguments) which are mapped to what you pressed. Try it now!
|
29
|
+
When you are finished exploring, press <Enter> to exit the key mapping
|
30
|
+
exploration mode.
|
31
|
+
|
32
|
+
Here is an example of what the key exploration mode might display. This is
|
33
|
+
seen when you query what <Ctrl-S> does:
|
34
|
+
|
35
|
+
ctrl+s -> saveFile( )
|
36
|
+
|
37
|
+
This indicates that the keychord (ctrl+s) executes the saveFile function. The
|
38
|
+
empty parentheses tell us that the saveFile function is not given any
|
39
|
+
arguments.
|
40
|
+
|
41
|
+
It is worth noting that some keys or chords may have strange-looking key
|
42
|
+
sequences, depending on your terminal. For example, the <Home> key may not be
|
43
|
+
a single keycode, but rather a sequence, like "esc [ 1 ~". There's nothing
|
44
|
+
wrong with this, but you should be aware of it when customizing your keyboard
|
45
|
+
layout.
|
46
|
+
|
47
|
+
## What do I need to press to _____?
|
48
|
+
|
49
|
+
One way to determine the current key mapping for a given feature or function
|
50
|
+
is to press <F1> to enter the help system, and then type some search keywords
|
51
|
+
to search the help system for documentation describing the feature. All help
|
52
|
+
documents have relevant key mappings described. Once you determine the key
|
53
|
+
mapping for the function you're interested in, use <Alt-Shift-K> to get the
|
54
|
+
actual name of the function.
|
55
|
+
|
56
|
+
Not all features may be documented at this time, though. If you can't find
|
57
|
+
the key mapping for a function, the alternative is to open the configuration
|
58
|
+
file (with <F12>) and move down to the key configuration section. This
|
59
|
+
section has many lines starting with the word "key", such as these lines:
|
60
|
+
|
61
|
+
key left;cursorLeft
|
62
|
+
key esc [ D;cursorLeft
|
63
|
+
key right;cursorRight
|
64
|
+
key esc [ C;cursorRight
|
65
|
+
|
66
|
+
## How do I specify a keychord or sequence?
|
67
|
+
|
68
|
+
Diakonos has another built-in function to help you in mapping keys. Press
|
69
|
+
<Alt-K>, and Diakonos enters a key printing mode. In this mode, you can
|
70
|
+
press any sequence of keystrokes or key chords, and Diakonos will display
|
71
|
+
what string to use in the configuration file. Press <Enter> when you have
|
72
|
+
completed your sequence.
|
73
|
+
|
74
|
+
Here are a couple of examples.
|
75
|
+
|
76
|
+
If you press <Alt-K> and then <Ctrl-D> and <Enter>, it will print the string
|
77
|
+
"ctrl+d" into the current buffer.
|
78
|
+
|
79
|
+
If you press <Alt-K> and then <Alt-L> and <Home>, and press <Enter>, it will
|
80
|
+
print something like "esc l esc [ 1 ~" into the current buffer (the exact
|
81
|
+
string may vary depending on your terminal). Use these strings to configure
|
82
|
+
Diakonos' key mapping (see below).
|
83
|
+
|
84
|
+
## Setting a key mapping
|
85
|
+
|
86
|
+
Once you know the name of the function you want performed and the string for
|
87
|
+
the key mapping, press <F12> to edit the configuration file. Add a new key
|
88
|
+
mapping line to the key configuration area. It doesn't matter exactly where,
|
89
|
+
but you should try to keep your configuration file organized to make it easier
|
90
|
+
to adjust in the future. A key mapping line looks like this:
|
91
|
+
|
92
|
+
key alt+b alt+! addNamedBookmark 1
|
93
|
+
|
94
|
+
It has these components:
|
95
|
+
- the "key" configuration command
|
96
|
+
- one or more keystrokes or keychords, in order ("alt+b alt+!")
|
97
|
+
- two or more spaces
|
98
|
+
- the Diakonos function ("addNamedBookmark")
|
99
|
+
- any arguments to the function, separated by commas ("1")
|
100
|
+
|
101
|
+
For example, suppose you wanted to make the keychord <Alt-L> drop to the shell
|
102
|
+
and execute 'ls' and show the results. You would set this up with a new line
|
103
|
+
in the configuration file. Type 'key' and space:
|
104
|
+
|
105
|
+
key
|
106
|
+
|
107
|
+
then press <Alt-K>, <Alt-L> and <Enter> to print out the string Diakonos
|
108
|
+
expects for <Alt-L>. Your line will then be:
|
109
|
+
|
110
|
+
key esc l
|
111
|
+
|
112
|
+
Then add a few spaces, and the shell command. Your final line will be:
|
113
|
+
|
114
|
+
key esc l shell "ls"
|
115
|
+
|
116
|
+
Press <Ctrl-S> to save the configuration, and your new key mapping will be
|
117
|
+
ready for use. Try it!
|
118
|
+
|
119
|
+
## Unsetting a key mapping
|
120
|
+
|
121
|
+
If other configuration files (such as the system-wide one) are introducing a
|
122
|
+
key mapping that you want to unmap, simply configure the key to have no
|
123
|
+
function. For example:
|
124
|
+
|
125
|
+
key ctrl+g
|
126
|
+
|
127
|
+
Tags: key keys keyboard map mapping layout change config configure set different alternate function feature command unset unmap override shortcut shortcuts short cuts
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# Line Numbers
|
2
|
+
|
3
|
+
Diakonos indicates on the status line (at the bottom right of the screen) the
|
4
|
+
current line and column that the cursor is over. For example:
|
5
|
+
|
6
|
+
L 6/ 8 C13
|
7
|
+
|
8
|
+
means that the cursor is on the 13th column of the 6th line of a file which is
|
9
|
+
8 lines long.
|
10
|
+
|
11
|
+
## Showing line numbers
|
12
|
+
|
13
|
+
Default keychord <Alt-Shift-L> can be used to toggle line numbering on and
|
14
|
+
off. Line numbers appear in a left-side margin. Enable line numbering
|
15
|
+
permanently by setting view.line_numbers to true in your config. Set
|
16
|
+
view.line_numbers.width to the number of columns to use for the line numbering
|
17
|
+
margin. view.line_numbers.number_format is the setting to use to define a
|
18
|
+
sprintf format for the line numbers. Set the colour and brightness with
|
19
|
+
view.line_numbers.format.
|
20
|
+
|
21
|
+
|
22
|
+
Tags: line number numbers numbering sprintf format colour color config configuration set setting settings toggle show margin
|
data/help/macros.dhf
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
# Macro Recording and Playback
|
2
|
+
|
3
|
+
Diakonos has a macro system that allows you to record nearly any series of
|
4
|
+
commands and play them back. At the same time, advanced users may wish to
|
5
|
+
consider employing Diakonos' powerful Ruby scripting capabilities to leverage
|
6
|
+
their programming knowledge to manipulate text more directly.
|
7
|
+
|
8
|
+
## Recording a Macro
|
9
|
+
|
10
|
+
If necessary, move the cursor to the desired place before beginning to record.
|
11
|
+
Press <Alt-M> to begin recording a macro. Type any sequence of keystrokes or
|
12
|
+
keychords. When you are finished entering the sequence, press <Alt-M> again
|
13
|
+
to stop recording.
|
14
|
+
|
15
|
+
## Playing the Recorded Macro
|
16
|
+
|
17
|
+
After a macro is recorded, move the cursor to the spot where you wish to begin
|
18
|
+
executing the macro. Press <F4> to play the recorded macro.
|
19
|
+
|
20
|
+
## Saving Macros
|
21
|
+
|
22
|
+
Diakonos currently has no facility to save macros for future playback. If you
|
23
|
+
want this feature in Diakonos, please visit the Diakonos technical support
|
24
|
+
channel and voice your request.
|
25
|
+
|
26
|
+
|
27
|
+
Tags: macro macros record recording play playback playing script scripting key keys keystroke keystrokes command commands function functions
|
data/help/new-file.dhf
ADDED
data/help/open-file.dhf
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# Opening a File
|
2
|
+
|
3
|
+
Press <Ctrl-O> to open a file in Diakonos. You will be presented with a prompt
|
4
|
+
in which you can type in the path to the file you wish to open. When entering
|
5
|
+
a file path, you can use the <Tab> key to complete partial paths, just as you
|
6
|
+
can in your shell. Additionally, if a list of files is presented after
|
7
|
+
tab-completion, you can use the <Up> and <Down> arrow keys to select one of the
|
8
|
+
listed files, and press <Enter> to open the selected file.
|
9
|
+
|
10
|
+
You can also open files by passing one or more filenames as arguments to the
|
11
|
+
"diakonos" command. For example:
|
12
|
+
|
13
|
+
diakonos ~/.diakonos/diakonos.conf
|
14
|
+
|
15
|
+
Diakonos can also open all files in a directory tree matching a regular
|
16
|
+
expression, using the -m command line option:
|
17
|
+
|
18
|
+
cd ~/project
|
19
|
+
diakonos -m some_method_name
|
20
|
+
|
21
|
+
Tags: open opening file files new existing dir directory regex regexes regexen regexp regexps regular expression expressions match matching grep
|
data/help/quit.dhf
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
# Quitting Diakonos
|
2
|
+
|
3
|
+
To quit (close) the Diakonos text editor, press <Ctrl-Q>. If any open files
|
4
|
+
have unsaved modifications, you will be prompted about what further action you
|
5
|
+
would like to take.
|
6
|
+
|
7
|
+
Tags: quit quitting exit exitting leave leaving close closing
|
data/help/resizing.dhf
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
# Resizing Diakonos
|
2
|
+
|
3
|
+
In most cases, Diakonos can automatically detect when the wrapping terminal or
|
4
|
+
console changes size (due to a window resize or font change), and redraw
|
5
|
+
itself.
|
6
|
+
|
7
|
+
On some systems, however, Diakonos cannot handle a terminal resize. If your
|
8
|
+
system exhibits problems after resizing, try this bash command before starting
|
9
|
+
Diakonos:
|
10
|
+
|
11
|
+
shopt -s checkwinsize
|
12
|
+
|
13
|
+
Read more about the shopt built-in command here:
|
14
|
+
|
15
|
+
http://linux.about.com/library/cmd/blcmdl1_shopt.htm
|
16
|
+
|
17
|
+
Pressing <Ctrl-Alt-R> will force Diakonos to redraw itself.
|
18
|
+
|
19
|
+
Tags: bash size resize resizing window terminal console change draw redraw problem problems troubleshoot troubleshooting issue issues
|
data/help/ruby.dhf
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
# Ruby Compatibility
|
2
|
+
|
3
|
+
## Ruby 1.9
|
4
|
+
|
5
|
+
Usage to date has shown that Diakonos is fully compatible with Ruby 1.9.
|
6
|
+
There are no known problems. If you encounter any issues when running
|
7
|
+
Diakonos under Ruby 1.9, please report them in IRC or with the issue tracker.
|
8
|
+
|
9
|
+
## Ruby 1.8
|
10
|
+
|
11
|
+
Support for Ruby 1.8 was dropped as of Diakonos version 0.8.8.
|
12
|
+
0.8.9 is the last version of Diakonos to somewhat run under Ruby 1.8.
|
13
|
+
0.8.10+ are known not to run at all under Ruby 1.8.
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
Tags: ruby 1.9 1.8 19 18 compatible compatibility problems issues version
|
data/help/save-file.dhf
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
# Saving a File
|
2
|
+
|
3
|
+
Press <Ctrl-S> to save the current file. Press <Alt-Shift-S> to save the current
|
4
|
+
file under a different filename or path.
|
5
|
+
|
6
|
+
The strip_trailing_whitespace_on_save setting controls whether trailing
|
7
|
+
whitespace is removed from the lines of a file when a buffer is saved. The
|
8
|
+
default configuration has this setting turned on.
|
9
|
+
|
10
|
+
Tags: save saving file filename as save-as trailing white space whitespace
|