PEP 498, который приземлился в python 3.6
, добавил интерполяцию буквенных строк, которая в основном является сокращенной формой format
.
Теперь вы можете делать:
f"[{1}, {2}, {3}]"
Распространенными другими видами использования, которые я считаю полезными, являются:
pi = 3.141592653589793
today = datetime(year=2018, month=2, day=3)
num_2 = 2 # Drop assigned values in
num_3 = "3" # Call repr(), or it's shortened form !r
padding = 5 # Control prefix padding
precision = 3 # and precision for printing
f"""[{1},
{num_2},
{num_3!r},
{pi:{padding}.{precision}},
{today:%B %d, %Y}]"""
, которые будут производить:
"[1,\n 2,\n '3',\n 3.14,\n February 03, 2018]"
РЕДАКТИРОВАТЬ: Я нашел плагин, который делает это с немного более интересным видом: Sunshade Errorlink (прокрутите немного вниз). Я не уверен, насколько это гибко, но в нем упоминается поддержка муравьев.
Я знаю, что вы, вероятно, захотите реальную реализацию, но вот приблизительная отправная точка для дизайна плагина, который вам нужен. Если кто-то захочет реализовать это, пожалуйста, поместите ссылку здесь, чтобы указать на это. Я мог бы сделать это сам, если у меня будет свободное время (ха!):)
Предполагая, что консоль основана на TextConsole, что кажется разумным, спецификация говорит:
Абстрактная текстовая консоль который поддерживает сопоставление регулярных выражений и гиперссылки.
Слушатели сопоставления с шаблоном могут быть зарегистрированы с помощью консоли программно или через org.eclipse.ui.console.consolePatternMatchListeners точка расширения.
Я посмотрел немного подробнее, и в спецификации для этой точки расширения есть следующий пример:
<extension point="org.eclipse.ui.console.consolePatternMatchListener">
<consolePatternMatchListener
class="com.example.ExampleConsolePatternMatcher"
id="com.example.ExampleConsolePatternMatcher"
regex=".*foo.*">
<enablement>
<test
property="org.eclipse.ui.console.consoleTypeTest"
value="exampleConsole"/>
</enablement>
</consolePatternMatchListener>
</extension>
Вам понадобится API для IPatternMatchListenerDelegate и после этого вы сможете использовать TextConsole.addHyperlink для создания нужной ссылки.