aboutsummaryrefslogtreecommitdiffhomepage
path: root/doc/sciteco.7.template
AgeCommit message (Collapse)AuthorFilesLines
2015-07-14mention ED register in the manual's Q-REGISTERS sectionRobin Haberkorn1-0/+7
* it's used opaquely by SciTECO so it should be listed in the overview of "special" Q-Registers.
2015-07-14programmable terminal color redefinition and theming SciTECO curses UI based ↵Robin Haberkorn1-0/+85
on Scintilla styles * The first 16 colors of the terminal palette can be redefined using the 3EJ property - with all restrictions that ncurses and UNIX terminals impose on us. It is still important to be able to redefine the palette for some color schemes like Solarized since it may be difficult for users to set up the terminal emulator's palette manually. Also when using PDCurses, setting the palette is port-specific or only possible using init_color(). In order to allow color redefinitions across all curses ports it makes sense if SciTECO gives access to the color initialization of curses even if it can guarantee very little about its semantics in general. * 3EJ is completely ignored for GTK+ * use the STYLE_DEFAULT of the current document to style the message line. Fg and bg colors are reversed to guarantee a good contrast to the Scintilla view. Errors are still hardcoded to a red background, warnings to yellow and info messages to green. This allows color-scheming more of SciTECO given that the red, yellow and green terminal colors are not changed fundamentally in the terminal's palette. * info line is now also styled using STYLE_DEFAULT (reverse colors). The Q-Register and buffer names are now written out using format_str() which means that control characters are written out in REVERSE just like in the command line. String::canonicalize_ctl() is still used to canonicalize window titles. * Command line is now modelled as a curses Pad and "blitted" to the command line window. This allowed simplification of the command line drawing code and introduction of format_str(). The command line is now styled according to STYLE_DEFAULT (original fg and bg colors). The rubbed-out part of the command line can now longer be shown in bold black - or even bold light black - since that is not visible in all color themes. Instead it is now only shown in bold. Command line theming problems will be gone once we use a Scintilla view for the command line. * The popup widget is now styled according to STYLE_CALLTIP. * This means that all relevant parts of SciTECO's user interface can now be themed. This allows the creation of themes that redefine the terminal palette radically (e.g. Solarized) and the creation of "bright" themes (e.g. Solarized/bright). * theming of the non-scintilla-view parts of SciTECO is currently unsupported on GTK+. The reason is that both the popup widget and command line widgets have to be rewritten completely in GTK+ and are work in progress, so adapting the current code would be a waste of time. * Added a manual section about the UI and theming.
2015-06-24added "^FCLOSE" function key macro and defined SIGTERM behaviourRobin Haberkorn1-0/+16
* ^FCLOSE is inserted when the "Close" key is pressed. It is used by the GTK+ UI to deliver window close requests and SIGTERM occurrences. (this replaces the "Break" key used before in the GTK+ UI). * The default action of ^FCLOSE is to quit SciTECO, therefore window closing is possible even in --no-profile mode for instance. * fixed a minor memleak in Cmdline::fnmacro() * added ^FCLOSE implementation to fnkeys.tes to insert EX. This currently has the disadvantage of overwriting the error message with syntax errors if there are modified buffers but it will at least not close the window if there are modified buffers. * SIGTERM will now be similar to SIGINT by default instead of terminating SciTECO right away. * the GTK+ UI handles SIGTERM by emulating the "close" key while still interrupting like SIGINT. * GTK+: SIGTERM and ^C will interrupt by sending SIGINT to the entire process group instead of simply setting `sigint_occurred`. This fixes interrupting EC and EG commands with long-running or hanging programs and is relevant to the solution of #4.
2015-06-22major Curses UI revision: initialize curses as late as possibleRobin Haberkorn1-3/+5
* relies on a patched version of Scinterm that allows you to construct Scintilla objects, send messages etc. before Curses is initialized. The Scintilla and Scinterm submodules have been updated. * This once and for all fixes batch mode and stdio redirections in batch mode on all Curses platforms and operating systems. * Fixes the ^C-does-not-interrupt bug on ncurses/UNIX. See #4. * On ncurses/UNIX we will still do a newterm()-initialization. This allows us to keep stdout/stderr alone in case they are redirected. This effectively allows redirecting SciTECO's output into a file even in interactive mode. ncurses/UNIX now behaves like, e.g. PDCurses/win32a and GTK+ in this regard. * Curses environment variable handling fixed. The environment registers are exported into the process environment so that Curses environment variables can be set/modified by the SciTECO profile. * Use term.h for accessing terminfo now. Explained set_window_title() limitations. * fixed interruption via SIGINT. If the UI is waiting for user input, SIGINT is effectively ignored instead of letting the next character fail always. * Updated sciteco(1) and sciteco(7): More options, environment variables and signals documented. Also rewritten DESCRIPTION section (different modes of operation).
2015-06-14handle environment variables more consistentlyRobin Haberkorn1-10/+41
* the registers beginning with "$" are exported into sub-process environments. Therefore macros can now modify the environment (variables) of commands executed via EC/EG. A variable can be modified temporarily, e.g.: [[$FOO] ^U[$FOO]bar$ EC...$ ][$FOO] * SciTECO accesses the global environment registers instead of using g_getenv(). Therefore now, tilde-expansion will always use the current value of the "$HOME" register. Previously, both register and environment variable could diverge. * This effectively fully maps the process environment to a subset of Q-Registers beginning with "$". * This hasn't been implemented by mapping those registers to special implementations that updates the process environment directly, since g_setenv() is non-thread-safe on UNIX and we're expected to have threads soon - at least in the GTK+ UI.
2015-06-12support UNIX-shell-like tilde-expansions in file names and directoriesRobin Haberkorn1-9/+73
* expands to the value of $HOME (the env variable instead of the register which currently makes a slight difference). * supported for tab-completions * supported for all file-name accepting commands. The expansion is done centrally in StateExpectFile::done(). A new virtual method StateExpectFile::got_file() has been introduced to pass the expanded/processed file name to command implementations. * sciteco(7) has been updated: There is now a separate section on file name arguments and file name handling in SciTECO. This information is important but has been scattered across the document previously. * optimized is_glob_pattern() in glob.h
2015-06-02throw error when trying to set or append the string part of "*" and ↵Robin Haberkorn1-0/+2
appending to "$" * these operations are unsupported and there is no benefit in ignoring them silently. It only confused the user.
2015-06-02added <FG> command and special Q-Register "$" to set and get the current ↵Robin Haberkorn1-0/+27
working directory * FG stands for "Folder Go" * FG behaves similar to a Unix shell `cd`. Without arguments, it changes to the $HOME directory. * The $HOME directory was previously only used by $SCITECOCONFIG on Unix. Now it is documented on its own, since the HOME directory should also be configurable on Windows - e.g. to adapt SciTECO to a MinGW or Cygwin installation. HOME is initialized just like the other environment variables. This also means that now, the $HOME Q-Register is always defined and can be used by platform-agnostic macros. * FG uses a new kind of tab-completion: for directories only. It would be annoying to complete the FG command after every directory, so this tab-completion does not close the command automatically. Theoretically, it would be possible to close the command after completing a directory with no subdirectories, but this is not supported currently. * Filename arguments are no longer completed with " " if {} escaping is in place as this brings no benefit. Instead no completion character is inserted for this escape mode. * "$" was mapped to the current directory to support an elegant way to insert/get the current directory. Also this allows the idiom "[$ FG...new_dir...$ ]$" for changing the current directory temporarily. * The Q-Register stack was extended to support restoring the string part of special Q-Registers (that overwrite the default functionality) when using the "[$" and "]$" commands. * fixed minor typos (american spelling)
2015-05-29Modified ^W in string (and file name) arguments: ensure that we always rub ↵Robin Haberkorn1-2/+2
out beyond empty arguments * it was annoying not to be able to rub out anything with ^W if the current string argument was empty. * Now, the special file name and string argument handling for ^W is effective only if the current argument is non-empty, else we fall back to the rub-out-command behaviour. * So now, if you press ^W in a string argument, it is rubbed out until empty and on the next ^W press, the entire command will be rubbed out.
2015-05-29support specialized ^W immediate editing command in file name argumentsRobin Haberkorn1-0/+17
* the rubout/reinsert-word behaviour of misc. string arguments is suboptimal for file name arguments as it depends on Scintilla's word characters. By default, the directory separators are not considered word characters, but this could be changed by the user. * The behaviour of ^W in file name arguments is now fixed and independant from the Scintilla configuration: It always rubs out or re-inserts one hierarchy level of the file name.
2015-05-25extended <EN> command and used it to optimize "lexer.test..." macrosRobin Haberkorn1-1/+3
* EN may now be used for matching file names (similar to fnmatch(3)). This is used to check the current buffers file extension in the lexer configuration macros instead of using expensive Q-Register manipulations. This halves the overall startup time - it is now acceptable even with the current amount of lexer configurations. * EN may now be used for checking file types. session.tes has been simplified. * BREAKS macro portability (EN now has 2 string arguments). * The Globber class has been extended to allow filtering of glob results by file type.
2015-03-16implemented function key masking (context-sensitive function key macros)Robin Haberkorn1-0/+33
* fnkeys.tes has been updated to enable the command line editing macros (cursor keys, etc.) only in the "start" state. This avoids the annoying effect of inserting the macros into string arguments where they have no effect and must be rubbed out again.
2015-03-16documented the automatic EOL translation featureRobin Haberkorn1-4/+55
2015-03-10added the <"I> conditional for checking a directory separatorRobin Haberkorn1-1/+12
* It is still useful to have this in macros since you may want to work with non-normalized file names. For instance, env variables (including $SCITECOPATH and $SCITECOCONFIG) may (and will probably) include backward-slash separators on Windows
2015-03-10always normalize directory separators to "/" in the "*" Q-RegisterRobin Haberkorn1-1/+9
* on Windows, this register contained backward slashes. This means that macros working with that register had to cope with both forward and backward slashes. * The file names are still displayed in the native style by the UI * This approach also has disadvantages: What if the user wants to insert the current file name somewhere where "\" is expected? However, this seems to be an unlikely case and the use can still replace the "/" with "\" again. * Avoid some virtual method calls in QRegisterBufferInfo
2015-03-07sciteco(7): Use em-dash (\[em]) characters instead of "-" in sentencesRobin Haberkorn1-6/+6
this looks better in Unicode terminals
2015-03-07Curses UI: fixed translation of the backspace keyRobin Haberkorn1-1/+5
* for historic reasons, the backspace key can be transmitted as ^H by the terminal. Some terminal emulators might do that - these are fixed by this commit. * Use CTL_KEY('H') instead of standard C '\b' as the former is less ambiguous given the confusion around the backspace character.
2015-03-02updated documentation: cover undo/redo, the new ^G editing command and ↵Robin Haberkorn1-13/+118
removal of ^T
2015-02-11implemented support for different indention stylesRobin Haberkorn1-1/+11
* the ^I command was altered to insert indention characters rather than plain tabs always. * The <TAB> immediate editing command was added for all insertion arguments (I, ^I but also FR and FS) * documentation was extended for a discussion of indention
2014-12-09support filename auto completions with forward-slash directory separators on ↵Robin Haberkorn1-0/+12
Windows * this is actually UNTESTED on Windows
2014-12-09Curses: support cycling through long lists of possible auto-completions and ↵Robin Haberkorn1-1/+9
optimized screen refreshing/redrawing * pressing e.g. TAB when the popup is showing a list of auto-completions will show the next page, eventually beginning at the first one again. * do not redraw curses windows in the UI methods directly. this resulted in flickering during command-line editing macros and ordinary macro calls because the physical screen was updated immediately. Instead, window refreshing and updated is done centrally in event_loop_iter() only after a key has been processed. Also we use wnoutrefresh() and doupdate() to send as little to the terminal (emulator) as possible.
2014-12-08do not show possible completions for hidden files and directoriesRobin Haberkorn1-1/+12
* added platform-dependant file_is_visible() function
2014-11-24implemented pQq and :Qq commandsRobin Haberkorn1-1/+1
2014-11-22allow setting the "*" register as an alternative to nEBRobin Haberkorn1-1/+18
this is more consistent with SciTECO's idea of abstract registers and allows the currend buffer to be saved on the Q-Register stack. This allows the idiom: [* ! ...change current buffer... ! ]*
2014-11-21updated documentation on ED (buffer editing) hooksRobin Haberkorn1-13/+56
2014-11-17updated sciteco(7): information on Scintilla views versus documentsRobin Haberkorn1-3/+30
2014-11-14added ^# (XOR) operatorRobin Haberkorn1-3/+6
also changed precedence of + operator (higher than minus). the effects of this should be minimal
2014-11-10support new "~" conditional: useful for implying default parameters in macrosRobin Haberkorn1-8/+27
2014-11-09documented EC and EG commandsRobin Haberkorn1-0/+3
2014-11-02changed syntax for long Q-Register names: use [] brackets instead of {}Robin Haberkorn1-4/+4
this breaks many existing scripts, and means you may have to rebuild SciTECO with ./configure --enable-bootstrap The syntax of SciTECO might change in backwards-incompatible until version 1.0 is released.
2013-03-19fixed minor Troff error: ".." is not allowedRobin Haberkorn1-1/+1
2013-03-17^E\ string building character to format numberRobin Haberkorn1-0/+7
* new Expressions::format() * may be used format numbers as part of arrays (Q-Register names)
2013-03-17document buffer editing hooks (ED hooks)Robin Haberkorn1-0/+51
2013-03-16written section about buffer ring in language manualRobin Haberkorn1-0/+37
2013-03-16explain caret-control-character equivalence for commands and no-ops in more ↵Robin Haberkorn1-1/+13
detail
2013-03-16wrote introduction (typographic conventions) for command referenceRobin Haberkorn1-0/+31
2013-03-16fixed spelling of Video TECORobin Haberkorn1-5/+6
2013-03-16written section about flow-control constructs in language reference manualRobin Haberkorn1-1/+185
2013-03-16wrote language reference sections about string building and pattern match ↵Robin Haberkorn1-1/+159
characters
2013-03-16manual chapters: Expressions, Command Syntax, Q-RegistersRobin Haberkorn1-0/+260
2013-03-16generate-docs: marker looks like a Troff request nowRobin Haberkorn1-1/+1
it is customary for Troff preprocessors to interpret special preprocessor requests instead of special comments
2013-03-16elaborate on auto-completions in sciteco(7)Robin Haberkorn1-0/+14
2013-03-16wrote introduction, key translation and immedite editing sections for ↵Robin Haberkorn1-0/+334
sciteco(7) manual * images are generated by grohtml. they are not listed in the Automake rules but instead all sciteco.*.png images are installed and cleaned
2013-03-16outline of remaining language referenceRobin Haberkorn1-0/+43
2013-03-16completed documentation of all commands in parser.cppRobin Haberkorn1-1/+21
* also updated sciteco(7): add SEE ALSO and AUTHORS
2013-03-16first draft of TECO command documentation generatorRobin Haberkorn1-0/+12
* the language reference is a manually written man-page template * containing special references for generated documentation (\#$...) * SciTECO script generate-docs.tes extracts TECO comments (/*$ ... */) from all source files and transforms them to Troff requests that are inserted into the document template. * TECO doc comments are a rather sophisticated markup: * first part until empty line is called header: simplified command syntax descriptions * the rest is called body: <identifier> is automatically underlined, empty lines generate new paragraphs, lines beginning with "-" or numbers denote an indented unordered or numbered list item. * regular Troff requests/macros can be used for more sophisticated markup * since Autoconf substitutions are performed on the generated man-page, @VARIABLEs@ may be used in doc comments as well