Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support fully compositional modifiers #69

Closed
pokey opened this issue Jul 5, 2021 · 0 comments · Fixed by #672
Closed

Support fully compositional modifiers #69

pokey opened this issue Jul 5, 2021 · 0 comments · Fixed by #672
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@pokey
Copy link
Member

pokey commented Jul 5, 2021

The problem

Today's cursorless targets are flat, allowing only a single modifier. This limitation dramatically restricts the power of cursorless commands. See What's next for the big picture; here we focus on the details of the solution.

The solution

Instead of being a flat object with optional attributes, each of which represent a stage in a makeshift pipeline, PrimitiveTarget will simply have a list of pipeline stages. During execution, cursorless will apply each pipeline stage to the output of the one before it. Each pipeline stage output will be a rich target, giving the next stage enough information to process the previous output. The mark will just become a pipeline stage with zero inputs.

The approach is inspired by jq. Each pipeline stage in a cursorless target description takes a single input and emits zero or more outputs. The outputs of a modifier stage are passed in one by one to the next stage in the modifier pipeline, and then all outputs from that stage are passed onward, etc. See the jq language spec for a better idea of the paradigm.

Some of our modifiers will be parametrized. For example "every" is a modifier that takes a scope type such as "line", "funk", etc as a parameter, and generates a pipeline stage that yields every instance of the given scope type occurring in each of its inputs. So for example "every line in funk" will create a pipeline that first expands its input to the nearest containing function, and then yields every line in that function

@pokey pokey added the enhancement New feature or request label Jul 6, 2021
@pokey pokey mentioned this issue Jul 6, 2021
2 tasks
@pokey pokey added this to To do in Cursorless engine 2.0 via automation Jul 9, 2021
@pokey pokey changed the title Support fully compositional transformations Support fully compositional modifiers Jan 12, 2022
@pokey pokey self-assigned this Jan 18, 2022
pokey added a commit that referenced this issue May 12, 2022
@AndreasArvidsson AndreasArvidsson self-assigned this May 19, 2022
pokey added a commit that referenced this issue May 24, 2022
@pokey pokey closed this as completed in 660a961 May 25, 2022
Cursorless engine 2.0 automation moved this from To do to Done May 25, 2022
@pokey pokey reopened this May 26, 2022
Cursorless engine 2.0 automation moved this from Done to To do May 26, 2022
pokey added a commit that referenced this issue May 27, 2022
pokey added a commit that referenced this issue May 29, 2022
@pokey pokey closed this as completed in #672 Jun 7, 2022
Cursorless engine 2.0 automation moved this from To do to Done Jun 7, 2022
pokey added a commit that referenced this issue Jun 7, 2022
* Fixed bug in removal range for range target

* A dead delimiter highlight to range target

* Added token context to all marks

* Added correct token context too regex

* Don't unifi ranges on content only removal

* Update the test

* Added feature to run single recorded test

* Updated tests

* Fallback on token context for containing scope

* Updated target inference

* general refactoring of removable ranges

* Updated unify removal targets

* Fixed that mark bug on set selection

* Fixed is reverse bug on vertical range targets

* Fixed is reverse bug on vertical range targets

* Set empty delimiter on end of and start of positions

* Updated test

* Fixed last tests

* Added description to run single recorded test

* At dead tests for bring before and after file

* Update to removal ranges

* Mark cleanup

* Added interior only and exclude interior as proper modifiers

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Added support for every line

* Only select lines with content

* Added take every paragraph

* Added every file line and block tests

* Added take every token

* Added every too regex stages

* Cleanup

* Moved example of custom test transformation to docs

* Update src/core/commandVersionUpgrades/upgradeV1ToV2/commandV1.types.ts

Co-authored-by: Pokey Rule <755842+pokey@users.noreply.github.com>

* Update src/core/commandVersionUpgrades/upgradeV1ToV2/upgradeV1ToV2.ts

Co-authored-by: Pokey Rule <755842+pokey@users.noreply.github.com>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Added OO targets

* Fixed merge conflict

* Reversed order of migration modifiers

* Default to array

* Cleaned up inference code

* Added paragraph target

* Better updates of new range

* oo targets past all test

* Added line and paragraph tests

* Highlight update

* Added script to show unused exports

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Added line 2 unused export

* Default modifiers to empty array

* Don't use hat map

* Modifiers default to undefined

* Fixed is implicit inference

* Removed get tokens function

* Update src/core/commandVersionUpgrades/upgradeV1ToV2/commandV1.types.ts

Co-authored-by: Pokey Rule <755842+pokey@users.noreply.github.com>

* Update src/core/inferFullTargets.ts

Co-authored-by: Pokey Rule <755842+pokey@users.noreply.github.com>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* General cleanup

* Added notebook cell target

* Support delimiter based edit newline (#684)

* Added delimiter based edit line

* Added support for arbitrary delimiters

* Added tests

* Renamed is above to is before

* Better handling of empty lines

* Cleanup

* Added default delimiters for some common scope types

* Run yarn

* Attempt to fix raw delimiter

* Fixed delimiter

* Revert "Attempt to fix raw delimiter"

This reverts commit 0de0798.

* Revert "Fixed delimiter"

This reverts commit a035390.

* Use low dash unique with

* Made base target abstract

* Updated tests

* Added return type

* Fixed compilation errors

* Updated position

* Add empty string as default delimiter for sub tokens

* Updated bugs

* Cleanup

* Added tests

* Updated inference of implicit target

* Updated spoken forms in test

* Utilize getters

* Refactored getters and setters for targets

* Implemented get final stages

* Added final stages to process targets

* Cleanup

* Converted command action into object with associated arguments

* Switch to complex scope types

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Remove scope type type from base target

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Updated to edit new context

* Added bring statement test

* Change behavior of pour line

* Use weak containing line stage for edit new

* Updated edit new

* Get targets in correct order

* Updated selection for editor

* Cleanup

* New attempt at EditNew

* Added rich targets

* Updated edit new with proper line handling

* Only used single edit

* Added comment

* Added comment

* Cleanup

* Added derived target

* Moved weak target into base target class

* Cleanup

* Updated action form

* Updated scope type for tests

* Fix upgrade path with ordinal range

* Pass leading and trailing delimiters to super constructor

* Learn to spell

* Updated more tests

* Cleanup

* Fixed bug taking matching pair in error code

* Added block tests

* Fixed test

* Added support for custom delimiters in copy lines

* Fix package json

* Fix one test

* Updated tests

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Disabled phrase snapshot on recorded test runner

* Updated test and upgrade path

* Fixed failing hat map tests

* Added sleep option to recorded tests

* Verbosity for the win

* Tweak modify of week stage

* Minor python cleanup

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Don't de duplicate that mark

* Use utility function to set selection that deduplicates

* Make document content range the entire file including white lines

* Added source mark to wrap action

* Added source mark to actions wrap and rewrap

* Updated error messages

* Updated tests

* Don't focus editor on notebook cell insertion

* Cleanup

* Don't update selection on notebook cell insertion

* Add comment

* Various fixes

* More renames and stuff

* Fix bug with missing delimiters in weak targets

* Update src/processTargets/processTargets.ts

Co-authored-by: Will Sommers <will.sommers@gmail.com>

* Unify implementation of copy lines and edit new actions

* Rename

* Started working on lazy removal

* Clarify processPrimitiveTarget

* Tweak

* Tweak again

* Imports fix

* All tests pass

* Updated highlights

* Highlight updates on continuous range target

* Moved edit decorations into graph

* Added decorations to test recorder and runner

* Updated to highlight recorder test

* Added decorations test

* Added decorations test

* Added leading and trailing delimiters as separate stage and target

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Create edits in actual targets

* Use object oriented targets to construct edits

* Enabled bring before and after without to

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Fix

* Support fully compositional modifiers
Fixes #69

* Getting started

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Start using InsertionRemovalBehavior

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Cleanup

* Tweak

* More cleanup

* More tweaks

* Tweaks

* More cleanup

* Cleanup

* Removed padding from float and drop

* Updated that mark on pour action

* Lots of stuff

* Fixed removal behavior on scope type target

* Hide panel on recorded test sweet startup

* More stuff

* More stuff

* Cleanup

* Some stuff clean up whatever don't care

* Committed some stuff

* Stuff

* Updated tests

* Support chuck after and chuck before

* Add hack for "paste to to"

* Add run single test launch config

* Add comment about running a single test to contributing docs

* Update cursorless-talon/src/csv_overrides.py

* Update cursorless-talon/src/positional_target.py

Co-authored-by: Pokey Rule <755842+pokey@users.noreply.github.com>

* Update cursorless-talon/src/positional_target.py

Co-authored-by: Pokey Rule <755842+pokey@users.noreply.github.com>

* Use plain target in clear action

* Initial modifier unification work

* Unify simple modifiers

* docstring

* Clean up position code

* At a couple comments

* Creates separate file for target descriptor types

* Separate notebook cell edit new from regular edit new

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Fixed that mark on notebook cells

* Cleanup

* More positional tweaks on talon side

* Removes support for chuck after and chuck before

* Clean up names

* Use proper error for syntax scope not found

* Record tests for leading trailing before and after

* Add chuck before after to upgrade

* Failed attempt at trying to simplify edit new

* Revert "Failed attempt at trying to simplify edit new"

This reverts commit 52193ae.

* Cleanup vscode ignore

* Fixed regression in vertical range target (#735)

* Revert generic insert empty lines code

* Add broken float and puff tests

* Add working puff float drop tests

* Switch to mocha grep syntax for running subset of tests

* Make subdir for insert empty lines tests

* Support updating fixture decorations

* Add decorations to float drop puff tests

* Cleanup test case recorder docs

* Add bunch of clone tests

* Move files

* More cleanup

* `PartialTargetDesc` => `PartialTargetDescriptor`

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Re-add provenance file

* Comments

* Bump package version

* Attempt to fix docs link

Co-authored-by: Andreas Arvidsson <andreas.arvidsson87@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Will Sommers <will.sommers@gmail.com>
cursorless-bot pushed a commit that referenced this issue Jun 7, 2022
* Fixed bug in removal range for range target

* A dead delimiter highlight to range target

* Added token context to all marks

* Added correct token context too regex

* Don't unifi ranges on content only removal

* Update the test

* Added feature to run single recorded test

* Updated tests

* Fallback on token context for containing scope

* Updated target inference

* general refactoring of removable ranges

* Updated unify removal targets

* Fixed that mark bug on set selection

* Fixed is reverse bug on vertical range targets

* Fixed is reverse bug on vertical range targets

* Set empty delimiter on end of and start of positions

* Updated test

* Fixed last tests

* Added description to run single recorded test

* At dead tests for bring before and after file

* Update to removal ranges

* Mark cleanup

* Added interior only and exclude interior as proper modifiers

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Added support for every line

* Only select lines with content

* Added take every paragraph

* Added every file line and block tests

* Added take every token

* Added every too regex stages

* Cleanup

* Moved example of custom test transformation to docs

* Update src/core/commandVersionUpgrades/upgradeV1ToV2/commandV1.types.ts

Co-authored-by: Pokey Rule <755842+pokey@users.noreply.github.com>

* Update src/core/commandVersionUpgrades/upgradeV1ToV2/upgradeV1ToV2.ts

Co-authored-by: Pokey Rule <755842+pokey@users.noreply.github.com>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Added OO targets

* Fixed merge conflict

* Reversed order of migration modifiers

* Default to array

* Cleaned up inference code

* Added paragraph target

* Better updates of new range

* oo targets past all test

* Added line and paragraph tests

* Highlight update

* Added script to show unused exports

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Added line 2 unused export

* Default modifiers to empty array

* Don't use hat map

* Modifiers default to undefined

* Fixed is implicit inference

* Removed get tokens function

* Update src/core/commandVersionUpgrades/upgradeV1ToV2/commandV1.types.ts

Co-authored-by: Pokey Rule <755842+pokey@users.noreply.github.com>

* Update src/core/inferFullTargets.ts

Co-authored-by: Pokey Rule <755842+pokey@users.noreply.github.com>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* General cleanup

* Added notebook cell target

* Support delimiter based edit newline (#684)

* Added delimiter based edit line

* Added support for arbitrary delimiters

* Added tests

* Renamed is above to is before

* Better handling of empty lines

* Cleanup

* Added default delimiters for some common scope types

* Run yarn

* Attempt to fix raw delimiter

* Fixed delimiter

* Revert "Attempt to fix raw delimiter"

This reverts commit 0de0798.

* Revert "Fixed delimiter"

This reverts commit a035390.

* Use low dash unique with

* Made base target abstract

* Updated tests

* Added return type

* Fixed compilation errors

* Updated position

* Add empty string as default delimiter for sub tokens

* Updated bugs

* Cleanup

* Added tests

* Updated inference of implicit target

* Updated spoken forms in test

* Utilize getters

* Refactored getters and setters for targets

* Implemented get final stages

* Added final stages to process targets

* Cleanup

* Converted command action into object with associated arguments

* Switch to complex scope types

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Remove scope type type from base target

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Updated to edit new context

* Added bring statement test

* Change behavior of pour line

* Use weak containing line stage for edit new

* Updated edit new

* Get targets in correct order

* Updated selection for editor

* Cleanup

* New attempt at EditNew

* Added rich targets

* Updated edit new with proper line handling

* Only used single edit

* Added comment

* Added comment

* Cleanup

* Added derived target

* Moved weak target into base target class

* Cleanup

* Updated action form

* Updated scope type for tests

* Fix upgrade path with ordinal range

* Pass leading and trailing delimiters to super constructor

* Learn to spell

* Updated more tests

* Cleanup

* Fixed bug taking matching pair in error code

* Added block tests

* Fixed test

* Added support for custom delimiters in copy lines

* Fix package json

* Fix one test

* Updated tests

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Disabled phrase snapshot on recorded test runner

* Updated test and upgrade path

* Fixed failing hat map tests

* Added sleep option to recorded tests

* Verbosity for the win

* Tweak modify of week stage

* Minor python cleanup

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Don't de duplicate that mark

* Use utility function to set selection that deduplicates

* Make document content range the entire file including white lines

* Added source mark to wrap action

* Added source mark to actions wrap and rewrap

* Updated error messages

* Updated tests

* Don't focus editor on notebook cell insertion

* Cleanup

* Don't update selection on notebook cell insertion

* Add comment

* Various fixes

* More renames and stuff

* Fix bug with missing delimiters in weak targets

* Update src/processTargets/processTargets.ts

Co-authored-by: Will Sommers <will.sommers@gmail.com>

* Unify implementation of copy lines and edit new actions

* Rename

* Started working on lazy removal

* Clarify processPrimitiveTarget

* Tweak

* Tweak again

* Imports fix

* All tests pass

* Updated highlights

* Highlight updates on continuous range target

* Moved edit decorations into graph

* Added decorations to test recorder and runner

* Updated to highlight recorder test

* Added decorations test

* Added decorations test

* Added leading and trailing delimiters as separate stage and target

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Create edits in actual targets

* Use object oriented targets to construct edits

* Enabled bring before and after without to

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Fix

* Support fully compositional modifiers
Fixes #69

* Getting started

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Start using InsertionRemovalBehavior

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Cleanup

* Tweak

* More cleanup

* More tweaks

* Tweaks

* More cleanup

* Cleanup

* Removed padding from float and drop

* Updated that mark on pour action

* Lots of stuff

* Fixed removal behavior on scope type target

* Hide panel on recorded test sweet startup

* More stuff

* More stuff

* Cleanup

* Some stuff clean up whatever don't care

* Committed some stuff

* Stuff

* Updated tests

* Support chuck after and chuck before

* Add hack for "paste to to"

* Add run single test launch config

* Add comment about running a single test to contributing docs

* Update cursorless-talon/src/csv_overrides.py

* Update cursorless-talon/src/positional_target.py

Co-authored-by: Pokey Rule <755842+pokey@users.noreply.github.com>

* Update cursorless-talon/src/positional_target.py

Co-authored-by: Pokey Rule <755842+pokey@users.noreply.github.com>

* Use plain target in clear action

* Initial modifier unification work

* Unify simple modifiers

* docstring

* Clean up position code

* At a couple comments

* Creates separate file for target descriptor types

* Separate notebook cell edit new from regular edit new

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Fixed that mark on notebook cells

* Cleanup

* More positional tweaks on talon side

* Removes support for chuck after and chuck before

* Clean up names

* Use proper error for syntax scope not found

* Record tests for leading trailing before and after

* Add chuck before after to upgrade

* Failed attempt at trying to simplify edit new

* Revert "Failed attempt at trying to simplify edit new"

This reverts commit 52193ae.

* Cleanup vscode ignore

* Fixed regression in vertical range target (#735)

* Revert generic insert empty lines code

* Add broken float and puff tests

* Add working puff float drop tests

* Switch to mocha grep syntax for running subset of tests

* Make subdir for insert empty lines tests

* Support updating fixture decorations

* Add decorations to float drop puff tests

* Cleanup test case recorder docs

* Add bunch of clone tests

* Move files

* More cleanup

* `PartialTargetDesc` => `PartialTargetDescriptor`

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Re-add provenance file

* Comments

* Bump package version

* Attempt to fix docs link

Co-authored-by: Andreas Arvidsson <andreas.arvidsson87@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Will Sommers <will.sommers@gmail.com>
@pokey pokey modified the milestones: 0.27.0, 0.26.0 Jun 8, 2022
thetomcraig-aya pushed a commit to thetomcraig/cursorless that referenced this issue Mar 27, 2024
* Add support for hat shapes

This reverts commit b8b8ffbbaf3006be3724fea9ce5a9ccafaecefa7.

* Change "star" back to "splat"

* Add shapes back to cheatsheet

* Rename bird to fox
thetomcraig-aya pushed a commit to thetomcraig/cursorless that referenced this issue Mar 27, 2024
* Fixed bug in removal range for range target

* A dead delimiter highlight to range target

* Added token context to all marks

* Added correct token context too regex

* Don't unifi ranges on content only removal

* Update the test

* Added feature to run single recorded test

* Updated tests

* Fallback on token context for containing scope

* Updated target inference

* general refactoring of removable ranges

* Updated unify removal targets

* Fixed that mark bug on set selection

* Fixed is reverse bug on vertical range targets

* Fixed is reverse bug on vertical range targets

* Set empty delimiter on end of and start of positions

* Updated test

* Fixed last tests

* Added description to run single recorded test

* At dead tests for bring before and after file

* Update to removal ranges

* Mark cleanup

* Added interior only and exclude interior as proper modifiers

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Added support for every line

* Only select lines with content

* Added take every paragraph

* Added every file line and block tests

* Added take every token

* Added every too regex stages

* Cleanup

* Moved example of custom test transformation to docs

* Update src/core/commandVersionUpgrades/upgradeV1ToV2/commandV1.types.ts

Co-authored-by: Pokey Rule <755842+pokey@users.noreply.github.com>

* Update src/core/commandVersionUpgrades/upgradeV1ToV2/upgradeV1ToV2.ts

Co-authored-by: Pokey Rule <755842+pokey@users.noreply.github.com>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Added OO targets

* Fixed merge conflict

* Reversed order of migration modifiers

* Default to array

* Cleaned up inference code

* Added paragraph target

* Better updates of new range

* oo targets past all test

* Added line and paragraph tests

* Highlight update

* Added script to show unused exports

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Added line 2 unused export

* Default modifiers to empty array

* Don't use hat map

* Modifiers default to undefined

* Fixed is implicit inference

* Removed get tokens function

* Update src/core/commandVersionUpgrades/upgradeV1ToV2/commandV1.types.ts

Co-authored-by: Pokey Rule <755842+pokey@users.noreply.github.com>

* Update src/core/inferFullTargets.ts

Co-authored-by: Pokey Rule <755842+pokey@users.noreply.github.com>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* General cleanup

* Added notebook cell target

* Support delimiter based edit newline (cursorless-dev#684)

* Added delimiter based edit line

* Added support for arbitrary delimiters

* Added tests

* Renamed is above to is before

* Better handling of empty lines

* Cleanup

* Added default delimiters for some common scope types

* Run yarn

* Attempt to fix raw delimiter

* Fixed delimiter

* Revert "Attempt to fix raw delimiter"

This reverts commit 0de0798.

* Revert "Fixed delimiter"

This reverts commit a035390.

* Use low dash unique with

* Made base target abstract

* Updated tests

* Added return type

* Fixed compilation errors

* Updated position

* Add empty string as default delimiter for sub tokens

* Updated bugs

* Cleanup

* Added tests

* Updated inference of implicit target

* Updated spoken forms in test

* Utilize getters

* Refactored getters and setters for targets

* Implemented get final stages

* Added final stages to process targets

* Cleanup

* Converted command action into object with associated arguments

* Switch to complex scope types

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Remove scope type type from base target

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Updated to edit new context

* Added bring statement test

* Change behavior of pour line

* Use weak containing line stage for edit new

* Updated edit new

* Get targets in correct order

* Updated selection for editor

* Cleanup

* New attempt at EditNew

* Added rich targets

* Updated edit new with proper line handling

* Only used single edit

* Added comment

* Added comment

* Cleanup

* Added derived target

* Moved weak target into base target class

* Cleanup

* Updated action form

* Updated scope type for tests

* Fix upgrade path with ordinal range

* Pass leading and trailing delimiters to super constructor

* Learn to spell

* Updated more tests

* Cleanup

* Fixed bug taking matching pair in error code

* Added block tests

* Fixed test

* Added support for custom delimiters in copy lines

* Fix package json

* Fix one test

* Updated tests

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Disabled phrase snapshot on recorded test runner

* Updated test and upgrade path

* Fixed failing hat map tests

* Added sleep option to recorded tests

* Verbosity for the win

* Tweak modify of week stage

* Minor python cleanup

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Don't de duplicate that mark

* Use utility function to set selection that deduplicates

* Make document content range the entire file including white lines

* Added source mark to wrap action

* Added source mark to actions wrap and rewrap

* Updated error messages

* Updated tests

* Don't focus editor on notebook cell insertion

* Cleanup

* Don't update selection on notebook cell insertion

* Add comment

* Various fixes

* More renames and stuff

* Fix bug with missing delimiters in weak targets

* Update src/processTargets/processTargets.ts

Co-authored-by: Will Sommers <will.sommers@gmail.com>

* Unify implementation of copy lines and edit new actions

* Rename

* Started working on lazy removal

* Clarify processPrimitiveTarget

* Tweak

* Tweak again

* Imports fix

* All tests pass

* Updated highlights

* Highlight updates on continuous range target

* Moved edit decorations into graph

* Added decorations to test recorder and runner

* Updated to highlight recorder test

* Added decorations test

* Added decorations test

* Added leading and trailing delimiters as separate stage and target

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Create edits in actual targets

* Use object oriented targets to construct edits

* Enabled bring before and after without to

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Fix

* Support fully compositional modifiers
Fixes cursorless-dev#69

* Getting started

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Start using InsertionRemovalBehavior

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Cleanup

* Tweak

* More cleanup

* More tweaks

* Tweaks

* More cleanup

* Cleanup

* Removed padding from float and drop

* Updated that mark on pour action

* Lots of stuff

* Fixed removal behavior on scope type target

* Hide panel on recorded test sweet startup

* More stuff

* More stuff

* Cleanup

* Some stuff clean up whatever don't care

* Committed some stuff

* Stuff

* Updated tests

* Support chuck after and chuck before

* Add hack for "paste to to"

* Add run single test launch config

* Add comment about running a single test to contributing docs

* Update cursorless-talon/src/csv_overrides.py

* Update cursorless-talon/src/positional_target.py

Co-authored-by: Pokey Rule <755842+pokey@users.noreply.github.com>

* Update cursorless-talon/src/positional_target.py

Co-authored-by: Pokey Rule <755842+pokey@users.noreply.github.com>

* Use plain target in clear action

* Initial modifier unification work

* Unify simple modifiers

* docstring

* Clean up position code

* At a couple comments

* Creates separate file for target descriptor types

* Separate notebook cell edit new from regular edit new

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Fixed that mark on notebook cells

* Cleanup

* More positional tweaks on talon side

* Removes support for chuck after and chuck before

* Clean up names

* Use proper error for syntax scope not found

* Record tests for leading trailing before and after

* Add chuck before after to upgrade

* Failed attempt at trying to simplify edit new

* Revert "Failed attempt at trying to simplify edit new"

This reverts commit 52193ae.

* Cleanup vscode ignore

* Fixed regression in vertical range target (cursorless-dev#735)

* Revert generic insert empty lines code

* Add broken float and puff tests

* Add working puff float drop tests

* Switch to mocha grep syntax for running subset of tests

* Make subdir for insert empty lines tests

* Support updating fixture decorations

* Add decorations to float drop puff tests

* Cleanup test case recorder docs

* Add bunch of clone tests

* Move files

* More cleanup

* `PartialTargetDesc` => `PartialTargetDescriptor`

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Re-add provenance file

* Comments

* Bump package version

* Attempt to fix docs link

Co-authored-by: Andreas Arvidsson <andreas.arvidsson87@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Will Sommers <will.sommers@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Development

Successfully merging a pull request may close this issue.

2 participants