- Specify groups for commands
- Specify which LEGO Hub
- Clarify when keybinds should work
- Define keybinds for 'getLineNumber', 'runLineContext'
- Remove more redundant keybinds
added functions getLeadingSpacesByArithmetic and getLeadingSpacesByIndex to facilitate functionality of finding the number of leading spaces via two methods.
Added new logic to pl.Lexer to find number of leading spaces by either arithmetic or by finding the index position of the first non-whitespace character. Also added a boolean flag to switch easily between the two methods using ternary logic. Added comments explaining functionality. Fixed code spacing to be more uniform in style.
Added an alternative method for calculating the leading spaces instead of taking the index of the first non-whitespace character. Leaving it commented out, but still there as an alternative in-case something goes wrong w/ the index method.
added helper function fetchLineNumber(editor) to return the line number that the cursor is on and refactored the code to make use of this helper function in various places. Also added function getLineNumber() which will output the current line number the cursor is on.
Further separate commands so that each category of command is in it's
own file. The goal is to keep the number of callbacks defined for each
command to a reasonable amount per file.
* Add persistent accessibility pane
This will facilitate more extensive usage of the menu than the
context menu.
* Fixed missing files
* Add missing semicolon
* Implement HubController
* Parse messages on arrival
Rather than queuing inbound messages, the HubController now saves
pending promises/rejects for each pending request. Each inbound packet
is checked at the time of arrival, and if the ID matches a pending
response, the corresponding promise is called.
This fixes a problem where the longer the time between reads, the more
garbage responses queue up that are guaranteed to get thrown away the
next time the next response was gathered.
* Add clarification comment to send
* Add logger, output
* Use stat+stream instead of reading entire file on upload
* Split MindReader view into accessability and hub sub-views
* Add missing comma from conflict resolution
* Fix issues, split commands into sub-lists
* Add rebuild instructions
* More accurate
* Add tools for native modules instructions to README.md
* Move commands to correct spot
* Remove automatic connection
I did not heed the warning where 'only the path is guaranteed' when
listing open serial ports and made the assumption that the manufacturer
would be known (hint: it wasn't).
* Use device specific language for output title
* Update parser
Implied nodes caused ambiguity when querying for context. Now every line
is considered, even blank lines, to make the process much, *much* easier.
* Update pylex tests
* Add runCursorContext
Refactor command registration
As we continue to register more commands for our extension,
'extensions.ts' has become gross and hard to read. Commands are now
defined in a `commands: Command[]` list in 'commands.ts':
type Command = {
name: string, // Name of the command e.g. 'mind-reader.selectTheme'
callback: () => void // Callback to register for the command
}
This list is imported into 'extension.ts' and registered
programatically, reducing the required lines of "extra" code required
to register commands in 'extension.ts' from 4 per command to 7 total.
This should help keep 'extension.ts' squeaky clean :)