VI Surpassed ⇒ Visur
a powerful vim-like editor which extends vim to handle concepts that could only previously be handled well by a full integrated dev environment tool.
This application was generated using http://start.vertx.io
-
Quantums: Defines cursor boundaries and search scopes. Implementations include:
-
Character: Cursor moves one character at a time.
-
Regex (Word): Searches using regex patterns.
-
Line (Wrapped): Moves between wrapped lines.
-
Document: Navigates through the entire document.
-
-
Modes and Submodes: Modes encapsulate commands; submodes allow temporary command changes. Supported modes:
-
Navigate (Normal): General navigation commands.
-
Insert: For typing input.
-
Replace: Replaces existing text.
-
Submodes include commands like
quantumStart,searchForward, andchangeScope, allowing for granular control during editing.
-
-
Words: Parts of VisurCommand strings categorized into:
-
LiteralNumber and LiteralString: Inputs for variable assignments.
-
Assignment: Sets variables based on preceding literal types.
-
NativeOp: Refers to operators in the current keymap.
-
Recall: Fetches variables by name.
-
-
Commands: Strings of words executed in a reverse-polish notation manner, managed by the CommandCompileService for efficient parsing and execution.
-
Operators: Functionality invoked by
nativeWordOpto modify the editor model’s state, executed through the CommandExecutionService using values from theexecutionDataStack. -
Cursor Movement: Supports both horizontal and vertical movement across all quantums, facilitating precise navigation.
-
Deletion: Deletes text within the cursor selection for all quantums, enhancing text editing capabilities.
-
Typing: Full support for user input anywhere in the document, allowing smooth text addition.
iandamove to beginning and end quantum before insertion, respectively -
Spans 0-1: Indicates how many quantums the cursor occupies. A span of 0 collapses the cursor into a thin line, akin to insert mode in Vim.
-
Replacing: Functions like Vim’s replace mode. Allows text replacement but does not currently undo replacement changes with backspacing.
-
QuantumStart/End: Submodes for navigating to the first or last instance of a smaller quantum within a larger one, changing cursor positions based on quantum bounds.
-
Searching: Enters searchForward or searchBackward submodes for finding matches, moving the cursor to the first occurrence within scope.
-
Repeat Last Search: Implements movement to next or previous search results, starting from the current cursor position. (Behaves like
nandNin vim). -
Scope Changing: Users can modify the search scope dynamically to any of the supported quantums, making search operations flexible.
-
Edit objects not just text files. Type-sensitive editor. Because of that, it is also language-independent
-
Client-server architetures. Multiple users can edit the same files at the same time. Like Google Docs
-
Conditional logic & arithmetic operation within macro definition (imagine having if statements in vim macros & movements)
-
Interface independent. Can be used in the browser, command line, or within a graphical window
-
Can edit streams of data instead of just static files. For example, a network flow. Can work like a network analysis tool, capturing data in the moment
To launch your tests:
./gradlew clean testTo package your application:
./gradlew clean assembleTo run your application:
./gradlew clean run