Add `syntax_test` shortcut for first character of previous line

Abierto
#382 1 comentario 0 reacciones 1 asignado Ver en GitHub

@FichteFoll ya está trabajando en esto.

Desde el 9/9/2024.

Evaluación

Este issue todavía no se ha evaluado.

Descripción

enhancement

If you press Tab in a syntax_test_* file on a line that has the test prefix (# in my case), it jumps to the next column, adds carets and the appropriate scopes. I've also found that when you use ^, you can step through the meta scopes, and once the meta scopes are added to a line's tests, subsequent auto-generated tests exclude it, thus making them much more readable. This is great, and dramatically speeds up writing tests when you have a syntax file that's working correctly.

But Tab finds the last column n with a test of any sort from the previous line and starts the next test in column n+1. That means that you can easily insert a meta test with something like #^^^, but then you have to manually line up the next test using Shift+Tab to get Tab working again to easily insert more tests.

So in this situation, with the cursor at |, I want a new, single-character test added at % for the open paren:

a = myfunc("param1", var2) + 3
#         ^^^^^^^^^^^^^^^^ meta.function-call.arguments.python
#|        %

Possible ways to address this:

  1. Add a shortcut that would work like Tab when adding a new assertion, but would still add a test to the first un-asserted substring of the meta scope region if the previous line only contains meta scopes.
  2. Simpler, just add a shortcut which works like Tab but instead of thinking about whether the previous region is meta or not, just start looking for the next range at the beginning of the previous line's assertion region.

I guess a good default binding for this shortcut on Mac would be Opt+Tab, although I don't know what would work best on Windows.

But another possibility is to just have Tab always work like proposal 1 above. That way it would be easy to find, and would encourage comprehensive testing. In this case, maybe we'd want to change the present behavior to another function/binding so that it was still available if needed.

Lenguaje dominante
Python
Estrellas
455
Forks
86
Merge medio
7 d 10 h
PR fusionados (30 d)
1

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de SublimeText/PackageDev

Todos los issues de SublimeText/PackageDev

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.