aboutsummaryrefslogtreecommitdiff
path: root/editor.h
AgeCommit message (Collapse)AuthorFilesLines
2015-10-26vis: merge editor.c into vis.cMarc André Tanner1-339/+0
2015-10-25vis: clean up mark handlingMarc André Tanner1-2/+2
2015-10-25vis: convert jumplist navigation to proper motionsMarc André Tanner1-5/+0
2015-10-25vis: convert changelist navigation to proper motionsMarc André Tanner1-2/+3
2015-10-23vis: begin librarization of core vis primitivesMarc André Tanner1-0/+10
2015-10-22vis: remove config selection based on argv[0]Marc André Tanner1-7/+0
I would still like to experiment with a busybox style editor multiplexer which behaves like vi(m), emacs or nano depending on argv[0].
2015-10-22vis: remove yet more global state from motion functionsMarc André Tanner1-1/+1
2015-10-22vis: rename motion typeMarc André Tanner1-1/+1
2015-10-22vis: remove more global state from motion functionsMarc André Tanner1-1/+2
2015-10-22vis: pass editor instance to keyboard action functionsMarc André Tanner1-1/+1
2015-10-22vis: pass editor instance to command handling funcitonsMarc André Tanner1-1/+1
2015-10-22vis: pass editor instance to mode handling functionsMarc André Tanner1-4/+4
2015-10-22vis: refactor operator implementationMarc André Tanner1-1/+2
Pass editor instance and text to operate on as parameter instead of using global state.
2015-10-22vis: improve :help text, add separate status mode namesMarc André Tanner1-0/+2
2015-10-14vis: introduce special keys which allow mappings to editor actionsMarc André Tanner1-0/+3
Key bindings in vis are always recursive, hence mapping ~ to ~l will cause an infinite loop. Instead vis supports special editor "keys" which map to internal editor functions. As an example one can thus map ~ to <vis-operator-case-swap>l or even <vis-operator-case-swap><cursor-char-next> Furthermore this makes it possible to completely unmap core editor features such as operators, the corresponding funtionality is still available via its corresponding special key.
2015-10-14view: cleanup option handlingMarc André Tanner1-1/+0
2015-10-05vis: introduce keyboard actionsMarc André Tanner1-1/+8
This adds another level of indirection by defining keyboard actions which will likely eventually be used by a :map command.
2015-10-05vis: remove now unused common_prefix mode attributeMarc André Tanner1-1/+0
2015-10-05vis: add rudimentary support for key aliasesMarc André Tanner1-0/+1
This will eventually be exposed via a :map style command.
2015-10-05vis: change key binding function prototypesMarc André Tanner1-1/+3
The idea is to work more like a finite state machine. Every function gets an additional argument keys which holds the already read keyboard input. The return value of the functions should point to the first not consumed key. A return value of NULL indicates that more input is needed. The function will be called again from the editor core when more input is available. These changes are mostly mechanical and in many cases not optimal, they will be cleaned up in further commits.
2015-10-05vis: rework input handling using libtermkeyMarc André Tanner1-8/+9
Key bindings are now specified as symbolic key strings, this will eventually allow run time configurable key mappings. This introduces a bulid time dependency on libtermkey which can be found at: http://www.leonerd.org.uk/code/libtermkey/
2015-07-31vis: cleanup handling of charwise/linewise motionsMarc André Tanner1-2/+1
Also text objects in visual mode should now work better.
2015-07-28vis: pass cursor to operator implementationsMarc André Tanner1-0/+1
2015-07-26vis: add infrastructure to support multiple cursors/selectionsMarc André Tanner1-2/+1
This cleans up the existing selection handling code and adds the necessary bits to eventually support multiple cursors/selections. The cursor position is kept track of using marks, which means retrieving the cursor position is no longer a constant time operation. Furthermore the terminal cursor is no longer used, instead the whole window is redrawn after every cursor movement.
2015-07-21ui: further separate curses related user interface codeMarc André Tanner1-3/+2
By now ui-curses.[hc] are the only files dealing directly with curses related functions. Integration of a proper mainloop is still pending.
2015-07-19vis: handle file truncation more gracefullyMarc André Tanner1-0/+4
If we use the file / virtual memory system as cache (using mmap(2)) and another process truncates the file we are editing, we have a problem. All we can do is catch the resulting SIGBUS, close the corresponding window and print a warning message. To test this use: $ dd if=/dev/zero of=TEST bs=8M count=1 $ vis TEST :! echo TRUNCATE > TEST
2015-07-19text: move regex related functions to separate fileMarc André Tanner1-0/+1
Eventually this should probably be rewritten to use an iternal regex engine, currently it has unacceptable memory usage, it copies the whole text.
2015-07-11vis: rename struct member to avoid conflict with standard libraryMarc André Tanner1-1/+1
Closes #60
2015-07-09ui: move input handling code to ui specific filesMarc André Tanner1-5/+0
2015-07-06Warn when saving a file which has been changed outside the editorMarc André Tanner1-0/+1
2015-07-06text: remove text_load_fd and text_fd_getMarc André Tanner1-1/+1
2015-07-06Move filename from Text to FileMarc André Tanner1-2/+4
Also apply syntax rules every time the file name changes.
2015-06-30Cleanup insert/replace mode input handlingMarc André Tanner1-3/+3
View should only display the file content, but not modify it.
2015-05-17Filter command :!Marc André Tanner1-0/+2
If no range is given then stdin is passed through which allows interactive usage as in :!ls -1 *.c | slmenu For this to work the command needs to use stderr for its user interface and write any data for vis to stdout.
2015-05-16Release macro dataMarc André Tanner1-1/+3
2015-04-29Make operators return new cursor positionMarc André Tanner1-1/+1
2015-04-22Rename window.[ch] to view.[ch]Marc André Tanner1-2/+2
2015-04-22Yet more renames (EditorWin -> Win)Marc André Tanner1-17/+17
2015-04-22More renames, no functional changesMarc André Tanner1-3/+3
Win -> View, window_* -> view_*
2015-04-22More renaming vis->win->view instead of vis->win->winMarc André Tanner1-1/+1
2015-04-22Better variable naming (VisText -> File)Marc André Tanner1-7/+7
Therefore vis->win->text->data becomes vis->win->file->text.
2015-04-21Cleanup implementation of movements to marksMarc André Tanner1-4/+2
2015-04-21Implement ';' and ','Marc André Tanner1-0/+1
This fixes #45
2015-04-21Clean up to/till movementsMarc André Tanner1-1/+1
2015-04-11Eliminate global running variableMarc André Tanner1-0/+1
2015-04-11Remove global mode stateMarc André Tanner1-0/+3
Once again show mode in window status bar.
2015-04-11Move structs to editor.h remove global action{,_prev}Marc André Tanner1-0/+115
2015-04-11Eliminate global state for repetition of last modificationMarc André Tanner1-0/+1
2015-04-11Eliminate global state for :set optionsMarc André Tanner1-0/+1
2015-04-11Lazy initialization of :-commandsMarc André Tanner1-0/+2