summaryrefslogtreecommitdiff
path: root/view.h
AgeCommit message (Collapse)Author
2016-10-03vis: improve cursor positioning after scrollingMarc André Tanner
Make cursor placement after scrolling (half) pages up/down less arbitrary. Close #390, fix #391
2016-05-22vis: refactor status line handlingMarc André Tanner
Make window status bar content configurable via Lua.
2016-05-22vis: consider :set horizon setting when syntax highlightingMarc André Tanner
2016-05-22vis: move syntax highlighting to pure Lua codeMarc André Tanner
2016-05-22view: add functions to style a file rangeMarc André Tanner
2016-05-22ui: s/UiStyles/UiStyle/gMarc André Tanner
2016-05-04vis: clean up cursor column displayMarc André Tanner
2016-04-27view: change view_cursors_place to take 1 based column numberMarc André Tanner
This should fix inconsistency in the Lua API.
2016-04-19vis: add :set horizon optionDavid B. Lamkins
Can be used to specify the number of bytes before the visible area to consider for syntax highlighting. Defaults to 32K for now, whereas before it was 16K.
2016-04-15view: add view_cursors_place(cursor, line, col) functionMarc André Tanner
2016-04-15view: add view_cursors_col functionMarc André Tanner
2016-04-15view: add view_cursors_line functionMarc André Tanner
2016-04-13view: add view_cursors_new_force functionMarc André Tanner
To create a cursor even if there already exists one at the same position. Should only be used if all but one of the cursors will later be removed.
2016-04-08vis: indicate primary cursor number in status barMarc André Tanner
If there exist multiple cursors, [n/m] is added to the status bar. Meaning the n-th cursor out of the existing m cursors is currently the primary one.
2016-04-03view: add return value to view_cursors_disposeMarc André Tanner
indicating whether cursor could be removed
2016-03-30view: constify functions to manipulate selectionsMarc André Tanner
2016-03-28view: add infrastructure to iterate through cursor columnsMarc André Tanner
The number of columns i.e. maximal number of cursors located on the same line can be obtained by view_cursors_column_count. Column addressing is zero based, valid indexes are [0, max-1]. Assuming there is a cursor on every letter: a b c d e f g h i max column would be 3, and the following would iterate over the cursors forming the second column [c, e, h]: for (Cursor *c = view_cursors_column(view, 1); c; c = view_cursors_column_next(c, 1)) ...
2016-03-28view: change cursor creation API to take an initial positionMarc André Tanner
2016-03-12ui/view: general code cleanupMarc André Tanner
2016-03-10view: add query function for multiple cursorsMarc André Tanner
2016-03-10ui: make primary cursor blinkMarc André Tanner
2016-03-10view: clean up API functions related to primary cursor handlingMarc André Tanner
The currently visible display port is always adjusted in a way that the primary cursor is visible.
2016-02-18vis-lua: promote vis to a real objectMarc André Tanner
That is from now on use vis:method instead of vis.method
2016-02-17Display NUL bytes correctlyRichard Burke
2016-01-13view: introduce view_selection_getMarc André Tanner
It returns the range covered by the selection of the primary cursor.
2016-01-13Add -pedantic to debug CFLAGS and fix resulting warningsMarc André Tanner
2015-12-26vis: refactor Lua integrationMarc André Tanner
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-11-28view: remove ViewEvent infrastructureMarc André Tanner
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-28view: remove special treatment of tabs in cell matrixMarc André Tanner
2015-11-27vis: improve cursor alignment command <C-a>Marc André Tanner
2015-11-23view: fix cell placement of combining charactersMarc André Tanner
They now belong to the cell holding the corresponding regular (i.e. non-combining) character. This also means that at least in theory a cell could hold arbitrary amounts of data, in practice it is limited to 16 bytes.
2015-11-08Remove trailing white space from source filesMarc André Tanner
2015-11-08Delete now obsolete syntax.hMarc André Tanner
2015-11-08vis: implement :set colorcolumnMarc André Tanner
2015-11-08vis: factor out syntax highlighting codeMarc André Tanner
The view_draw function renders the text into the cells array and resyncs the cursor position. The syntax highlighting is applied in view_update, which also instructs the ui to update.
2015-11-08vis: experimental support for lua/lpeg based syntax highlightingMarc André Tanner
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é Tanner
2015-10-14view: cleanup whitespace replacement symbol handlingMarc André Tanner
2015-10-14view: cleanup option handlingMarc André Tanner
2015-08-06vis: implement gv to restore last selectionMarc André Tanner
2015-08-01view: hide API to free main cursorMarc André Tanner
2015-07-31vis: cleanup handling of charwise/linewise motionsMarc André Tanner
Also text objects in visual mode should now work better.
2015-07-28vis: use multiple cursor/selection infrastructureMarc André Tanner
This commits introduces the following keybindings, in normal mode: CTRL-N select word the cursor is currently over, switch to visual mode CTRL-P remove least recently added cursor ESC if a selection is active, clear it. Otherwise dispose all but the primary cursor. In visual mode: CTRL-N create new cursor and select next word matching current selection CTRL-X clear (skip) current selection, but select next matching word CTRL-P remove least recently added cursor
2015-07-28vis: ESC in normal mode clears all cursorsMarc André Tanner
2015-07-28vis: add per cursor registersMarc André Tanner
2015-07-26view: always fill out complete cell matrixMarc André Tanner
2015-07-26vis: add infrastructure to support multiple cursors/selectionsMarc André Tanner
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é Tanner
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-03Add :show command to display special symbols for whitespacesMarc André Tanner
Enable/disable by setting to 0/1 respectively: :set show spaces=0 tabs=0 newlines=1
2015-06-30Perform character prev/next movements based on Text not ViewMarc André Tanner
While it is slower, it allows to move to characters which are currently not visible. This will be handy when experimenting with multiple cursors.