Новый редактор Pine Script® в стиле VSCode

4 окт, 2022

Редактор Visual Studio Code™ от Microsoft за последние несколько лет заслуженно стал чрезвычайно популярным, и мы учли это при создании нашего нового редактора Pine Script® Editor — в нём используется движок Monaco, поэтому те, кто знаком с VSC, теперь будут чувствовать себя как дома при написании кода на Pine.

Первая версия нашего нового редактора содержит множество новых функций и закладывает основу для добавления многих других в будущем. Это обеспечивает улучшенную интеграцию со средой Pine и больше функций, которые программисты ожидают увидеть в современных редакторах.

Мы постарались сделать всё возможное, чтобы сохранить функциональность старого редактора. Однако переход на новый редактор может потребовать некоторой адаптации. Сочетаний клавиш стало намного больше, чем раньше, а некоторые из предыдущих сочетаний имеют новые эквиваленты. Список наиболее распространенных горячих клавиш можно найти в разделе Редактор Pine Script™ в нашем Справочном центре.

Давайте посмотрим, что может новый редактор!

Палитра команд и сочетания клавиш

В новом редакторе вы найдёте множество опций, команд и горячих клавиш, которые доступны и в VSC. Посмотреть их все можно с помощью командной палитры, которую можно открыть, нажав F1 или щелкнув правой кнопкой мыши в редакторе, чтобы вызвать всплывающее меню. Палитру можно прокручивать или искать команды, вводя в её поисковое поле ключевые слова:

Например, опции Editor Font Zoom In/Out/Reset в Палитре команд позволяют менять размер шрифта, который используется в коде:

Вот как выглядит новое всплывающее меню для редактора, которое теперь появляется при нажатии на правую кнопку мыши. Оно содержит ряд часто используемых функций:

Динамические предложения параметров и документация

При написании вызовов функций всплывающее окно проведёт вас через каждый из параметров функции и отобразит описание параметра из Справочника PineScript, чтобы вы смогли легко увидеть их ожидаемый тип, форму и аргументы. Когда курсор находится внутри круглых скобок функции, вы также можете использовать сочетание Ctrl+Shift+Пробел на Windows или Cmd+Shift+Пробел на MacOS, чтобы отобразить подсказку по аргументам:

Кроме того, функция автозаполнения (Ctrl+Пробел в Windows, Option+Пробел или Cmd+I в MacOS) внутри скобок функции теперь подсказывает ещё и параметры, которые ей можно передать:

Этот функционал также доступен для функций, экспортированных из библиотек, и для функций и переменных, объявленных внутри текущего скрипта, если они задокументированы с помощью аннотаций //@function, //@param и //@returns:

Автозаполнение

Функция автозаполнения (Ctrl+Пробел в Windows, Option+Пробел или Cmd+I в MacOS) теперь всегда активна при вводе нового текста. Как и раньше, она представляет вам список ключевых слов, соответствующих любому введенному вами тексту, но теперь она также может отображать описания и примеры из Справочника по Pine для каждого из ключевых слов. Чтобы вызвать описания, снова нажмите горячую клавишу автозаполнения или наведите курсор на активный элемент списка и нажмите стрелку справа от него. Редактор запомнит настройку отображения описаний, пока вы не обновите вкладку браузера:

Эта функциональность тоже распространяется на созданные пользователем функции и переменные, причём как из текущего скрипта, так и из импортированных библиотек, при условии, что они задокументированы с использованием аннотаций //@function, //@param и //@returns для функций, и //@variable для переменных:

Подсветка ошибок и предупреждений

Новый редактор теперь динамически взаимодействует с компилятором. Всякий раз, когда новая строка генерирует ошибку компиляции или предупреждение, она сразу же подчеркивается красным или оранжевым соответственно. При наведении курсора на строку всплывающая подсказка отображает текст ошибки или предупреждения:

Сворачивание по областям видимости или пользовательским регионам

Линии с отступом теперь можно свернуть, щелкнув стрелку, которая появляется рядом с ними, когда вы помещаете курсор на поле в левой части редактора:

Сворачивать их можно как массово, так и единично, при помощи ряда доступных опций, которые можно найти в Палитре команд по ключевому слову Fold:

Редактор также позволяет задавать свои регионы для сворачивания текста при помощи аннотаций //#region и //#endregion:

Мини-карта

В правой части нового редактора отображается боковая панель с мини-картой, которая представляет собой миниатюрное представление вашего скрипта. С её помощью вы можете быстро перемещаться по коду, искать строки, генерирующие ошибки/предупреждения, результаты поиска и т. п. Мини-карта также подсветит, где в вашем скрипте встречается слово, которое выделено или добавлено в поиск:

Улучшенный функционал Поиска и Замены

Новый функционал Поиска (Ctrl+F в Windows, Cmd+F в MacOS) и Замены (Ctrl+H в Windows, Option+Cmd+F в MacOS) теперь позволяет сразу искать слово, на котором стоит курсор, а также ограничить регион поиска только до того текста, который выделен в редакторе. Число найденных совпадений теперь также обновляется автоматически, если код изменён.

Искать только внутри выделенного текста можно при помощи следующей кнопки:

Текст также можно заменить, выбрав повторяющиеся экземпляры слова с помощью сочетания клавиш Ctrl+D / Cmd+D или Ctrl+K Ctrl+D / Cmd+K Cmd+D и введя замену. Сочетание Ctrl+Shift+L / Cmd+Shift+L выберет все вхождения слова, и все их можно будет легко заменить, просто введя новый текст.

Выбор цвета 

Предварительный просмотр цвета теперь появляется в любом месте, где у вас в коде указан цвет, будь то встроенная константа, например color.black, шестнадцатеричное значение или функция, связанная с цветом, например color.new() или color.rgb().

Наведение курсора на цвет откроет палитру цветов, откуда вы можете посмотреть значения и даже поменять цвета:

Редактируйте где угодно

Новый редактор поддерживается на всех устройствах, способных запустить TradingView. На мобильных устройствах, где Pine Editor не отображается в браузере по умолчанию, вы можете получить к нему доступ, открыв ссылку на отдельный редактор. Кроме того, всплывающее меню на этих устройствах также включает параметр Копировать все, позволяющий легко скопировать весь код в буфер обмена.

Безопасное редактирование

Редактор теперь временно сохраняет ваш код локально в вашем браузере/приложении — он больше не будет потерян при обновлении страницы.

Если вы хотите узнавать об обновлениях Pine, следите за разделом Release notes. Учётная запись PineCoders также транслирует новости об обновлениях в своем Telegram-канале Squawk Box, в Twitter и в публичном чате Pine Script® Q&A  на TradingView.

Мы надеемся, что эти улучшения будут вам полезны. Продолжайте делиться с нами своим мнением. Мы создаем TradingView для наших пользователей, и всегда рады услышать, что вы думаете о нововведениях.

Look first Then leap

Мы создали TradingView, чтобы вы могли пользоваться самыми крутыми функциями.
Открыть график