aboutsummaryrefslogtreecommitdiff
path: root/vis-core.h
AgeCommit message (Collapse)AuthorFilesLines
2016-05-26vis: use normalized absolute file names as internal representationMarc André Tanner1-0/+3
Try to display a shorthand version in the status bar, this currently only works for files below the current working directory of the editor process.
2016-05-22vis-lua: do not report errors recursivelyMarc André Tanner1-0/+1
Displaying an error might create a new window which in turn can trigger new events (all other windows are resized+redrawn) which might again cause errors. There is still no sane way to exit the editor in this case, but at least the error messages should be readable.
2016-05-22vis: consider :set horizon setting when syntax highlightingMarc André Tanner1-0/+1
2016-05-22vis: move syntax highlighting to pure Lua codeMarc André Tanner1-0/+3
2016-05-10Revert "vis: clean up interaction between vis and ui"Marc André Tanner1-2/+0
This caused issues on OpenBSD where it crashed the terminal. Also on Mac OS X suspend via ^Z (Ctrl-Z) was missing a \r i.e. the shell prompt was not properly redrawn. While in principle user interfaces should not have to depend on libtermkey, in practice this won't be an issue unless we are adding a non-terminal based UI (which won't happen anytime soon). This reverts commit 8f92b98848f9366e78c7aa824615bade83971513. Close #311
2016-05-04vis: clean up interaction between vis and uiMarc André Tanner1-0/+2
A concrete user interface implementation should not have to depend on libtermkey. Therefore the vis core now uses an independent instance to parse keys.
2016-05-04vis: make j and k a linewise inclusive motionMarc André Tanner1-2/+3
They behave like an inclusive motion, but only if they are also linewise (which they are by default). This should make `yjp` and `ykp` yank both the current and the next/previous line when the cursor is at the start of a line. See also 532f52e9e52b98dc5749396f7353295418e0227a and #237
2016-05-01vis: further cleanup input handling, introduce vis_keys_feed APIMarc André Tanner1-0/+1
2016-04-21vis: add infrastructure to register custom :-commandsMarc André Tanner1-0/+1
2016-04-18vis: use internal file to show lua errorsMarc André Tanner1-0/+1
This means no event handlers are run for it, hence there is no chance for recursive errors.
2016-04-05vis: remove left over from :sam commandMarc André Tanner1-1/+0
2016-04-03sam: add infrastructure to support multi letter commandsMarc André Tanner1-0/+1
2016-03-13vis: convert gn and gN text objects to use "/ register contentMarc André Tanner1-1/+0
2016-02-25vis: use standard registers for macro recordingsMarc André Tanner1-2/+1
Also support upper case register to append to an existing macro.
2016-02-18Add infrastructure to register custom text object functionsMarc André Tanner1-0/+3
2016-02-18Add infrastructure to add custom motion functionsMarc André Tanner1-0/+4
A motion function can be registered with vis_motion_register(...) the returned id (if non negative) can then be used as an argument to vis_motion(...)
2016-02-18vis: add insfrastructure to support global key mappingsMarc André Tanner1-0/+1
Except for insert/replace mode keys get translated before any key bindings are evaluated. This is useful for non-english/latin keyboard layouts.
2016-02-12vis: respect window local mappings for child modesMarc André Tanner1-0/+1
Since commit 197ab824206335eab7ceed774ddeccac18fafc09 visual line and replace modes are child modes, hence we also have to consider the window local key bindings of their respective parent modes. For example in replace mode the key lookup chain is now as follows: window local replace mode -> global replace mode -> window local insert mode -> global insert mode This fixes <Enter> behaviour in prompt for replace and visual line modes.
2016-02-12Mark some tables as constMarc André Tanner1-3/+3
This allows them to be placed into the read only ELF section.
2016-02-11vis: add support for different kind of text objectsMarc André Tanner1-4/+6
Up until now text objects would only ever grow/expand if applied multiple times. The new SPLIT type allows text objects which cover a completely different range when applied with a count.
2016-01-30Cleanup register implementationMarc André Tanner1-0/+1
2016-01-30Improve Lua error reportingMarc André Tanner1-0/+1
Display Lua errors in a dedicated window/file. A typo or missing dependency (e.g. lpeg) in visrc.lua will no longer silently fail without any indication. The Lua integration in view.h is not yet converted.
2016-01-27vis: remove unused struct Mode member 'is_user'Marc André Tanner1-1/+0
2016-01-14vis: move prompt handling to separate fileMarc André Tanner1-0/+1
2016-01-14vis: more cleanupsMarc André Tanner1-3/+1
2016-01-14vis: s/moves/vis_motions/gMarc André Tanner1-4/+1
2016-01-14vis: s/ops/vis_operators/gMarc André Tanner1-1/+1
2016-01-14vis: s/VIS_MODE_LAST/VIS_MODE_INVALID/gMarc André Tanner1-2/+2
2016-01-14vis: move text object definitions to separate fileMarc André Tanner1-1/+2
2016-01-13Implement command/search prompt history as a regular fileMarc André Tanner1-3/+7
2016-01-13vis: add infrastructure to support per window key bindingsMarc André Tanner1-0/+1
2015-12-26vis: refactor Lua integrationMarc André Tanner1-0/+1
Lua support can now be disabled at compile time using: $ make CONFIG_LUA=0 This commit also adds an initial Lua API and provides a few default hooks. We now also require Lua >= 5.2 due to the uservalue constructs. In principle the same functionality could be implemented using function environments from Lua 5.1.
2015-12-26Initialize enum values to the public API onesSilvan Jegen1-2/+2
2015-11-28view: remove ViewEvent infrastructureMarc André Tanner1-1/+0
The only used event handler was used to update the '< and '> marks which is now taken care of by the leave handler of the visual modes.
2015-11-08Remove trailing white space from source filesMarc André Tanner1-1/+1
2015-11-08vis: experimental support for lua/lpeg based syntax highlightingMarc André Tanner1-0/+1
The lua based lexers are searched in the following order: $VIS_PATH/lexers $HOME/.vis/lexers /usr/share/vis/lexers followed by the standard lua package.path
2015-11-08vis: remove regex based syntax highlightingMarc André Tanner1-1/+0
2015-11-08vis: more comments and cleanupsMarc André Tanner1-61/+66
2015-11-07vis: prefix enum VisMotion values with VIS_Marc André Tanner1-1/+1
2015-11-07vis: prefix enum VisOperator values with VIS_Marc André Tanner1-2/+2
2015-11-07vis: API documentation and cleanupMarc André Tanner1-1/+2
2015-11-07vis: introduce vis_cancel APIMarc André Tanner1-1/+1
2015-11-07vis: move modes into separate fileMarc André Tanner1-0/+5
2015-11-07vis: move operators to separate fileMarc André Tanner1-0/+7
2015-11-07vis: move motions to separate fileMarc André Tanner1-0/+2
2015-11-07vis: move :-commands into their own fileMarc André Tanner1-0/+161