All Projects → 1c-syntax → Bsl Language Server

1c-syntax / Bsl Language Server

Licence: other
Реализация Language Server Protocol для языка 1C (BSL)

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Bsl Language Server

Gatsby Plugin Algolia
A plugin to push to Algolia based on graphQl queries
Stars: ✭ 154 (+0%)
Mutual labels:  hacktoberfest
Isee
R/shiny interface for interactive visualization of data in SummarizedExperiment objects
Stars: ✭ 155 (+0.65%)
Mutual labels:  hacktoberfest
Cylc Flow
Cylc: a workflow engine for cycling systems. Repository master branch: core meta-scheduler component of cylc-8 (in development); Repository 7.8.x branch: full cylc-7 system.
Stars: ✭ 154 (+0%)
Mutual labels:  hacktoberfest
Mifos Mobile
Repository for the Mifos Mobile Banking App for clients
Stars: ✭ 154 (+0%)
Mutual labels:  hacktoberfest
Httpmocker
HttpMocker is a simple HTTP mocking library written in Kotlin to quickly and easily handle offline modes in your apps
Stars: ✭ 155 (+0.65%)
Mutual labels:  hacktoberfest
Adonisjs.com
🕸 Source Code of the website adonisjs.com
Stars: ✭ 155 (+0.65%)
Mutual labels:  hacktoberfest
Validate Docbr
Pacote Python para validação de documentos brasileiros
Stars: ✭ 152 (-1.3%)
Mutual labels:  hacktoberfest
Wsl2 Ssh Pageant
bridge between windows pageant and wsl2
Stars: ✭ 155 (+0.65%)
Mutual labels:  hacktoberfest
Symfony Docs
The Symfony documentation
Stars: ✭ 1,924 (+1149.35%)
Mutual labels:  hacktoberfest
Docs
The October CMS Documentation
Stars: ✭ 155 (+0.65%)
Mutual labels:  hacktoberfest
Helm Charts
Jenkins community Helm charts
Stars: ✭ 154 (+0%)
Mutual labels:  hacktoberfest
Demeter
Demeter is a tool for scraping the calibre web ui
Stars: ✭ 155 (+0.65%)
Mutual labels:  hacktoberfest
Kalm.js
The socket manager
Stars: ✭ 155 (+0.65%)
Mutual labels:  hacktoberfest
Pagermon
Multimon-ng pager message parser and viewer
Stars: ✭ 154 (+0%)
Mutual labels:  hacktoberfest
Roast
🦋 Raku test suite
Stars: ✭ 155 (+0.65%)
Mutual labels:  hacktoberfest
Gatsby Remark Oembed
A GatsbyJS Plugin that transforms oembed links into its corresponding embed code.
Stars: ✭ 154 (+0%)
Mutual labels:  hacktoberfest
Layercache
Caching made simple for Android and Java.
Stars: ✭ 155 (+0.65%)
Mutual labels:  hacktoberfest
Time To Leave
Log work hours and get notified when it's time to leave the office and start to live.
Stars: ✭ 155 (+0.65%)
Mutual labels:  hacktoberfest
Proctoring Ai
Creating a software for automatic monitoring in online proctoring
Stars: ✭ 155 (+0.65%)
Mutual labels:  hacktoberfest
Jsk visualization
jsk visualization ros packages
Stars: ✭ 155 (+0.65%)
Mutual labels:  hacktoberfest

BSL Language Server

Actions Status Download JitPack GitHub Releases GitHub All Releases Quality Gate Maintainability Coverage Benchmark telegram

Реализация протокола language server protocol для языка 1C (BSL) - языка 1С:Предприятие 8 и OneScript.

Сайт проекта - https://1c-syntax.github.io/bsl-language-server

Замеры производительности - SSL 3.1

English version

Возможности

  • Форматирование файла
  • Форматирование выбранного диапазона
  • Определение символов текущего файла (области, процедуры, функции, переменные, объявленные через Перем)
  • Определение сворачиваемых областей - #Область, #Если, процедуры и функции, блоки кода
  • Показ когнитивной сложности метода
  • Диагностики
  • "Быстрые исправления" (quick fixes) для ряда диагностик
  • Запуск движка диагностик из командной строки
  • Запуск форматирования файлов в каталоге из командной строки

Запуск из командной строки

Запуск jar-файлов осуществляется через java -jar path/to/file.jar.

java -jar bsl-language-server.jar --help

BSL language server
Usage: bsl-language-server [-h] [-c=<path>] [COMMAND [ARGS]]
  -c, --configuration=<path>
               Path to language server configuration file
  -h, --help   Show this help message and exit
Commands:
  analyze, -a, --analyze  Run analysis and get diagnostic info
  format, -f, --format    Format files in source directory
  version, -v, --version  Print version
  lsp, --lsp              LSP server mode (default)

При запуске BSL Language Server в обычном режиме будет запущен сам Language Server, взаимодействующий по протоколу [LSP](language server protocol). Для взаимодействия используются stdin и stdout.

По умолчанию тексты диагностик выдаются на русском языке. Для переключения языка сообщений от движка диагностик необходимо настроить параметр diagnosticLanguage в конфигурационном файле или вызвав событие workspace/didChangeConfiguration:

Запуск в режиме анализатора

Для запуска в режиме анализа используется параметр --analyze (сокращенно -a).

Usage: bsl-language-server analyze [-hq] [-c=<path>] [-o=<path>] [-s=<path>]
                                   [-r=<keys>]...
Run analysis and get diagnostic info
  -c, --configuration=<path>
                           Path to language server configuration file
  -h, --help               Show this help message and exit
  -o, --outputDir=<path>   Output report directory
  -q, --silent             Silent mode
  -r, --reporter=<keys>    Reporter key (console, junit, json, tslint, generic)
  -s, --srcDir=<path>      Source directory
  -w, --workspaceDir=<path> 
                           Workspace directory

Для указания каталога расположения анализируемых исходников используется параметр --srcDir (сокращенно -s), за которым следует путь (относительный или абсолютный) к каталогу исходников. Для формирования отчета об анализе требуется указать один или "репортеров". Для указания репортера используется параметр --reporter (сокращенно -r), за которым следует ключ репортера. Допустимо указывать несколько репортеров. Список репортетов см. в разделе Репортеры.

Пример строки запуска анализа:

java -jar bsl-language-server.jar --analyze --srcDir ./src/cf --reporter json

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

java -Xmx4g -jar bsl-language-server.jar ...остальные параметры

Запуск в режиме форматтера

Для запуска в режиме форматтера используется параметр --format (сокращенно -f).

Usage: bsl-language-server format [-hq] [-s=<path>]
Format files in source directory
  -h, --help            Show this help message and exit
  -q, --silent          Silent mode
  -s, --src=<path>      Source directory or file

Для указания каталога расположения форматируемых исходников (или файла) используется параметр --src (сокращенно -s), за которым следует путь (относительный или абсолютный) к каталогу исходников (или файлу).

Пример строки запуска форматирования:

java -jar bsl-language-server.jar --format --src ./src/cf

Благодарности

Огромное спасибо всем контрибьюторам проекта, всем участвовавшим в обсуждениях, помогавшим с тестированием.

Вы потрясающие!

Спасибо компаниям, поддерживающим проекты с открытым исходным кодом, а особенно тем, кто поддержали нас:


YourKit

Создатель инновационных и интеллектуальных инструментов для профилирования приложений Java и .NET YourKit, LLC любезно предоставил нам лицензии на продукт YourKit Java Profiler.

С помощью YourKit Java Profiler мы мониторим и улучшаем производительность проекта.


JetBrains

Создатель профессиональных инструментов разработки программного обеспечения, инновационных и мощных, JetBrains поддержал наш проект, предоставив лицензии на свои продукты, в том числе на IntelliJ IDEA Ultimate.

IntelliJ IDEA Ultimate один из лучших инструментов в своем классе.

ToDo

После реализации построения контекста:

  • Автодополнение методов текущего модуля
  • Автодополнение контекстных методов (конфигурация 1С и OneScript)
  • Сигнатура функций
  • Подробная всплывающая подсказка по методам
  • Переход к определению
  • Поиск мест использования
  • Предпросмотр определения процедуры
  • Поиск определения по символу

Дополнительно:

  • Автодополнение методов глобального контекста
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].