Дополнение IndentNav позволяет пользователям NVDA перемещаться по уровню отступа строк. При редактировании исходного кода на многих языках программирования оно позволяет переходить между строками с одинаковым уровнем отступа, а также быстро находить строки с большим или меньшим уровнем отступа.
Обратите внимание: команды навигации по деревьям были перенесены в дополнение TreeNav.
Пожалуйста, установите из магазина дополнений NVDA.
Встроенная доступность VSCode очень ограничена: по состоянию на 2024 год через API доступности передаётся только 500 строк кода, из-за чего IndentNav работает в VSCode некорректно.
По умолчанию IndentNav не будет работать с VSCode, и при попытке его использования вам будет предложено выбрать один из двух вариантов:
IndentNav имеет известные проблемы совместимости с дополнением Character Information. В настоящее время невозможно настроить одновременно IndentNav и курсор обзора на цифровой клавиатуре при работающем этом дополнении. Пожалуйста, либо удалите это дополнение, либо используйте альтернативную раскладку клавиш в IndentNav.
IndentNav предлагает 3 встроенные раскладки клавиш:
Alt+цифровой блок.alt+numLock.alt+цифровой блок, избежав таким образом конфликта клавиш.Раскладку клавиш можно выбрать в настройках IndentNav.
| Действие | Устаревшая раскладка | Раскладка Alt+цифровой блок | Раскладка цифрового блока | Описание |
| -- | -- | -- | -- | -- |
| Включить/выключить IndentNav | alt+numLock | alt+numLock | alt+numLock | Полезно, когда жесты NVDA и курсора обзора назначены на цифровой блок. |
| Перейти к предыдущему/следующему соседнему элементу | NVDA+Alt+up/downArrow | alt+numPad8/numPad2 | numPad8/numPad2 | Соседний элемент определяется как строка с тем же уровнем отступа.<br>Эта команда не выходит за пределы текущего блока кода. |
| Перейти к предыдущему/следующему соседнему элементу, пропуская посторонние строки | N/A | control+alt+numPad8/numPad2 | control+numPad8/numPad2 | Можно настроить регулярное выражение для посторонних строк в настройках. |
| Перейти к первому/последнему соседнему элементу | NVDA+Alt+shift+up/downArrow | alt+numPad4/numPad6 | numPad4/numPad6 | Соседний элемент определяется как строка с тем же уровнем отступа.<br>Эта команда не выходит за пределы текущего блока кода. |
| Перейти к предыдущему/последнему соседнему элементу за пределами текущего блока | NVDA+control+Alt+up/downArrow | control+alt+numPad4/numPad6 | control+numPad4/numPad6 | Эта команда позволяет перейти к соседнему элементу в другом блоке. |
| Перейти к предыдущему/следующему родительскому элементу | NVDA+Alt+leftArrow,<br>NVDA+alt+control+leftArrow | alt+numPad7/numPad1 | numPad7/numPad1 | Родительский элемент определяется как строка с меньшим уровнем отступа. |
| Перейти к предыдущему/следующему дочернему элементу | NVDA+Alt+control+rightArrow,<br>NVDA+alt+rightArrow | alt+numPad9/numPad3 | numPad9/numPad3 | Дочерний элемент определяется как строка с большим уровнем отступа.<br>Эта команда не выходит за пределы текущего блока кода. |
| Выделить текущий блок | NVDA+control+i | control+alt+numPad7 | control+numPad7 | Выделяет текущую строку и все последующие строки с уровнем отступа строго больше.<br>Нажимайте повторно для выделения нескольких блоков. |
| Выделить текущий блок и все последующие блоки на том же уровне отступа | NVDA+alt+i | control+alt+numPad9 | control+numPad9 | Выделяет текущую строку и все последующие строки с уровнем отступа больше или равным. |
| Вставка с выравниванием отступа | NVDA+v | NVDA+v | NVDA+v | Когда нужно вставить блок кода в место с другим уровнем отступа, эта команда скорректирует уровень отступа перед вставкой. |
| Назад/вперёд по истории | N/A | control+alt+numPad1/numPad3 | control+numPad1/numPad3 | IndentNav ведёт историю строк, которые вы посетили с помощью команд IndentNav. |
| Прочитать текущую строку | N/A | alt+numPad5 | numPad5 | Это команда курсора обзора, переназначенная для удобства. |
| Прочитать строку родительского элемента | NVDA+i | N/A | N/A | |
IndentNav позволяет настроить любое количество закладок, к которым можно легко переходить. Закладка определяется регулярным выражением и назначенной клавишей для перехода к совпадению. Нажмите shift+ клавишу для поиска предыдущего вхождения.
Для каждой закладки можно также настроить родительскую закладку. В этом случае при поиске дочерней закладки курсор никогда не пересечёт родительскую закладку. Например, имеет смысл назначить определение класса как родительскую закладку для определения функции, чтобы при поиске функций вы никогда не выходили за пределы текущего класса.
При переходах через много строк кода IndentNav будет пытаться быстро воспроизводить тонами уровни отступа пропускаемых строк. Эта функция включается только при включённой в настройках NVDA опции сообщения отступа тонами. Громкость потрескивания можно настроить или отключить в настройках IndentNav.
Исходный код доступен на http://github.com/mltony/nvda-indent-nav.