Анонс улучшенного плагина Move VSCode Plugin

post image

Краткое описание: Плагин Move VSCode теперь поставляется с большим количеством дополнительных возможностей!

В течение последних нескольких месяцев компания Mysten Labs упорно работала над новыми возможностями для плагина VSCode языка Move (плагин для редактора Visual Studio Code). И теперь мы наконец готовы поделиться достигнутым с широким сообществом разработчиков. Плагин предназначен для работы как с основным языком Move, так и со всеми существующими разновидностями языка Move, такими как Sui Move.

Плагин VSCode для Move называется move-analyzer и доступен в Visual Studio Marketplace. Новые возможности поддерживаются через протокол сервера языка; чтобы раскрыть весь потенциал плагина, помимо установки самого плагина, необходимо установить сервер языка move-analyzer, как описано в инструкции по установке, прилагаемой к дистрибутиву плагина.

Протокол языкового сервера (LSP) был первоначально представлен компанией Microsoft, но он также поддерживается рядом других редакторов кода и интегрированных сред разработки (IDE), таких как Sublime Text или Eclipse. Это стандартный протокол, с помощью которого редактор среды разработки может "запрашивать" у сервера языка определенные виды информации о редактируемом коде. И он позволяет визуализировать полученные данные таким образом, чтобы одновременно улучшить и упростить процесс разработки кода. Мы надеемся интегрировать эти новые возможности в другие редакторы IDE, в идеале - с помощью сообщества разработчиков языка Move.

Новые возможности, предоставляемые текущей версией языкового сервера move-analyzer, делятся на две основные категории: понимание кода и сообщения об ошибках. Они были реализованы путем интеграции языкового сервера со "стандартным" компилятором Move (компилятор, который был разработан совместно с языком и является частью основного репозитория исходного кода Move). Такая интеграция не только гарантирует точность информации, предоставляемой языковым сервером (например, сообщения об ошибках, визуализируемые редактором или IDE, будут напрямую соответствовать сообщениям об ошибках, выдаваемым компилятором), но и упростит обслуживание языкового сервера в условиях возможных будущих изменений языка Move. Описание новых возможностей вы найдете ниже, а также можете посмотреть демонстрацию новых возможностей в этом видео:

Одной из проблем более традиционных языков смарт-контрактов, которую пытается решить дизайн языка Move, является составление и повторное использование кода. Чтобы обеспечить повторное использование кода, код может быть сгруппирован в пакеты (например, пакет стандартной библиотеки), и эти пакеты могут совместно использоваться в различных реализациях смарт-контрактов. Это означает, что разработчики, создающие новые смарт-контракты, могут иметь дело с кодовой базой, которая в значительной степени им неизвестна.

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

Ввод при наведении

Встречая идентификатор в неизвестной кодовой базе, вы можете не знать его тип. Если навести курсор на имя идентификатора (например, имя локальной переменной или имя функции), то во всплывающей подсказке будет показано имя этого идентификатора. Смотрите этот пример.

Перейти к определению

Другая часть информации об идентификаторе, которая может быть не сразу очевидна, это то, где этот идентификатор определен - это может быть как локальная переменная, определенная в той же функции, так и, например, функция, определенная в другом модуле. Если вы щелкните правой кнопкой мыши на имени идентификатора и выберите в меню опцию Go to Definition, ваш курсор будет перемещен к месту определения идентификатора. Смотрите этот пример.

Перейти к определению типа

Даже если вы знаете, где находится определение данного идентификатора, и вам известно имя его типа, это не обязательно означает, что найти определение его типа не составит труда. Например, вы можете знать, что тип идентификатора - struct SomeStruct, но вы все еще не знаете, какие поля есть в этой структуре. Если вы щелкните правой кнопкой мыши на имени идентификатора и выберите в меню опцию Go to Type Definition, ваш курсор будет перемещен туда, где определен тип этого идентификатора. Смотрите этот пример.

Поиск ссылок

Новейшей функцией, улучшающей понимание кода, является возможность найти все вхождения данного идентификатора во всей кодовой базе. Это может быть полезно, например, если вы хотите узнать, где вызывается та или иная функция. Если щелкнуть правой кнопкой мыши на имени идентификатора и выбрать в меню опцию Find All References, то все вхождения этого идентификатора будут отображены в левой панели окна редактора VSCode. См. этот пример.

Отчет об ошибках

Стандартный метод получения диагностики компилятора (ошибок, но также и предупреждений) для части кода Move заключается в запуске компилятора в командной строке и наблюдении за тем, что он выдает. Хотя этот метод, безусловно, достаточен, он может быть не самым удобным. Вместо этого в новой версии плагина VSCode мы ввели отображение диагностики компилятора в окне редактора. Всякий раз, когда вы сохраняете файл, языковой сервер запускает компилятор в фоновом режиме и отправляет полученный результат обратно в VSCode для отображения (информация о понимании кода также пересчитывается в то же время). См. этот пример.

Узнайте больше о Sui

Веб-сайт Sui - https://sui.io/ Портал разработчиков Sui - https://docs.sui.io/ Язык программирования Move Техническое описание Sui Форумы сообщества Создавайте вместе с нами!!! Мы с нетерпением ждем будущего и приглашаем создателей и строителей присоединиться к нам.