Skip to content

Commit

Permalink
Merge pull request #116 from otymko/develop
Browse files Browse the repository at this point in the history
Релиз 0.4.0
  • Loading branch information
otymko authored Dec 7, 2020
2 parents a471edb + a8f9aef commit 72b54b8
Show file tree
Hide file tree
Showing 55 changed files with 1,882 additions and 1,057 deletions.
4 changes: 3 additions & 1 deletion .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -82,4 +82,6 @@ jobs:
- uses: actions/upload-artifact@master
with:
name: phoenixbsl.msi
path: ./phoenixbsl-0.3.7.msi
path: |
./phoenixbsl-*.msi
./build/libs/phoenix*.jar
47 changes: 43 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,11 @@
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=phoenixbsl&metric=alert_status)](https://sonarcloud.io/dashboard?id=phoenixbsl)
# Phoenix BSL для 1С

**В СТАДИИ РАЗРАБОТКИ, ИСПОЛЬЗУЙТЕ НА СВОЙ СТРАХ И РИСК =)**

## Описание

Проект позволяет анализировать и форматировать код 1С в конфигураторе. Инструмент основан на проекте [BSL LS](https://github.com/1c-syntax/bsl-language-server).

![Превью PhoenixBSL](docs/assets/images/preview.png)
<img src="docs/assets/images/preview.png" alt="Превью PhoenixBSL" style="zoom:80%;" />

## Установка

Expand Down Expand Up @@ -58,9 +56,50 @@ java -jar phoenix-0.3.3.jar
* `Путь к BSL LS` - путь к приложению BSL LS. Либо это путь к jar файлу (если выключена опция `Использовать BSL LS jar`), либо это
путь к файлу `bsl-language-server.exe`.
* `Свои настройки BSL LS` - признак использования своих настроек для BSL LS.
* `Путь к настройкам BSL LS` - путь к настройкам BSL LS. По умолчанию `.bsl-language-server.json`.
* `Путь к настройкам BSL LS` - путь к настройкам BSL LS. По умолчанию `.bsl-language-server.json`. Для работы полного пакета проверок требуется указать в конфигурационном файле путь к выгруженным метаданным.
* `Группировать замечания` - при включенном флаге замечания группируются по их типу.

#### Поддержка SonarLint

Плагины поддержки 1С в SonarQube:
* [1C (BSL) Community Plugin](https://github.com/1c-syntax/sonar-bsl-plugin-community) (пока не поддерживается)
* [1C (BSL) Plugin от SilverBulleters ](https://silverbulleters.org/sonarqube) с версии 1.33

Есть возможность, используя SonarLint, проанализировать код 1С с помощью плагина 1С на сервере SonarQube. Для этого нужно добавить в конфигурационный файл приложения (`%USER_NAME%\phoenixbsl\Configuration.json`) настройку проекта в `projects`:

```json
{
// ...
"projects": [
{
"name": "local",
"basePath": "C://Users//otymko//phoenixbsl//projects//context-collector//",
"useSonarLint": true,
"projectKey": "my-project1",
"serverUrl": "http://localhost:9000",
"serverId": "0000001",
"token": "58b7eaaa76be14d94e470ab28376f30f6cc95f55"
}
]
}
```

где свойства:

* `name` - имя проекта внутри приложения
* `basePath` - путь к рабочему каталогу проекта, в дальнейшем каталог должен содержать исходники конфигурации в формате **xml**. Есть каталог не существует, то приложение его создаст.
* `useSonarLint` - опция для включения SonarLint. Работает при правильно заполненных свойствах: `projectKey`, `serverUrl`, `token`. Свойство `serverId` пока не используется.
* `projectKey` - ключ проекта в SonarQube
* `serverUrl` - адрес сервера SonarQube, например: [https://open.checkbsl.org/](https://open.checkbsl.org/)
* `serverId` - идентификатор сервера SonarQube, пока не используется.
* `token` - токен безопасности, для подключения к SonarQube. Генерируется из профиля пользователя.

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

* bsl-ls - замечания, полученные с помощью [BSL LS](https://github.com/1c-syntax/bsl-language-server)
* sonarlint - замечания, полученные с помощью плагинов 1С для SonarQube


## Быстрые исправления

С помощью "Исправить все в модуле" можно автоматически исправить следующие замечания:
Expand Down
61 changes: 37 additions & 24 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,40 +1,46 @@
import java.net.URI

import com.github.gradle_git_version_calculator.GitRepository;
import com.github.gradle_git_version_calculator.GitCommandsFactory;
import com.github.gradle_git_version_calculator.GitVersionCalculator;


plugins {
java
maven
jacoco
id("org.openjfx.javafxplugin") version "0.0.8"
id("com.github.johnrengelman.shadow") version "5.2.0"
id("org.sonarqube") version "2.8"
id("io.franzbecker.gradle-lombok") version "3.2.0"
id("org.openjfx.javafxplugin") version "0.0.9"
id("com.github.johnrengelman.shadow") version "6.1.0"
id("org.sonarqube") version "3.0"
id("io.franzbecker.gradle-lombok") version "4.0.0"
id("com.github.gradle-git-version-calculator") version "1.1.0"
}

repositories {
flatDir {
dirs("libs")
}
mavenCentral()
maven { url = URI("https://jitpack.io") }
}

group = "org.github.otymko.phoenixbsl"
version = "0.3.7"
group = "com.github.otymko.phoenixbsl"
version = gitVersionCalculator.calculateVersion("v")
var semver = calculateVersion("v", false)

dependencies {
testImplementation("com.hynnet", "jacob", "1.18")
testImplementation("junit", "junit", "4.12")
testImplementation("org.assertj", "assertj-core", "3.16.1")
testImplementation("org.assertj", "assertj-core", "3.18.1")

implementation("net.java.dev.jna:jna-platform:5.4.0")
implementation("org.eclipse.lsp4j", "org.eclipse.lsp4j", "0.8.1")
implementation("net.java.dev.jna:jna-platform:5.6.0")
implementation("org.eclipse.lsp4j", "org.eclipse.lsp4j", "0.9.0")
implementation("ch.qos.logback", "logback-classic", "1.2.3")
implementation("lc.kra.system","system-hook", "3.5")
implementation("lc.kra.system","system-hook", "3.8")
implementation("com.github.silverbulleters:sonarlint-core:123a8b2")


// ui
implementation("com.jfoenix","jfoenix", "9.0.9")
implementation("com.jfoenix","jfoenix", "9.0.10")

implementation("com.fasterxml.jackson.core", "jackson-databind", "2.10.2")
implementation("com.fasterxml.jackson.core", "jackson-databind", "2.11.3")

compileOnly("org.projectlombok", "lombok", lombok.version)
}
Expand All @@ -50,13 +56,10 @@ tasks.withType<JavaCompile> {
options.compilerArgs.add("-Xlint:deprecation")
}

// TODO: путь к jar после build, можно сделать лучше?
var jarName = ""

tasks.jar {
jarName = this.archiveFileName.get()
var mainClass = project.group.toString() + ".PhoenixLauncher"
manifest {
attributes["Main-Class"] = "org.github.otymko.phoenixbsl.LauncherApp"
attributes["Main-Class"] = mainClass
attributes["Implementation-Version"] = project.version
}
enabled = false
Expand All @@ -70,17 +73,18 @@ tasks.shadowJar {
}

tasks.register<Exec>("jpackage") {
dependsOn(tasks.shadowJar)
var jpackage = System.getenv("JPACKAGE_HOME") + "/jpackage.exe"
executable(jpackage)
args(
"--name", "phoenixbsl",
"--type", "msi",
"--input", "build/libs",
"--main-jar", jarName,
"--main-jar", "phoenix-$version.jar",
"--win-dir-chooser",
"--win-shortcut",
"--win-menu",
"--app-version", project.version,
"--app-version", semver,
"--vendor", "otymko"
)
}
Expand All @@ -102,6 +106,15 @@ javafx {
}

lombok {
version = "1.18.10"
sha256 = "2836e954823bfcbad45e78c18896e3d01058e6f643749810c608b7005ee7b2fa"
version = "1.18.16"
}

/* Получить версия проекта без дополнительной информации
(только major, minor, patch)
*/
fun calculateVersion(prefix: String?, withSnapshot: Boolean): String? {
val repository = GitRepository(GitCommandsFactory(project.projectDir.absolutePath))
val calculator = GitVersionCalculator(repository)
val semver = calculator.calculateSemVer(prefix, withSnapshot)
return String.format("%d.%d.%d", semver.major, semver.minor, semver.patch)
}
Binary file modified docs/assets/images/preview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed libs/system-hook.jar
Binary file not shown.
Loading

0 comments on commit 72b54b8

Please sign in to comment.