resharper — нажатие Tab в Visual Studio выбирает блок вместо добавления отступа
спросил
Изменено 2 года, 10 месяцев назад
Просмотрено 5к раз
Я использую Visual Studio 2015 и ReSharper 2016.2, и у меня странное поведение, которое я, вероятно, активировал (случайно). Когда курсор находится в строке перед первым словом, нажатие клавиши Tab приводит к правильному отступу строки:
Когда курсор находится внутри любого слова внутри строки, нажатие клавиши Tab выделяет слово или блок.
Но желаемым поведением было бы отступ у курсора (например, разделить слово на два слова, если курсор находился внутри слова Stream после буквы r):
Кто-нибудь знает, как эта «функция ‘ называется? Это от ReSharper? Где это можно включить или отключить?
- решарпер
- отступ
- события клавиатуры
Перейдите в Resharper -> Options, в левом древовидном представлении выберите Editor Behavior и снимите флажок с последней опции Используйте клавиши Tab/Shift Tab для структурной навигации .
Обновлениедля Resharper 2016.3.1.
Спасибо @Jordan за указание на это!
1
Это называется структурной навигацией и действительно полезно для перехода между блоками кода, например. параметры в вызове/определении метода — упрощает редактирование. Поведение можно изменить в параметрах в разделе «Поведение редактора». Подробнее в документах.
Выключите его и используйте указатель, чтобы «перейти» к структуре, которую вы хотите отредактировать. Таким образом, вы можете продолжать добавлять вкладки в свои блоки комментариев, пока они не исправят бесполезную функцию. У кого-то там слишком много свободного времени, чтобы решать несуществующие проблемы и на самом деле усугублять ситуацию. У них поведение комментария этой «функции» указано как ошибка. Должно быть исправлено к 2018 году.
1
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Требуется, но никогда не отображается
Опубликовать как гость
Требуется, но не отображается
Python doctest: пропустить весь блок?
Задавать вопрос
спросил
Изменено 4 месяца назад
Просмотрено 9k раз
У меня есть модуль Python со строками документации в методах класса и реальным примером в строке документации модуля. Различие заключается в том, что строки документации методов были тщательно созданы, чтобы быть полностью воспроизводимыми тестами, в то время как реальный пример — это просто копирование и вставка истории из оболочки Linux, которая вызвала интерпретатор Python.
""" Пример из реальной жизни: # питон2.5 Python 2.5 (release25-maint, 20 июля 2008 г., 20:47:25) [GCC 4.1.2 20061115 (предварительная версия) (Debian 4.1.1-21)] на linux2 Введите «помощь», «авторское право», «кредиты» или «лицензия» для получения дополнительной информации. >>> из модуля импорта имени пакета >>> модуль.show_real_world_usage() 'Привет, мир!' """ класс SomeClass (объект): определить какой-то метод (я): """ >>> 1 == 1 Истинный """
Я хочу запустить doctest в SomeClass.someMethod
, но не в строках документации модуля.
Директива Doctest +SKIP
работает только для каждой строки, что означало бы добавление десятков строк к моему реальному примеру.
Есть ли способ заставить doctest пропускать весь блок? Немного похоже на
в HTML?
- питон
- доктест
0
Оберните пример в функцию, а затем пропустите вызов функции:
""" >>> пример определения(): ... из модуля импорта имени пакета ... модуль.show_real_world_usage() ... >>> example() # doctest: +ПРОПУСТИТЬ 'Привет, мир!' """
0
Мое решение состояло в том, чтобы обрезать трехсимвольные >>>
и ...
лидеров там, где я хочу, чтобы doctest пропускал их, делая их двухсимвольными.
Так
""" >>> из модуля импорта имени пакета >>> модуль.show_real_world_usage() 'Привет, мир!' """
стал
""" >> из модуля импорта имени пакета >> модуль.show_real_world_usage() 'Привет, мир!' """
Epydoc не отображает это так хорошо, как doctests, но я могу с этим смириться. Тем не менее, директива «пропустить до дальнейшего уведомления» в doctest будет приветствоваться.
3
Если это не настоящий doctest, вы можете просто присвоить значение переменной. Например,
example_usage = """ Пример из реальной жизни: # питон2.5 ... """
приведет к тому, что этот «тест» не будет оцениваться.
Возможно, лучше использовать __example_usage__
(или что-то еще, окруженное двойным подчеркиванием), чтобы было ясно, что это «волшебная» переменная, а не переменная, которую следует использовать в контексте скрипта.
3
Небольшой обходной путь, основанный на ответе RobM, сохраняет отображение/форматирование, начиная пример с >
""" >>> >> из модуля импорта имени пакета >> модуль.show_real_world_usage() 'Привет, мир!' """
0
с xdoctest
вы можете использовать этот >>> # doctest: +ПРОПУСТИТЬ
как первую строку:
def some_function(): """ Некоторая документация Примеры: >>> # доктест: +ПРОПУСТИТЬ >>> сделать_что-то() >>> do_something_else() >>> and_do_this() """
, к сожалению, doctest
сам по себе дает сбой (и sphinx печатает это как >>>
вместо того, чтобы полностью его игнорировать).