Произошла ошибка при активации удаленного языкового сервера Visual Studio

Обновлено: 04.07.2024

Использование кода Visual Studio

В этом разделе мы подробно рассмотрим разработку приложений Deno с использованием Visual Studio Code и официального расширения vscode_deno.

Расширение vscode напрямую интегрируется в интерфейс командной строки Deno с использованием протокола языкового сервера. Это помогает гарантировать, что информация, которую вы получаете о своем коде, соответствует тому, как этот код будет работать, когда вы попытаетесь запустить его в Deno CLI.

Расширение Deno устанавливается так же, как и другие расширения в vscode, путем просмотра расширений в vscode и выбора установки расширения Deno. Или, если у вас установлен vscode, вы можете просмотреть расширение по этой ссылке и установить его, если вы еще этого не сделали.

После первой установки расширения вы должны получить заставку, приветствующую вас в расширении. (Если вы пропустили его или хотите увидеть снова, просто используйте команду Deno: Добро пожаловать из палитры команд.)

Настройка расширения

В следующих разделах подробно описано, как настроить расширение, чтобы оно работало наилучшим образом для вас, и рассмотрено большинство доступных настроек.

Deno включение рабочей области

Мы понимаем, что не каждый проект, который вы можете редактировать с помощью vscode, является проектом Deno. По умолчанию vscode поставляется со встроенной языковой службой TypeScript/JavaScript, которая используется при редактировании файлов TypeScript или JavaScript.

Чтобы иметь поддержку API Deno, а также возможность разрешать модули, как это делает Deno CLI, вам необходимо включить Deno для рабочей области. Самый прямой способ сделать это — использовать Deno: Initialize Workspace Configuration из палитры команд vscode. Это активирует помощника, который спросит, хотите ли вы также включить linting и нестабильные API Deno для проекта. Эта команда укажет vscode сохранить эти настройки в конфигурации рабочей области (ваш корень рабочей области .vscode/setting.json ). Когда помощник завершит работу, вы получите уведомление о том, что Deno настроен для проекта.

Эти настройки (и другие настройки) доступны на панели настроек vscode. На панели параметр Deno: Enable, а при ручном редактировании JSON параметр deno.enable .

⚠️ vscode имеет настройки пользователя и рабочего пространства. Вероятно, вы не хотите включать Deno в настройках пользователя, так как тогда по умолчанию каждое рабочее пространство будет включено Deno.

Когда проект включен, расширение будет получать информацию непосредственно из установленного интерфейса командной строки Deno. Расширение также отключает встроенное расширение TypeScript/JavaScript.

Тот же механизм, который обеспечивает диагностику при использовании deno lint, также можно использовать через расширение. Включив параметр Deno: Lint на панели настроек (или deno.lint, если вы редактируете настройки в JSON), редактор должен начать отображать «предупреждения» lint в вашем коде. Дополнительную информацию о том, как использовать линтер Deno, см. в разделе «Линтер».

Использование карт импорта

В редакторе можно использовать карты импорта. Для параметра Deno: Import Map (или deno.importMap при ручном редактировании) должно быть установлено значение файла карты импорта. Если путь является относительным путем, он будет разрешен относительно корня рабочей области.

Использование файла tsconfig.json

Обычно файл tsconfig.json не требуется для проекта Deno. Однако есть несколько сценариев, в которых это может быть полезно, и если вы хотите применить те же настройки, что и при указании параметра --config в командной строке, можно использовать параметр Deno: Config. (или deno.config при ручном редактировании).

Deno CLI поставляется со встроенным средством форматирования, доступ к которому можно получить с помощью deno fmt, но его также можно настроить для использования с помощью vscode. Deno должен быть в раскрывающемся списке для настройки Редактор: Форматтер по умолчанию (или, если вы редактируете настройки вручную, это будет "editor.defaultFormatter": "denoland. vscode-дено" ).

Дополнительную информацию о том, как использовать средство форматирования, см. в программе форматирования кода.

Установка пути к интерфейсу командной строки Deno

Расширение ищет исполняемый файл командной строки Deno в hosts PATH , но иногда это нежелательно, и можно установить Deno: Path (или deno.path при ручном редактировании), указывающий на Deno исполняемый. Если указанный путь является относительным, он будет разрешен относительно корня рабочей области.

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

Расширение поддерживает автозаполнение реестра, когда удаленный реестр/веб-сайт модулей может дополнительно предоставлять метаданные, которые позволяют клиенту обнаруживать модули.По умолчанию расширение будет проверять хосты/источники, чтобы узнать, поддерживают ли они предложения, и если это так, расширение предложит вам посмотреть, хотите ли вы его включить. Это поведение можно изменить, сняв флажок Deno > Suggest > Imports: Auto Discover (или deno.suggest.imports.autoDiscover при редактировании вручную).

Отдельные хосты/источники можно включить или отключить, изменив параметр Deno > Suggest > Imports: Hosts/ deno.suggest.imports.hosts в соответствующем файле settings.json .

Кэширование удаленных модулей

Deno поддерживает удаленные модули и извлекает удаленные модули и сохраняет их локально в кэше. Когда вы делаете что-то вроде deno run , deno test , deno info или deno cache в командной строке, Deno CLI попытается получить любые удаленные модули и их зависимости и заполнить кеш.

Во время разработки кода в редакторе, если модуль не находится в кеше, вы получите диагностическое сообщение типа Некэшированный или отсутствующий удаленный URL: " https://deno.land/example/mod.ts ". для любых отсутствующих удаленных модулей. Deno не будет автоматически пытаться кэшировать модуль, если только он не является завершением предложения по импорту реестра (см. выше).

Помимо запуска команды в командной строке, расширение предоставляет способы кэширования зависимостей в редакторе. Отсутствующая зависимость будет иметь быстрое исправление, которое заключается в том, что Deno попытается кэшировать зависимость. Доступ к исправлениям можно получить, нажав CTRL. или ⌘ . когда редактор находится в описателе импорта или наводит указатель мыши на описатель и выбирает Быстрое исправление.

Есть также команда Deno: Cache Dependencies в палитре команд, которая попытается кэшировать любые зависимости модуля, активного в данный момент в редакторе.

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

  • Deno > Объектив кода: Реализации/ deno.codeLens.implementations — предоставляет объектив, в котором перечислены любые реализации элемента в других частях кода.
  • Deno > Объектив кода: ссылки/ deno.codeLens.references – предоставляет объектив, в котором будут перечислены любые ссылки на элементы в других частях кода.
  • Deno > Линза кода: ссылки на все функции/ deno.codeLens.referencesAllFunctions — предоставляет линзу, в которой перечислены все ссылки на все функции в коде. Все функции исключены только из списка Ссылки, упомянутого выше.

Проверка кодовой линзы

Deno CLI включает встроенный API тестирования, доступный в Deno.test . На сервере расширений и языков по умолчанию включена линза кода, которая позволяет запускать тест из редактора.

Когда у вас есть блок кода, обеспечивающий тест, например:

Непосредственно над тестом вы увидите линзу кода, подобную следующей:

Это ссылка, если щелкнуть ее, расширение запустит интерфейс командной строки Deno для запуска теста и отображения результатов. Основываясь на других ваших настройках, расширение попытается запустить ваш тест с теми же настройками. Если вам нужно настроить аргументы, предоставленные при выполнении теста deno, вы можете сделать это, установив параметр deno.codeLens.testArgs.

Расширение также попытается отследить, деструктурируете ли вы в том же модуле функцию Deno.test или назначите ее переменной. Таким образом, вы можете сделать что-то подобное и при этом работать с линзой кода:

Если вы хотите отключить эту функцию, это можно сделать, сняв настройку Deno > CodeLens: Test/ deno.codeLens.test.

Использование отладчика

Расширение взаимодействует напрямую с языковым сервером, но для некоторых задач разработки может потребоваться выполнение CLI напрямую. Расширение предоставляет определение задачи, позволяющее создавать задачи, выполняющие интерфейс командной строки deno из редактора.

Шаблон для задач Deno CLI имеет следующий интерфейс, который можно настроить в файле tasks.json в вашей рабочей области:

Некоторые команды, полезные в редакторе, настроены как шаблоны и могут быть добавлены в вашу рабочую область путем выбора Tasks: Configure Task в палитре команд и поиска deno-задач.

И пример того, как deno run mod.ts будет выглядеть в tasks.json:

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

Когда вы добавите папки в свою рабочую область и откроете настройки, у вас будет доступ к настройкам каждой папки. Если вы посмотрите на файл .vscode/settings.json в папке, вы увидите визуальную индикацию того, какие настройки применяются к папке, а какие — из конфигурации рабочей области:

скриншот файла .vscode/setting.json, сконфигурированного как папка рабочей области

Настройки папки рабочей области

Это параметры, которые можно задать для папки рабочей области. Остальные настройки в настоящее время применяются только к рабочей области:

  • deno.enable — определяет, включен ли языковой сервер Deno. При включении расширение отключит встроенные языковые службы VSCode JavaScript и TypeScript и вместо этого будет использовать языковой сервер Deno. логическое значение, по умолчанию false
  • deno.codeLens.test — определяет, включена ли линза тестового кода. логическое значение, по умолчанию true
  • deno.codeLens.testArgs — список аргументов, которые передаются в deno test при активации линзы тестового кода. массив строк, по умолчанию ["--allow-all"]

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

Для поддержки этого вы должны создать новую рабочую область (или добавить папку в существующую рабочую область) и в настройках настроить одну из папок так, чтобы для параметра deno.enable было установлено значение true, а для другой — значение false . После сохранения конфигурации рабочей области вы заметите, что языковой сервер Deno применяет диагностику только к включенным папкам, в то время как другая папка будет использовать встроенный компилятор TypeScript vscode для предоставления диагностики для файлов TypeScript и JavaScript.

Использование контейнера разработки

Использование контейнера разработки с vscode — отличный способ получить изолированную среду разработки, не беспокоясь об установке интерфейса командной строки Deno в вашей локальной системе.

Чтобы использовать контейнеры разработки, необходимо установить несколько предварительных условий:

  • Докер для рабочего стола
  • Visual Studio Code или программы предварительной оценки Visual Studio Code

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

Если у вас есть существующий проект Deno, в который вы хотите добавить поддержку контейнера разработки, вам потребуется выполнить команду Remote-Containers: Add Development Containers Configuration Files в палитре команд и затем выберите Показать все определения и найдите определение Deno. Это настроит для вас базовую конфигурацию .devcontainer, которая установит последнюю версию Deno CLI в контейнере.

После добавления vscode предложит открыть проект в контейнере разработки. Если вы решите, vscode создаст контейнер разработки и повторно откроет рабочую область, используя контейнер разработки, в котором будут установлены Deno CLI и расширение vscode_deno.

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

Ошибки/диагностика, такие как Путь импорта не может заканчиваться расширением '.ts'. или Не удается найти имя "Дено".

Обычно это ситуация, когда Deno не включен в проекте Deno. Если вы посмотрите на источник диагностики, вы, вероятно, увидите ts(2691) . ts указывает, что он исходит от встроенного механизма TypeScript/JavaScript в vscode. Вам нужно будет убедиться, что ваша конфигурация настроена правильно, а параметр Deno: Enable/ deno.enable равен true.

Вы также можете проверить, что языковой сервер Deno считает вашей текущей активной конфигурацией, с помощью команды Deno: Language Server Status из палитры команд. Это отобразит документ с языкового сервера с разделом под названием Конфигурация рабочей области. Это даст вам информацию о том, что vscode сообщает о конфигурации языковому серверу.

Расширение IBM Z® Open Editor имеет некоторые известные проблемы и ограничения. На этой странице отображается статус текущей версии. Также просмотрите список открытых проблем и запросов на улучшения в нашем репозитории Github

открыть в новом окне. В нем могут быть перечислены проблемы, которые еще не задокументированы здесь.

Если правильная версия Java не может быть найдена в пути текущего пользователя или переменная среды JAVA_HOME не определена, вы можете увидеть сообщения об ошибках в представлении «Вывод» VS Code. Такие ошибки также могут быть вызваны другими причинами, такими как нехватка свободной памяти для Java в вашей системе.

Выполните все шаги, описанные на странице "Начало работы", для настройки Java, чтобы опробовать различные варианты.

Может случиться так, что языковые серверы, предоставляемые IBM Z Open Editor, станут несогласованными и не будут работать должным образом.Например, один языковой сервер может перестать сообщать об ошибках синтаксиса или больше не сможет разрешать прописи. Вместо полного закрытия и перезапуска VS Code можно попробовать нажать клавишу F1 и ввести следующие команды для сброса одного или нескольких языковых серверов.

  • IBM Z Open Editor: приостановка языкового сервера COBOL: останавливает языковой сервер COBOL и перезапускает его при повторном открытии файла COBOL.
  • IBM Z Open Editor: приостановить языковой сервер PL/I: останавливает языковой сервер PL/I и перезапускает его при повторном открытии файла PL/I.
  • IBM Z Open Editor: Pause the Assembler Language Server: останавливает языковой сервер HLASM и перезапускает его при повторном открытии файла HLASM.
  • IBM Z Open Editor: приостановка языкового сервера REXX: останавливает языковой сервер REXX и перезапускает его при повторном открытии файла REXX.
  • IBM Z Open Editor: перезагрузить профили Zowe. Если вы изменили пароль своего профиля CLI Zowe, который используется для загрузки файлов удаленного включения, таких как прописи, вам необходимо выполнить эту команду, чтобы обновить профиль Zowe.
  • Разработчик: перезагрузить окно: перезапускает текущее окно VS Code и все его расширения. Если у вас одновременно открыто много окон редактора, вы можете использовать эту команду для сброса только текущего окна, в котором вы запускаете команду.

открыть в новом окне ; однако имейте в виду, что группы свойств, определяющие имена путей для зависимостей ресурсов COBOL, PL/I и HLASM, управляются как так называемые настройки VS Code на уровне окна. Это означает, что эти группы свойств должны быть определены для рабочих областей с несколькими корнями для всей рабочей области. Настройки уровня проекта будут игнорироваться. Если вы собираетесь использовать проект как часть рабочей области, а также независимо от рабочей области, вам необходимо иметь две копии групп свойств в каждом месте. Когда вы работаете в рабочей области, редактор будет искать группы свойств в файле .code-workspace. Когда вы работаете только в каталоге проекта за пределами рабочей области, он будет искать группы свойств в файле .vscode/settings.json рабочей области.

Дополнительные сведения об этом ограничении см. в разделе Настройка групп свойств.

Файлы ZAPP в настоящее время не поддерживают многокорневые рабочие области.

Почти все возможности, описанные в этой документации, доступны при использовании IBM Z Open Editor с Eclipse Che или Red Hat CodeReady Workspaces. Однако обратите внимание на следующие ограничения.

Фрагменты кода: Eclipse Theia, Eclipse Che или Red Hat CodeReady Workspaces не предоставляют галерею фрагментов кода, как в VS Code. Таким образом, вы не можете легко определить свои собственные пользовательские фрагменты кода с помощью редактора Theia. Однако обширная библиотека фрагментов кода IBM Z Open Editor доступна через функцию завершения кода с помощью сочетания клавиш Ctrl+Пробел. Как правило, фрагменты кода можно найти, прокрутив вниз или введя любую подстроку, например CICS, чтобы отфильтровать список до доступных фрагментов кода CICS.

Защищенные учетные данные Zowe CLI в настоящее время не поддерживаются в Z Open Editor в CodeReady Workspaces. Хотя в Z Open Editor добавлена ​​полная поддержка подключаемого модуля Zowe CLI Secure Credentials

открыть в новом окне с выпуском 1.1.0, все еще существуют ограничения для Eclipse Che и Red Hat CodeReady Workspaces.

Имена путей, указанные для групп свойств, всегда чувствительны к регистру, даже если для параметра "zopeneditor.enforceCaseSensitiveIncludeFileNames" установлено значение false . Однако этот параметр работает для имен файлов, которые совпадают в папках, соответствующих группам свойств.

Полный список проблем Red Hat CodeReady Workspaces 2.3 см. в примечаниях к выпуску и известных проблемах

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

  • В представлении «Структура» содержимое не отображается.
  • Ctrl+Space показывает шаблоны кода, но не синтаксические дополнения.
  • Многие пункты меню недоступны.

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

  • Подсветка синтаксиса
  • Синтаксические ошибки
  • Выделение документа
  • Наведите курсор
  • Перейти к объявлению
  • Найти все ссылки в файле и в нескольких файлах
  • Просматривать ссылки в файле и между несколькими файлами
  • Переименовать символ в файле и в нескольких файлах
  • Структура
  • Завершение кода
  • Фрагменты
  • Разрешение тетради и поддержка наведения курсора на тетрадь
  • Поддержка ссылки на документ для открытия тетради с помощью Ctrl+щелчок (Windows) или Cmd+щелчок (Mac)
  • Поддержка встроенных языков, таких как SQL, CICS® и DLI.
  • Перенумеровать и отменить нумерацию порядковых номеров
  • Поддержка COBOL 6.3
    • Новые функции DATETIME
    • Функция UUID4
    • Параметры JSON GENERATE/PARSE
    • Ложные предупреждения о недоступности кода. В некоторых случаях редактор ошибочно сообщает о недоступности кода во встроенных инструкциях SQL и CICS, таких как EXEC CICS HANDLE . Об одном таком случае сообщается в этом выпуске.
    • Синтаксические ошибки
    • Найти все ссылки в файле
    • Просматривать ссылки в файле
    • Переименовать символ в файле
    • Структура
    • Подсветка синтаксиса
    • Завершение кода
    • Фрагменты
    • Поддержка встроенных языков, таких как SQL, CICS и DLI.
    • Нет поддержки Hover.
    • Не поддерживается объявление "Перейти к объявлению".
    • Не поддерживается поиск всех ссылок в нескольких файлах
    • Отсутствует поддержка ссылок Peek для нескольких файлов.
    • Нет поддержки символа переименования из тетради в файлы, которые его содержат.

    В следующих списках показано состояние реализации языкового сервера PL/I. Используйте эти списки, чтобы убедиться, что функция, которую вы ищете, реализована или считается известной проблемой. Сообщите нам, если у вас возникнут дополнительные проблемы.

    • Подсветка синтаксиса
    • Синтаксические ошибки
    • Выделение документа
    • Наведите курсор
    • Перейти к объявлению
    • Найти все ссылки в файле и в нескольких файлах
    • Просматривать ссылки в файле и между несколькими файлами
    • Переименовать символ в файле и в нескольких файлах
    • Структура
    • Завершение кода
    • Включить разрешение файлов и включить поддержку наведения на файл
    • Поддержка ссылки на документ для открытия включаемого файла с помощью Ctrl+щелчок (Windows) или Cmd+щелчок (Mac)
    • Поддержка встроенных языков, таких как SQL, CICS и DLI.
    • *process (или %process ) операторы параметров компиляции, такие как:
      • *обработать источник MARGINS(2,120);
      • *процесс SYSTEM(CIS, DB2);
      • *Проверка списка процессов;
      • Синтаксис и другие поддерживаемые параметры компилятора можно найти в:
      • НУЛЛИНИТ
      • ПОВТОРНАЯ ИНИЦИАЦИЯ
      • Регулярное выражение
      • ПОДПОЛНЕНИЕ
      • XMLIGNORE
      • Макросы не поддерживаются
      • Левое поле в настоящее время не полностью настраивается. Минимальное требуемое значение – 2.
      • Синтаксические ошибки (лексирование и синтаксический анализ)
      • Найти все ссылки в файле
      • Просматривать ссылки в файле
      • Переименовать символ в файле
      • Структура
      • Подсветка синтаксиса
      • Завершение кода
      • Поддержка встроенных языков, таких как SQL, CICS и DLI.
      • Отсутствует поддержка отображения синтаксических ошибок при разрешении переменных.
      • Нет поддержки Hover.
      • Не поддерживается объявление "Перейти к объявлению".
      • Не поддерживается поиск всех ссылок в нескольких файлах
      • Отсутствует поддержка ссылок Peek для нескольких файлов.
      • Нет поддержки символа переименования для нескольких файлов.

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

      • Подсветка синтаксиса
      • Синтаксические ошибки, в том числе следующие:
        • Операции копирования не разрешены
        • Пробелы в строке продолжения
        • Автозавершение кода не поддерживает символы, определенные в тетрадях за пределами SYS1.MACLIB
        • Ограничения подсветки синтаксиса для многострочных строк
        • Ограничения выделения синтаксиса для непродолжительных строк, начинающихся со столбца 16.
        • Подсветка синтаксиса не распознает строки продолжения, начинающиеся со столбца 17 и далее как комментарии.
        • Если CSECT имеет то же имя, что и TITLE, CSECT неправильно отображается в представлении «Структура».
        • Переход к определению и наведение курсора не работают для операндов, в которых указанное поле имени представляет собой символ смешанного регистра, регистр символов которого отличается от регистра выбранного операнда.

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

        • Подсветка синтаксиса
        • Синтаксические ошибки
        • Наведите курсор
        • Найти все ссылки
        • Структура
        • Завершение кода
        • Нет поддержки оператора include
        • Нет поддержки группы свойств.
        • Ключевое слово END не поддерживается в качестве переменной.
        • Нет поддержки встроенных языков
        • Code Completion и Hover не поддерживают ключевые слова, которые не являются инструкциями для ключевых слов.
        • Некоторые цветовые темы могут неправильно выделять все символы.
        • Ключевые слова, которые следуют за ключевым словом смешанного регистра, могут иметь неправильный цвет. Например, ключевое слово, которое следует за ключевым словом "ADDRess", будет окрашено как переменная
        • Файлы, содержащие символ замены (�), анализируются неправильно
        • Предложения простого символа, постоянного символа, составного символа, основы и внутренних подпрограмм ограничены текущим файлом в редакторе.
        • Автодополнение кода вставляет дополнительную пару скобок, когда существующий вызов функции в редакторе заменяется встроенной функцией.

        Известные проблемы и ограничения подключаемого модуля IBM RSE API для Zowe CLI (подключаемый модуль RSE CLI)

        открыть в новом окне, где можно найти решение, чтобы вернуть эту поддержку.

        При установке подключаемого модуля RSE CLI вы можете столкнуться с предупреждением npm о неудовлетворенной зависимости узла интерфейса командной строки Zowe, даже если у вас установлена ​​соответствующая версия. В версии 6 npm, установленной вместе с узлом 12, есть известная ошибка. Наличие предупреждений не помешает успешной установке плагина; однако эти предупреждения можно устранить, выполнив команду npm install npm@latest -g и получив версию 7 или выше npm.

        • При использовании тега --mappings-file для указания местоположения файла сопоставлений, используемого для загрузки и скачивания файлов MVS, если вы указываете zapp.json с zapp.yaml в одном каталоге, файл zapp. yaml будет иметь приоритет над файлом JSON. При использовании файлов ZAPP на уровне проекта рекомендуется иметь только один файл zapp.yaml или zapp.json.
        • Для пользователей Mac с подключаемым модулем Zowe SCS пользователю будет предложено ввести учетные данные 2 раза из-за 2 безопасных полей (имя пользователя и пароль) в профиле RSE.
        • В настоящее время чувствительные ко времени веб-токены JSON (JWT) будут храниться в виде обычного текста в файле YAML профиля.
        • Веб-маркеры JSON не поддерживаются Zowe Explorer 1.9.0 или более ранними версиями.
        • Если вы создали профиль RSE с помощью Zowe Explorer 1.11.1 или более ранней версии и оставили значения имени пользователя и пароля пустыми, а в YAML профиля сохранены пустые строки, вам потребуется добавить --user и --password теги с соответствующими значениями, когда вы используете операции командной строки с этим профилем, даже если JWT был выпущен для профиля в это время. Мы рекомендуем создавать профиль с помощью операций командной строки или редактировать профиль с помощью Zowe Explorer 1.12.0 или более поздней версии, чтобы исключить пустые строки в файле YAML профиля.
        • Команда JWT logout zowe rse auth logout не поддерживается хост-компонентом RSE API 1.0.0.
        • Если VS Code открывается во время входа в систему, а выход из системы выполняется с помощью команды CLI, требуется обновление VS Code, чтобы получить изменения в файле YAML профиля, чтобы обновления профиля использовались в Zowe Explorer.
        • Команда zowe rse issue command , которую можно использовать для выполнения команды TSO, не поддерживается компонентом хоста RSE API 1.0.0.
        • Ввод команды UNIX с профилем RSE через Zowe Explorer пока не поддерживается.

        В настоящее время при загрузке файлов USS в Zowe Explorer кодировка профиля по умолчанию не распознается.

        Если для подключаемого модуля RSE CLI не задан профиль по умолчанию, Z Open Editor не будет активироваться в Zowe Explorer. Вы можете увидеть, установлен ли профиль по умолчанию, введя команду:

        список профилей zowe rse

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

        с названием профиля, который вы хотите использовать по умолчанию:

        профили zowe set-default rse

        Следующие функции еще не реализованы:

        Следующие функции еще не реализованы:

        • Выполните команду «Изменить»
        • Подайте команду "Стоп".

        USS не принимает загрузку имен каталогов или файлов с пробелами в них.

        При указании путей USS в терминале Bash Windows возникает ошибка (например: /u/userid ). Чтобы решить эту проблему, создайте переменную среды MSYS_NO_PATHCONV со значением 1 в пользовательских переменных и перезапустите терминал.

        Если вы хотите оставить отзыв или сообщить о проблеме, откройте проблему в репозитории GitHub

        открыть в новом окне. Любые отчеты и отзывы приветствуются.

        Соавторы: Билли Симмонс , Ши Кун Ли , Питер Хаумер , Грег Ламберт , Лорен Ли , Мин Хуанг , Лорен Ли , Брэдли Кнайси , Билли Симмонс , БиллиДжин-Симмонс , Сайле , Руди Леонел Пичола Флорес , Билли Джин Симмонс , шикунли , Лорен К Ли , Арвин Бхатнагар , Кенг-Хуи Билл , Кмазелли , Питер Хаумер

        В этом разделе мы подробно рассмотрим разработку приложений Deno с использованием Visual Studio Code и официального расширения vscode_deno.

        Установка

        Расширение vscode напрямую интегрируется в интерфейс командной строки Deno с использованием протокола языкового сервера. Это помогает гарантировать, что информация, которую вы получаете о своем коде, соответствует тому, как этот код будет работать, когда вы попытаетесь запустить его в Deno CLI.

        Расширение Deno устанавливается, как и другие расширения в vscode, путем просмотра расширений в vscode и выбора установки расширения Deno. Или, если у вас установлен vscode, вы можете просмотреть расширение по этой ссылке и установить его, если вы еще этого не сделали.

        После первой установки расширения вы должны получить заставку, приветствующую вас в расширении. (Если вы пропустили его или хотите увидеть снова, просто используйте команду Deno: Добро пожаловать из палитры команд.)

        Настройка расширения

        В следующих разделах подробно описано, как настроить расширение, чтобы оно работало наилучшим образом для вас, и будет рассмотрено большинство доступных настроек.

        Deno включение рабочей области

        Мы понимаем, что не каждый проект, который вы можете редактировать с помощью vscode, является проектом Deno. По умолчанию vscode поставляется со встроенной языковой службой TypeScript/JavaScript, которая используется при редактировании файлов TypeScript или JavaScript.

        Чтобы иметь поддержку API Deno, а также возможность разрешать модули, как это делает Deno CLI, вам необходимо включить Deno для рабочей области. Самый прямой способ сделать это — использовать Deno: Initialize Workspace Configuration из палитры команд vscode . Это активирует помощника, который спросит, хотите ли вы также включить linting и нестабильные API Deno для проекта. Эта команда укажет vscode сохранить эти настройки в конфигурации рабочей области (ваш корень рабочей области .vscode/settings.json ). Когда помощник завершит работу, вы получите уведомление о том, что Deno настроен для проекта.

        Эти настройки (и другие настройки) доступны на панели настроек vscode. На панели используется параметр Deno: Enable, а при ручном редактировании JSON используется параметр deno.enable .

        ⚠️ vscode имеет настройки пользователя и рабочего пространства. Вероятно, вы не хотите включать Deno в настройках пользователя, так как тогда по умолчанию каждое рабочее пространство будет включено Deno.

        Когда проект включен, расширение будет получать информацию непосредственно из установленного интерфейса командной строки Deno. Расширение также отключает встроенное расширение TypeScript/JavaScript.

        Использование линтинга

        Тот же механизм, который обеспечивает диагностику при использовании deno lint, также можно использовать через расширение. Включив параметр Deno: Lint на панели настроек (или deno.lint, если вы редактируете настройки в JSON), редактор должен начать отображать «предупреждения» lint в вашем коде. Дополнительную информацию о том, как использовать линтер Deno, см. в разделе «Линтер».

        Использование карт импорта

        В редакторе можно использовать карты импорта. Для параметра Deno: Import Map (или deno.importMap при ручном редактировании) должно быть установлено значение файла карты импорта. Если путь является относительным путем, он будет разрешен относительно корня рабочей области.

        Использование файла конфигурации

        Обычно файл конфигурации не требуется для проекта Deno. Однако есть несколько сценариев, в которых это может быть полезно, и если вы хотите применить те же настройки, что и при указании параметра --config в командной строке, можно использовать параметр Deno: Config. (или deno.config при ручном редактировании).

        Использование форматирования

        Deno CLI поставляется со встроенным средством форматирования, к которому можно получить доступ с помощью deno fmt, но его также можно настроить для использования с помощью vscode. Deno должен быть в раскрывающемся списке для настройки Редактор: Форматтер по умолчанию (или, если вы редактируете настройки вручную, это будет "editor.defaultFormatter": "denoland. vscode-дено" ).

        Дополнительную информацию о том, как использовать средство форматирования, см. в программе форматирования кода.

        Установка пути к интерфейсу командной строки Deno

        Расширение ищет исполняемый файл CLI Deno в PATH хоста, но иногда это нежелательно, и можно задать Deno: Path (или deno.path при ручном редактировании) так, чтобы он указывал на исполняемый файл Deno. Если указанный путь является относительным, он будет разрешен относительно корня рабочей области.

        Импорт предложений

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

        Расширение поддерживает автозаполнение реестра, когда удаленный реестр/веб-сайт модулей может дополнительно предоставлять метаданные, которые позволяют клиенту обнаруживать модули.По умолчанию расширение будет проверять хосты/источники, чтобы узнать, поддерживают ли они предложения, и если это так, расширение предложит вам посмотреть, хотите ли вы его включить. Это поведение можно изменить, сняв флажок Deno > Suggest > Imports: Auto Discover (или deno.suggest.imports.autoDiscover при редактировании вручную).

        Отдельные хосты/источники можно включить или отключить, изменив параметр Deno > Suggest > Imports: Hosts/ deno.suggest.imports.hosts в соответствующем файле settings.json .

        Кэширование удаленных модулей

        Deno поддерживает удаленные модули и извлекает удаленные модули и сохраняет их локально в кэше. Когда вы делаете что-то вроде deno run , deno test , deno info или deno cache в командной строке, Deno CLI попытается получить любые удаленные модули и их зависимости и заполнить кеш.

        Во время разработки кода в редакторе, если модуль не находится в кеше, вы получите диагностику типа Некэшированный или отсутствующий удаленный URL: " https://deno.land/example/mod.ts "< /em> для любых отсутствующих удаленных модулей. Deno не будет автоматически пытаться кэшировать модуль, если только он не является завершением предложения по импорту реестра (см. выше).

        Помимо запуска команды в командной строке, расширение предоставляет способы кэширования зависимостей в редакторе. Отсутствующая зависимость будет иметь быстрое исправление, которое заключается в том, что Deno попытается кэшировать зависимость. Доступ к исправлениям можно получить, нажав CTRL . или ⌘ . когда редактор находится в описателе импорта или наводит указатель мыши на описатель и выбирает Быстрое исправление.

        Есть также команда Deno: Cache Dependencies в палитре команд, которая попытается кэшировать любые зависимости модуля, активного в данный момент в редакторе.

        Кодовые линзы

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

        • Deno > Объектив кода: Реализации/ deno.codeLens.implementations — предоставляет объектив, в котором перечислены любые реализации элемента в других частях кода.
        • Deno > Объектив кода: ссылки/ deno.codeLens.references – предоставляет объектив, в котором будут перечислены любые ссылки на элементы в других частях кода.
        • Deno > Линза кода: ссылки на все функции/ deno.codeLens.referencesAllFunctions — предоставляет линзу, в которой перечислены все ссылки на все функции в коде. Все функции исключены только из списка Ссылки, упомянутого выше.

        Проверка кодовой линзы

        Deno CLI включает встроенный API тестирования, доступный в Deno.test . На сервере расширений и языков по умолчанию включена линза кода, которая позволяет запускать тест из редактора.

        Когда у вас есть блок кода, обеспечивающий тест, например:

        Непосредственно над тестом вы увидите линзу кода, подобную следующей:

        Это ссылка, если щелкнуть ее, расширение запустит интерфейс командной строки Deno для запуска теста и отображения результатов. Основываясь на других ваших настройках, расширение попытается запустить ваш тест с теми же настройками. Если вам нужно настроить аргументы, предоставленные при выполнении теста deno, вы можете сделать это, установив параметр deno.codeLens.testArgs.

        Расширение также попытается отследить, деструктурируете ли вы в том же модуле функцию Deno.test или назначите ее переменной. Таким образом, вы можете сделать что-то подобное и при этом работать с линзой кода:

        Если вы хотите отключить эту функцию, это можно сделать, сняв настройку Deno > CodeLens: Test/ deno.codeLens.test.

        Использование отладчика

        Задачи

        Расширение взаимодействует напрямую с языковым сервером, но для некоторых задач разработки может потребоваться выполнение CLI напрямую. Расширение предоставляет определение задачи, позволяющее создавать задачи, выполняющие интерфейс командной строки deno из редактора.

        Задачи Deno CLI

        Шаблон для задач Deno CLI имеет следующий интерфейс, который можно настроить в файле tasks.json в вашей рабочей области:

        Некоторые команды, полезные в редакторе, настроены как шаблоны и могут быть добавлены в вашу рабочую область путем выбора Tasks: Configure Task в палитре команд и поиска deno-задач.

        И пример того, как deno run mod.ts будет выглядеть в tasks.json:

        Папки рабочей области

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

        Когда вы добавите папки в свою рабочую область и откроете настройки, у вас будет доступ к настройкам каждой папки. Если вы посмотрите на файл .vscode/settings.json в папке, вы увидите визуальную индикацию того, какие настройки применяются к папке, а какие — из конфигурации рабочей области:

        скриншот файла .vscode/setting.json, сконфигурированного как папка рабочей области

        Настройки папки рабочей области

        Это параметры, которые можно задать для папки рабочей области. Остальные настройки в настоящее время применяются только к рабочей области:

        • deno.enable — определяет, включен ли языковой сервер Deno. При включении расширение отключит встроенные языковые службы vscode JavaScript и TypeScript и вместо этого будет использовать языковой сервер Deno. логическое значение, по умолчанию false
        • deno.codeLens.test — определяет, включена ли линза тестового кода. логическое значение, по умолчанию true
        • deno.codeLens.testArgs — список аргументов, которые передаются в deno test при активации линзы тестового кода. массив строк, по умолчанию ["--allow-all"]

        Смешанные проекты Deno

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

        Для поддержки этого вы должны создать новую рабочую область (или добавить папку в существующую рабочую область) и в настройках настроить одну из папок так, чтобы для параметра deno.enable было установлено значение true, а для другой — значение false . После сохранения конфигурации рабочей области вы заметите, что языковой сервер Deno применяет диагностику только к включенным папкам, в то время как другая папка будет использовать встроенный компилятор vscode TypeScript для предоставления диагностики для файлов TypeScript и JavaScript.

        Использование контейнера разработки

        Использование контейнера разработки с vscode — отличный способ получить изолированную среду разработки, не беспокоясь об установке интерфейса командной строки Deno в вашей локальной системе.

        Чтобы использовать контейнеры разработки, необходимо установить несколько предварительных условий:

        • Докер для рабочего стола
        • Visual Studio Code или программы предварительной оценки Visual Studio Code

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

        Если у вас есть существующий проект Deno, в который вы хотите добавить поддержку контейнера разработки, вам потребуется выполнить команду Remote-Containers: Add Development Containers Configuration Files в палитре команд и затем выберите Показать все определения и найдите определение Deno. Это настроит для вас базовую конфигурацию .devcontainer, которая установит последнюю версию Deno CLI в контейнере.

        После добавления vscode предложит открыть проект в контейнере разработки. Если вы решите, vscode создаст контейнер разработки и повторно откроет рабочую область, используя контейнер разработки, в котором будут установлены Deno CLI и расширение vscode_deno.

        Устранение неполадок

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

        Ошибки/диагностика, такие как Путь импорта не может заканчиваться расширением '.ts'. или Не удается найти имя "Дено".

        Обычно это ситуация, когда Deno не включен в проекте Deno. Если вы посмотрите на источник диагностики, вы, вероятно, увидите ts(2691) . ts указывает, что он исходит от встроенного механизма TypeScript/JavaScript в vscode. Вам нужно будет убедиться, что ваша конфигурация настроена правильно, а параметр Deno: Enable/ deno.enable равен true.

        Вы также можете проверить, что языковой сервер Deno считает вашей текущей активной конфигурацией, с помощью команды Deno: Language Server Status из палитры команд. Это отобразит документ с языкового сервера с разделом под названием Конфигурация рабочей области. Это даст вам информацию о том, что vscode сообщает о конфигурации языковому серверу.

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

        Ошибки запуска ядра¶

        Если вы получили сообщение Произошла ошибка при запуске ядра в консоли IPython , Spyder не удалось запустить новый интерпретатор Python в текущей рабочей среде для запуска вашего кода. Это может быть вызвано рядом проблем, но большинство из них можно довольно быстро устранить, выполнив несколько простых действий.

        Ядра Spyder не установлены/несовместимы¶

        Spyder требует наличия поддерживаемой версии пакета spyder-kernels в рабочей среде, в которой вы хотите запустить консоль.

        Диалоговое окно ошибки версии ядра

        Он включен по умолчанию в Anaconda, но если вы хотите запустить свой код в другой среде или установке Python, вам нужно убедиться, что он установлен и обновлен до последней версии.

        Проверьте требуемую версию spyder-kernels для вашей версии Spyder в следующей таблице:

        Совместимость версий Spyder и Spyder-Kernels ¶

        Для этого активируйте среду, а затем установите spyder-kernels. Если вы используете Anaconda, откройте терминал (подсказка Anaconda в Windows) и выполните:

        В противном случае активируйте свою среду любым способом, которым вы ее создали, и выполните:

        Для обеих предыдущих команд замените соответствующей версией в таблице.

        Проблема с другой зависимостью¶

        Если ядро ​​отображает длинную трассировку ошибок, в которой упоминаются другие пакеты, такие как ipython , ipykernel , jupyter_client , traitlets или pyzmq , проблема может заключаться в устаревшей или несовместимой версии пакета зависимостей. Чтобы это исправить, активируйте среду и обновите ключевые зависимости.

        В среде Anaconda:

        В противном случае активируйте свою среду любым способом, которым вы ее создали, и запустите:

        AttributeError/ImportError¶

        Проверьте последние несколько строк сообщения об ошибке и посмотрите, относится ли это к AttributeError или ImportError или к файлу, который вы создали в текущем рабочем каталоге или в домашней папке ( C:/Users/YOUR_USERNAME в Windows, /Users /YOUR_USERNAME в macOS или /home/YOUR_USERNAME в Linux).

        Spyder

        Если это так, ошибка, скорее всего, связана с тем, что имя вашего файла совпадает с именем модуля стандартной библиотеки Python, например string.py или time.py , который переопределяет встроенный модуль, который Spyder-Kernels пытается нагрузка. Чтобы исправить это, просто переименуйте ваш файл во что-то, отличное от одного из этих имен, и попробуйте перезапустить ядро. Чтобы проверить имена этих модулей, см. список в документации стандартной библиотеки Python.

        Завершение/помощь не работает¶

        Чтобы обеспечить завершение кода, справку и анализ в режиме реального времени в редакторе, Spyder использует Python Language Server (PyLS), реализацию спецификации протокола Language Server, используемую VSCode, Atom и другими популярными редакторами/IDE. Большинство проблем со справкой и завершением не зависят от Spyder и связаны либо с ограничениями PyLS, либо с анализируемым кодом, но некоторые из них можно обойти.

        Отсутствует строка документации объекта¶

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

        Строка документа не найдена в области справки

        В этом случае единственным решением будет добавить его в исходный код исходной функции, метода или класса.

        Объект не найден¶

        Некоторые объекты, написанные на C, Cython или другом языке; генерируется динамически во время выполнения; или метод объекта, который вы создаете, не может быть легко найден без выполнения кода.

        Объект не найден в области справки

        Однако после запуска кода в консоли IPython вы сможете получить там справку и дополнения для объекта.

        LSP перестал работать¶

        Иногда, особенно после некоторого времени использования Spyder, автодополнение кода, справка и анализ могут перестать работать. В этом случае вы можете проверить статус LSP с помощью элемента LSP Python в строке состояния Spyder в нижней части экрана и перезапустить его, щелкнув его правой кнопкой мыши и выбрав элемент Restart Python Language Server.

        Spyder с диалоговым окном перезапуска LSP

        Ошибка/зависимость Spyder¶

        Учитывая разнообразие зависимостей, связанных с работой LSP, несовместимая или устаревшая версия в вашей среде может привести к появлению сообщений об ошибках, неполным результатам или сбою справки/анализа вообще.

        Чтобы решить эту проблему, сначала попробуйте обновить Anaconda и Spyder, как описано в разделе «Первая помощь». Если проблема все еще не решена, обновите различные соответствующие зависимости с помощью:

        Проблемы с плагинами¶

        Плагин вообще не работает¶

        Если вы установили подключаемый модуль Spyder, но не видите его, перейдите в подменю «Панели» меню «Вид» и выберите имя подключаемого модуля, после чего его панель должна стать видимой. Если вы не видите подключаемый модуль там, выберите пункт «Зависимости» в меню «Справка» и посмотрите, отображается ли подключаемый модуль внизу.

        Диалог зависимостей, показывающий плагин Unittest

        Если подключаемый модуль с проблемой не указан в диалоговом окне зависимостей, убедитесь, что вы установили его в той же среде, что и Spyder. Если у вас есть, то проблема вполне может быть вызвана проблемой зависимости. Проверьте, можете ли вы импортировать подключаемый модуль вручную, открыв консоль Python в той же среде, что и Spyder, и набрав, например, import spyder_unittest, чтобы протестировать подключаемый модуль Spyder-Unittest; эта команда должна выполняться без ошибок.

        Если ничего из этого не помогло вам решить проблему, перейдите к следующему разделу.

        Другие проблемы¶

        Если вы получаете сообщение об ошибке, в котором упоминается или связано с подключаемым модулем Spyder, например spyder-unittest , spyder-terminal или spyder-notebook , или если вы столкнулись с какой-либо другой проблемой с подключаемым модулем Spyder, в первую очередь следует обновить Spyder и подключаемый модуль до их последних версий.

        Если это не решит проблему, проверьте веб-сайт или репозиторий подключаемого модуля, чтобы узнать, совместим ли он с вашей версией Spyder.

        Наконец, если проблема не в совместимости, проверьте эти репозитории, чтобы узнать, не была ли проблема уже открыта, и сообщите об этом там, если нет.

        Читайте также: