aboutsummaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)AuthorFilesLines
2013-02-22Windows (MinGW) compatibility fixes: suspending impossible and environment ↵Robin Haberkorn2-9/+10
initialization revised * g_get_environ() appears to be broken, at least in Wine and Win2k
2013-02-22VPATH build fixes: SciTECO can now be built from a parallel source treeRobin Haberkorn3-11/+13
...which is useful when crosscompiling for MinGW
2013-02-22updated TODO: Optimizations sectionRobin Haberkorn1-3/+7
2013-02-22removed unused Red-Black tree abstractionsRobin Haberkorn1-180/+0
they didn't work and weren't really necessary either
2013-02-22clean up QRegisterTable::insert|initialize usageRobin Haberkorn3-15/+13
* distinction no longer useful since string part of register is now never pre-initialized
2013-02-22clean up QRegister vs. Buffer redundancies using TECODocument classRobin Haberkorn7-88/+234
* also encapsulates data properly (previously there were many public attributes to avoid permission issues) * new class also cares about saving/and restoring scroll state. now, buffer/q-reg edits and temporary accesses do not reset the scroll state anymore.
2013-02-22clean up SciTECO bootstrapping by building convenience libraryRobin Haberkorn3-27/+33
* pkg-config LIBS should be added to $LIBS so that link order is correct
2013-02-22use preprocessor error if no interface has been selectedRobin Haberkorn1-0/+2
this is often because of a missing "config.h" include, but puzzles me every time...
2013-02-17made UndoStack::push_msg() inlineRobin Haberkorn2-8/+6
2013-02-16fixed commandline replacementsRobin Haberkorn1-15/+16
ensure that undo tokens for first differing characters are actually associated with this character instead of the next. (resulted in strange behaviour on rubout and subsequent replacements)
2013-02-16implemented command to query ASCII code of character (^^x)Robin Haberkorn2-0/+26
2013-02-16function key support (keys without printable representation) using keyboard ↵Robin Haberkorn4-8/+59
macros * if enabled, when a function key is pressed it is looked up in Q-Registers ^F... e.g. HOME key corresponds to register ^FHOME * the string if available is inserted as if it was entered by key-presses (later it may be entered as a single input token which may be removed in a single rubout) * only NCurses currently, key names directly correspond to Curses key names * on Curses if function keys are enabled ESCAPE will be inserted after a delay (because function keys are transmitted via escape sequences). A function key macro may be used to define an alternative escape character
2013-02-15install standard macros into special standard library path (pkgdatadir/lib)Robin Haberkorn9-12/+40
* SCITECOPATH environment variable defaults to this directory * manpage updated * default teco.ini updated: no need to generate it anymore
2013-02-14hide some implementation details in MicroStateMachinesRobin Haberkorn3-19/+20
2013-02-14initialize global Q-Registers (beginning with $) with environment variablesRobin Haberkorn1-0/+23
e.g. G{$HOME} will insert the HOME environment variable
2013-02-14updated TODORobin Haberkorn1-0/+2
2013-02-14updated TODO: long-q-reg names implementedRobin Haberkorn1-4/+2
2013-02-14undo q-register table initializations (insertions) on ruboutRobin Haberkorn2-1/+24
2013-02-14option for q-reg spec state machine to allocate (insert) new q-registersRobin Haberkorn3-9/+38
* enabled for all modifying Q-Reg commands
2013-02-14use Q-Register micro state machine when parsing Q-Reg spec in ↵Robin Haberkorn2-45/+39
string-building commands * allows referring to long Q-Register names in string arguments * currently, long names specified this way use their own string building char parsing (I'm unsure whether this makes any sense)
2013-02-14undo tokens for changing an object pointerRobin Haberkorn1-0/+40
will care about the eventual deletion of the object
2013-02-14micro state machine for Q-Register specifications: allow long Q-Reg namesRobin Haberkorn2-16/+100
syntax is as follows: ["."]("#" CHR1 CHR2 | "{" STRING_BUILDING "}" | CHR1) * the short one/two char names are turned upper case, while no case folding is performed on verbose names
2013-02-14rewritten string building state machine using a common MicroStateMachine ↵Robin Haberkorn2-125/+140
base class * uses label pointers instead of state-enum and switch case (both faster and shorter to write) * common interface for all micro state machines: makes them reusable
2013-02-11properly support <CTL/Z> suspension as immediate commandRobin Haberkorn1-0/+12
see comment: special handling of <CTL/Z> in terminal might be disabled, or commandline input might be in X11 window...
2013-02-11<CTL/U> immediate editing command to rubout current string paramRobin Haberkorn1-0/+9
when not in string-state, <CTL/U> is self inserting (unlike traditional TECO where it would clear your entire commandline)
2013-02-11fixup: word-rubout may rub out nothingRobin Haberkorn1-4/+3
2013-02-11States::is_string() to check whether current state is a string-stateRobin Haberkorn2-7/+14
2013-02-11support <CTRL/W> immediate editing command: depending on context, rub out ↵Robin Haberkorn1-0/+24
words or entire commands * when rubbing out words (in string params), use Scintilla's definition of a word
2013-02-11support <CNTRL/T> immediate editing command only in string parametersRobin Haberkorn1-31/+32
* fixes autocompletion at the beginning of string params * is also available in filename commands and would allow filename completion after string beginning * also did some editing command cleanup
2013-02-08updated TODORobin Haberkorn1-2/+13
2013-02-08fixed ring.current/QRegisters::current corruptionRobin Haberkorn3-8/+11
occurs when rubbing out a switch from q-reg string or to q-reg string
2013-02-08updated TODO: implemented "{" and "}" commandsRobin Haberkorn1-1/+0
2013-02-08reverse Execute::step() change: no need to pass parameters by referenceRobin Haberkorn3-6/+4
cmdline and cmdline_pos is no longer modified by code executed by step() instead it is modified at the outermost macro level (commandline macro level)
2013-02-08use special Q-Register $ (<ESC>) to hold the replacement commandlineRobin Haberkorn3-25/+20
* allows us to switch between buffers/registers when editing the commandline
2013-02-08delegate commandline replacements ("}") to the cmdline macro levelRobin Haberkorn5-60/+77
allows commandline editing scripted by macros
2013-02-03first draft of commandline-editing commands ({ and } as in VideoTECO)Robin Haberkorn5-28/+89
* simplified traditional commandline editing. no need to extend cmdline string one character at a time when inserting multiple. instead there's a marker (cmdline_pos) specifying the macro length to execute in a "step" and also the anchor for generating undo tokens * implementation does not yet work in macro calls * while editing the commandline, other buffers/registers may not be edited (need push-down-list and auxiliary q-register)
2013-02-03Merge branch 'master' of github.com:rhaberkorn/scitecoRobin Haberkorn12-24/+39
2013-02-01perform additional expansions on explicitly-specified Scintilla pathsRobin Haberkorn1-1/+3
a common ./configure parameter would be --with-scintilla=~/scintilla. however the calling shell will not expand tilde and the invoked shell will not automatically fully expand variables.
2013-02-01fixed buffer Ring initializationRobin Haberkorn10-21/+34
* there was a dependency on interface initialization. it did not cause issues because destruction order was by chance. * introduced INIT_PRIO and PRIO_* macros to easy initialization order declaration (using a PRIO_* formula makes code self-documenting) * also used this to clean up QRegisterTable initialization (we do not need the explicit initialize() method) * also used to clean up symbols initialization
2013-01-31fixed bootstrapping using sciteco-minimal and bootstrap autodetectionRobin Haberkorn2-2/+2
was broken due to untested changes
2013-01-29updated TODORobin Haberkorn1-0/+4
2013-01-29fixed backward search-and-kill (e.g. -FK...$)Robin Haberkorn1-9/+19
2013-01-27prevent creating Scintilla UNDO token when FD or FK failsRobin Haberkorn1-14/+22
rubout would undo something different and screw up editor state
2013-01-27added lexer configuration (syntax highlighting) for patches, Unix Shell and ↵Robin Haberkorn1-1/+73
Microsoft Batch
2013-01-27use actual binary directory for shebang example in manpageRobin Haberkorn2-1/+2
2013-01-27fixed scintilla symbol autocompletionRobin Haberkorn1-3/+3
do not accidentally overwrite the Scintilla (SCI_...) message symbol set
2013-01-27moved redundant code related to bootstrapping and teco-driven substitutions ↵Robin Haberkorn4-36/+21
into automake include (bootstrap.am)
2013-01-27moved manpage to doc/ subdirRobin Haberkorn5-7/+23
later there will be much more documentation
2013-01-27revised lexer configuration using SciTE property files and Textadept's ↵Robin Haberkorn5-100/+108
terminal color definitions * lexer config is now in separate file installed into the package data dir, so it can be excluded from the teco.ini template. * teco.ini is generated so it can load an installed lexer.tes as ED hook (can still be dropped into the user's home and will work immediately)
2013-01-23updated sciteco(1) manpage: document --eval optionRobin Haberkorn1-0/+9