1
0
mirror of https://github.com/1C-Company/v8-code-style.git synced 2024-11-21 13:15:53 +02:00

#1 перенос сборки и проверок по метаданным (#2)

This commit is contained in:
Dmitriy Marmyshev 2021-03-12 20:40:50 +03:00 committed by GitHub
parent c2c70cf7e0
commit 9d0dc21a2f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
154 changed files with 5304 additions and 0 deletions

79
.github/workflows/ci-build.yml vendored Normal file
View File

@ -0,0 +1,79 @@
name: CI
on:
push:
branches:
- master
pull_request:
branches:
- '*'
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up JDK 11
uses: actions/setup-java@v1
with:
java-version: 11
java-package: jdk+fx
server-id: dt_repository
server-username: MAVEN_USERNAME
server-password: MAVEN_CENTRAL_TOKEN
- name: Cache maven repo
uses: actions/cache@v1
if: github.event_name == 'push' || github.event_name == 'pull_request'
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-latest-${{ hashFiles('**/pom.xml') }}-${{ hashFiles('targets/latest/latest.target') }}
restore-keys: |
${{ runner.os }}-maven-latest-
- name: Build with Maven
env:
MAVEN_USERNAME: ${{ secrets.P2_USER }}
MAVEN_CENTRAL_TOKEN: ${{ secrets.P2_TOKEN }}
working-directory: ./
run: |
Xvfb :5 -screen 0 1280x1024x8 -fbdir /tmp &
export DISPLAY=:5
mvn clean verify -PSDK,find-bugs -Dtycho.localArtifacts=ignore -B -V
- name: Publish Test Report
uses: scacap/action-surefire-report@v1
if: always()
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Upload repo
uses: actions/upload-artifact@v2
with:
name: v8-code-style-repository
path: repositories/com.e1c.v8codestyle.repository/target/repository/
- name: Upload SDK repo
uses: actions/upload-artifact@v2
with:
name: v8-code-style-repository-sdk
path: repositories/com.e1c.v8codestyle.repository.sdk/target/repository/
- name: Upload JaCoCo exec data
uses: actions/upload-artifact@v2
if: always()
with:
name: jacoco
path: |
./**/target/jacoco.exec
./**/target/site/jacoco*/
- name: Upload test logs on failure
uses: actions/upload-artifact@v2
if: failure()
with:
name: logs
path: ./**/.log

97
.github/workflows/release.yml vendored Normal file
View File

@ -0,0 +1,97 @@
name: Build and upload Release Asset
on:
push:
tags:
- 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up JDK 11
uses: actions/setup-java@v1
with:
java-version: 11
java-package: jdk+fx
server-id: dt_repository
server-username: MAVEN_USERNAME
server-password: MAVEN_CENTRAL_TOKEN
- name: Cache maven repo
uses: actions/cache@v1
if: github.event_name == 'push'
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-base-${{ hashFiles('**/pom.xml') }}-${{ hashFiles('targets/base/base.target') }}
restore-keys: |
${{ runner.os }}-maven-base-
- name: Build with Maven
env:
MAVEN_USERNAME: ${{ secrets.P2_USER }}
MAVEN_CENTRAL_TOKEN: ${{ secrets.P2_TOKEN }}
working-directory: ./
run: |
Xvfb :5 -screen 0 1280x1024x8 -fbdir /tmp &
export DISPLAY=:5
mvn clean verify -PSDK,find-bugs -Dtycho.localArtifacts=ignore -B -V
- name: Publish Test Report
uses: scacap/action-surefire-report@v1
if: always()
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Upload repo
uses: actions/upload-artifact@v2
with:
name: repo
path: repositories/com.e1c.v8codestyle.repository/target/repository/
- name: Upload SDK repo
uses: actions/upload-artifact@v2
with:
name: sdk-repo
path: repositories/com.e1c.v8codestyle.repository.sdk/target/repository/
- name: Upload JaCoCo exec data
uses: actions/upload-artifact@v2
if: always()
with:
name: jacoco
path: |
./**/target/jacoco.exec
./**/target/site/jacoco*/
- name: Upload test logs on failure
uses: actions/upload-artifact@v2
if: failure()
with:
name: logs
path: ./**/.log
- name: Create Release
id: create_release
uses: actions/create-release@latest
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
draft: false
prerelease: true
- name: Upload Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./repositories/com.e1c.v8codestyle.repository.sdk/target/com.e1c.v8codestyle.repository.sdk.zip
asset_name: repo.zip
asset_content_type: application/zip

14
.gitignore vendored Normal file
View File

@ -0,0 +1,14 @@
#Eclipse project files
.metadata/
.metricsapp/
.metricsapp-tests/
.JETEmitters/
#Build targets
bin/
target/
#Report directories
/reports
*/reports
#Mac-specific directory that no other operating system needs.
.DS_Store
.m2/

39
NOTICE.md Normal file
View File

@ -0,0 +1,39 @@
# Notices for v8-code-style
This content is produced and maintained by the 1C-Soft LLC.
## Copyright
All content is the property of the respective authors or their employers.
For more information regarding authorship of content, please consult the
listed source code repository logs.
## Declared Project Licenses
This program and the accompanying materials are made available under
the terms of the Eclipse Public License 2.0 which is available at
https://www.eclipse.org/legal/epl-2.0/
SPDX-License-Identifier: EPL-2.0
## Source Code
The source code repository is available at https://github.com/1C-Company/v8-code-style
## Third-party Content
Eclipse platform
* License: EPL-1, EPL-2.0
Google Guice / Inject Core API 3.0
* License: Apache-2.0
Google Guava 27.1
* License: Apache-2.0
JUnit 4
* License: Eclipse Public License - v 1.0

11
bom/.project Normal file
View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>bom</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
</buildSpec>
<natures>
</natures>
</projectDescription>

View File

@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8

208
bom/html/css/prism.css Normal file
View File

@ -0,0 +1,208 @@
/* PrismJS 1.23.0
https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript+bash+bsl+java+javadoc+javadoclike+json+json5&plugins=show-language+highlight-keywords+toolbar */
/**
* prism.js default theme for JavaScript, CSS and HTML
* Based on dabblet (http://dabblet.com)
* @author Lea Verou
*/
code[class*="language-"],
pre[class*="language-"] {
color: black;
background: none;
text-shadow: 0 1px white;
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
font-size: 1em;
text-align: left;
white-space: pre;
word-spacing: normal;
word-break: normal;
word-wrap: normal;
line-height: 1.5;
-moz-tab-size: 4;
-o-tab-size: 4;
tab-size: 4;
-webkit-hyphens: none;
-moz-hyphens: none;
-ms-hyphens: none;
hyphens: none;
}
pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection,
code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection {
text-shadow: none;
background: #b3d4fc;
}
pre[class*="language-"]::selection, pre[class*="language-"] ::selection,
code[class*="language-"]::selection, code[class*="language-"] ::selection {
text-shadow: none;
background: #b3d4fc;
}
@media print {
code[class*="language-"],
pre[class*="language-"] {
text-shadow: none;
}
}
/* Code blocks */
pre[class*="language-"] {
padding: 1em;
margin: .5em 0;
overflow: auto;
}
:not(pre) > code[class*="language-"],
pre[class*="language-"] {
background: #f5f2f0;
}
/* Inline code */
:not(pre) > code[class*="language-"] {
padding: .1em;
border-radius: .3em;
white-space: normal;
}
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
color: slategray;
}
.token.punctuation {
color: #999;
}
.token.namespace {
opacity: .7;
}
.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol,
.token.deleted {
color: #905;
}
.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
color: #690;
}
.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string {
color: #9a6e3a;
/* This background color was intended by the author of this theme. */
background: hsla(0, 0%, 100%, .5);
}
.token.atrule,
.token.attr-value,
.token.keyword {
color: #07a;
}
.token.function,
.token.class-name {
color: #DD4A68;
}
.token.regex,
.token.important,
.token.variable {
color: #e90;
}
.token.important,
.token.bold {
font-weight: bold;
}
.token.italic {
font-style: italic;
}
.token.entity {
cursor: help;
}
div.code-toolbar {
position: relative;
}
div.code-toolbar > .toolbar {
position: absolute;
top: .3em;
right: .2em;
transition: opacity 0.3s ease-in-out;
opacity: 0;
}
div.code-toolbar:hover > .toolbar {
opacity: 1;
}
/* Separate line b/c rules are thrown out if selector is invalid.
IE11 and old Edge versions don't support :focus-within. */
div.code-toolbar:focus-within > .toolbar {
opacity: 1;
}
div.code-toolbar > .toolbar .toolbar-item {
display: inline-block;
}
div.code-toolbar > .toolbar a {
cursor: pointer;
}
div.code-toolbar > .toolbar button {
background: none;
border: 0;
color: inherit;
font: inherit;
line-height: normal;
overflow: visible;
padding: 0;
-webkit-user-select: none; /* for button */
-moz-user-select: none;
-ms-user-select: none;
}
div.code-toolbar > .toolbar a,
div.code-toolbar > .toolbar button,
div.code-toolbar > .toolbar span {
color: #bbb;
font-size: .8em;
padding: 0 .5em;
background: #f5f2f0;
background: rgba(224, 224, 224, 0.2);
box-shadow: 0 2px 0 0 rgba(0,0,0,0.2);
border-radius: .5em;
}
div.code-toolbar > .toolbar a:hover,
div.code-toolbar > .toolbar a:focus,
div.code-toolbar > .toolbar button:hover,
div.code-toolbar > .toolbar button:focus,
div.code-toolbar > .toolbar span:hover,
div.code-toolbar > .toolbar span:focus {
color: inherit;
text-decoration: none;
}

4
bom/html/footer.html Normal file
View File

@ -0,0 +1,4 @@
<footer>
</footer>
</body>
</html>

11
bom/html/header.html Normal file
View File

@ -0,0 +1,11 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html lang="${lang}">
<head>
<title>titleToken</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="##SITE_BASE##/css/default.css">
<link rel="stylesheet" href="##SITE_BASE##/css/prism.css" />
</head>
<body>
<script src="##SITE_BASE##/js/prism.js"></script>

17
bom/html/js/prism.js Normal file

File diff suppressed because one or more lines are too long

329
bom/pom.xml Normal file
View File

@ -0,0 +1,329 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2021, 1C-Soft LLC and others.
This program and the accompanying materials are made
available under the terms of the Eclipse Public License 2.0
which is available at https://www.eclipse.org/legal/epl-2.0/
SPDX-License-Identifier: EPL-2.0
Contributors:
1C-Soft LLC - initial API and implementation
-->
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>com.e1c.v8codestyle</groupId>
<artifactId>bom</artifactId>
<version>0.1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>BOM</name>
<prerequisites>
<maven>3.6.0</maven>
</prerequisites>
<properties>
<tycho.version>2.2.0</tycho.version>
<tycho.extras.version>2.2.0</tycho.extras.version>
<markdown-page-generator.version>2.3.0</markdown-page-generator.version>
<!-- Override this property in each project -->
<markdown.page.generator.html.file.path>${project.basedir}</markdown.page.generator.html.file.path>
<spotbugs.maven.plugin.version>3.1.12.2</spotbugs.maven.plugin.version>
<maven.checkstyle.plugin.version>3.1.1</maven.checkstyle.plugin.version>
<checkstyle.version>8.29</checkstyle.version>
<checkstyle.header.file>java.header</checkstyle.header.file>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<maven.compiler.release>11</maven.compiler.release>
<maven.build.timestamp.format>'v'yyyyMMdd-HHmm</maven.build.timestamp.format>
<qualifier>${maven.build.timestamp}</qualifier>
<eclipse.p2.latest>http://download.eclipse.org/releases/2020-06/</eclipse.p2.latest>
<p2repo.archive.skip>false</p2repo.archive.skip>
<org.jacoco.version>0.8.6</org.jacoco.version>
</properties>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<version>${tycho.version}</version>
<configuration>
<resolver>p2</resolver>
<executionEnvironment>JavaSE-11</executionEnvironment>
<includePackedArtifacts>false</includePackedArtifacts>
<target>
<artifact>
<groupId>com.e1c.v8codestyle</groupId>
<artifactId>default</artifactId>
<version>0.1.0-SNAPSHOT</version>
</artifact>
</target>
<environments>
<environment>
<os>win32</os>
<ws>win32</ws>
<arch>x86_64</arch>
</environment>
<environment>
<os>linux</os>
<ws>gtk</ws>
<arch>x86_64</arch>
</environment>
<environment>
<os>macosx</os>
<ws>cocoa</ws>
<arch>x86_64</arch>
</environment>
</environments>
</configuration>
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-maven-plugin</artifactId>
<version>${tycho.version}</version>
<extensions>true</extensions>
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-compiler-plugin</artifactId>
<version>${tycho.version}</version>
<configuration>
<encoding>UTF-8</encoding>
<strictCompilerTarget>true</strictCompilerTarget>
<useProjectSettings>true</useProjectSettings>
<showWarnings>true</showWarnings>
<showDeprecation>true</showDeprecation>
<verbose>true</verbose>
<optimize>true</optimize>
<compilerArgs>
<!--arg>-Werror</arg-->
<arg>-Xlint:all</arg>
<arg>-Xlint:serial</arg>
<arg>-Xlint:serial</arg>
</compilerArgs>
</configuration>
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-source-plugin</artifactId>
<version>${tycho.version}</version>
<configuration>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
</archive>
</configuration>
<executions>
<execution>
<goals>
<goal>plugin-source</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-surefire-plugin</artifactId>
<version>${tycho.version}</version>
<configuration>
<skip>${tycho.surefire.skipPluginTest}</skip>
<systemProperties>
<file.encoding>UTF-8</file.encoding>
<sun.jnu.encoding>UTF-8</sun.jnu.encoding>
</systemProperties>
</configuration>
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-packaging-plugin</artifactId>
<version>${tycho.version}</version>
<configuration>
<forceContextQualifier>${qualifier}</forceContextQualifier>
<format>'v'yyyyMMddHHmm</format>
</configuration>
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-p2-plugin</artifactId>
<version>${tycho.version}</version>
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-p2-repository-plugin</artifactId>
<version>${tycho.version}</version>
<configuration>
<repositoryName>Repository</repositoryName>
<finalName>${project.artifactId}</finalName>
<skipArchive>{p2repo.archive.skip}</skipArchive>
</configuration>
</plugin>
<plugin>
<groupId>org.eclipse.tycho.extras</groupId>
<artifactId>tycho-eclipserun-plugin</artifactId>
<version>${tycho.extras.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>${maven.checkstyle.plugin.version}</version>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>${checkstyle.version}</version>
</dependency>
</dependencies>
<configuration>
<configLocation>checkstyle.xml</configLocation>
<consoleOutput>true</consoleOutput>
<failOnViolation>true</failOnViolation>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
<logViolationsToConsole>true</logViolationsToConsole>
<violationSeverity>warning</violationSeverity>
</configuration>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${org.jacoco.version}</version>
<configuration>
<excludes>
<exclude>**/MdClassPackageImpl*</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>com.ruleoftech</groupId>
<artifactId>markdown-page-generator-plugin</artifactId>
<version>${markdown-page-generator.version}</version>
<executions>
<execution>
<phase>process-resources</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<recursiveInput>true</recursiveInput>
<copyDirectories>${markdown.page.generator.html.file.path}/html/css,${markdown.page.generator.html.file.path}/html/js,*.files,pict</copyDirectories>
<headerHtmlFile>${markdown.page.generator.html.file.path}/html/header.html</headerHtmlFile>
<footerHtmlFile>${markdown.page.generator.html.file.path}/html/footer.html</footerHtmlFile>
<pegdownExtensions>TABLES,FENCED_CODE_BLOCKS,AUTOLINKS,SMARTS,TASKLISTITEMS,EXTANCHORLINKS,TOC</pegdownExtensions>
<transformRelativeMarkdownLinks>true</transformRelativeMarkdownLinks>
<inputEncoding>UTF-8</inputEncoding>
<outputEncoding>UTF-8</outputEncoding>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-maven-plugin</artifactId>
<extensions>true</extensions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.9.1</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>${project.build.directory}/xcore-gen</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>export-properties</id>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<echoproperties prefix="qualifier" destfile="${project.build.directory}/build.properties" />
</target>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>find-bugs</id>
<build>
<plugins>
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>${spotbugs.maven.plugin.version}</version>
<configuration>
<effort>Max</effort>
<threshold>Low</threshold>
<xmlOutput>true</xmlOutput>
<maxRank>9</maxRank>
<fork>true</fork>
<jvmArgs>-Xmx1536m</jvmArgs>
<maxHeap>1536</maxHeap>
<findbugsXmlOutputDirectory>${project.build.directory}/findbugs</findbugsXmlOutputDirectory>
</configuration>
<executions>
<execution>
<id>analyze-compile</id>
<phase>compile</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
<dependencies>
<!-- overwrite dependency on spotbugs if you want to specify the version of spotbugs -->
<dependency>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs</artifactId>
<version>4.0.0-beta2</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>com.e1c.v8codestyle.md</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ManifestBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.SchemaBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View File

@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8

View File

@ -0,0 +1,9 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.compliance=11
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.release=enabled
org.eclipse.jdt.core.compiler.source=11

View File

@ -0,0 +1,24 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: com.e1c.v8codestyle.md;singleton:=true
Bundle-Version: 0.1.0.qualifier
Bundle-Activator: com.e1c.v8codestyle.internal.md.CorePlugin
Bundle-Vendor: %providerName
Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.18.0,4.0.0)",
org.eclipse.emf.ecore;bundle-version="[2.22.0,3.0.0)"
Bundle-RequiredExecutionEnvironment: JavaSE-11
Automatic-Module-Name: com.e1c.v8codestyle.md
Bundle-ActivationPolicy: lazy
Bundle-Localization: plugin
Import-Package: com._1c.g5.v8.bm.core;version="[7.0.0,8.0.0)",
com._1c.g5.v8.dt.check;version="[1.0.0,2.0.0)",
com._1c.g5.v8.dt.check.components;version="[1.0.0,2.0.0)",
com._1c.g5.v8.dt.check.ext;version="[1.0.0,2.0.0)",
com._1c.g5.v8.dt.check.settings;version="[1.0.0,2.0.0)",
com._1c.g5.v8.dt.common;version="[6.0.0,7.0.0)",
com._1c.g5.v8.dt.metadata.mdclass;version="[8.0.0,9.0.0)",
com._1c.g5.wiring;version="[2.2.0,3.0.0)",
com._1c.g5.wiring.binder;version="[1.1.0,2.0.0)",
com.google.common.base;version="[27.0.0,28.0.0)",
com.google.inject;version="[1.3.0,2.0.0)"

View File

@ -0,0 +1,20 @@
###############################################################################
# Copyright (C) 2021, 1C-Soft LLC and others.
#
# This program and the accompanying materials are made
# available under the terms of the Eclipse Public License 2.0
# which is available at https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
# 1C-Soft LLC - initial API and implementation
###############################################################################
source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.,\
plugin.xml,\
plugin.properties,\
check.descriptions/,\
plugin_ru.properties

View File

@ -0,0 +1,3 @@
*.html
*.css
*.js

View File

@ -0,0 +1,11 @@
# common-module-name-client-server
Client-server common module should end with ClientServer suffix
## Noncompliant Code Example
## Compliant Solution
## See

View File

@ -0,0 +1,11 @@
# common-module-name-client
Client common module should end with Client suffix
## Noncompliant Code Example
## Compliant Solution
## See

View File

@ -0,0 +1,11 @@
# common-module-name-global
Global common module should end with Global suffix
## Noncompliant Code Example
## Compliant Solution
## See

View File

@ -0,0 +1,11 @@
# common-module-type
Common module has incorrect type
## Noncompliant Code Example
## Compliant Solution
## See

View File

@ -0,0 +1,11 @@
# configuration-data-lock-mode
Application should use managed data lock mode
## Noncompliant Code Example
## Compliant Solution
## See

View File

@ -0,0 +1,11 @@
# mdo-name-length
Metadata object name length should be less than 80
## Noncompliant Code Example
## Compliant Solution
## See

View File

@ -0,0 +1,11 @@
# common-module-name-client-server
Клиент-серверный общий модуль должен оканчиваться на суффикс КлиентСервер
## Неправильно
## Правильно
## См.

View File

@ -0,0 +1,11 @@
# common-module-name-client
Клиентский общий модуль должен оканчиваться на суффикс Клиент
## Неправильно
## Правильно
## См.

View File

@ -0,0 +1,11 @@
# common-module-name-global
Глобальный общий модуль должен оканчиваться на суффикс Глобальный
## Неправильно
## Правильно
## См.

View File

@ -0,0 +1,11 @@
# common-module-type
Общий модуль имеет некорректный тип
## Неправильно
## Правильно
## См.

View File

@ -0,0 +1,11 @@
# configuration-data-lock-mode
Приложение должно использовать управляемый режим блокировки данных
## Неправильно
## Правильно
## См.

View File

@ -0,0 +1,11 @@
# mdo-name-length
Длина имени объекта метаданного должна быть меньше чем 80
## Неправильно
## Правильно
## См.

View File

@ -0,0 +1,21 @@
#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
###############################################################################
# Copyright (C) 2021, 1C-Soft LLC and others.
#
# This program and the accompanying materials are made
# available under the terms of the Eclipse Public License 2.0
# which is available at https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
# 1C-Soft LLC - initial API and implementation
###############################################################################
#Properties file for com.e1c.v8codestyle.md
category.md.description = Metadata model checks (*.mdo files) by standards
category.md.title = Metadata checks by standards
pluginName = 1C:Code style V8 Metadata plugin
providerName = 1C-Soft LLC

View File

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<!--
Copyright (C) 2021, 1C-Soft LLC and others.
This program and the accompanying materials are made
available under the terms of the Eclipse Public License 2.0
which is available at https://www.eclipse.org/legal/epl-2.0/
SPDX-License-Identifier: EPL-2.0
Contributors:
1C-Soft LLC - initial API and implementation
-->
<plugin>
<extension
point="com._1c.g5.v8.dt.check.checks">
<category
category="com.e1c.v8codestyle"
description="%category.md.description"
id="com.e1c.v8codestyle.md"
title="%category.md.title">
</category>
<check
category="com.e1c.v8codestyle.md"
class="com.e1c.v8codestyle.md.check.ConfigurationDataLock">
</check>
<check
category="com.e1c.v8codestyle.md"
class="com.e1c.v8codestyle.md.check.MdObjectNameLength">
</check>
<check
category="com.e1c.v8codestyle.md"
class="com.e1c.v8codestyle.md.check.CommonModuleNameClient">
</check>
<check
category="com.e1c.v8codestyle.md"
class="com.e1c.v8codestyle.md.check.CommonModuleNameClientServer">
</check>
<check
category="com.e1c.v8codestyle.md"
class="com.e1c.v8codestyle.md.check.CommonModuleNameGlobal">
</check>
<check
category="com.e1c.v8codestyle.md"
class="com.e1c.v8codestyle.md.check.CommonModuleType">
</check>
</extension>
</plugin>

View File

@ -0,0 +1,8 @@
#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
category.md.description = Проверки модели метаданных (Metadata, файлы *.mdo) по стандартам
category.md.title = Проверки метаданных по стандартам
pluginName = 1С:Стандарты разработки V8 Плагин метаданных
providerName = ООО "1С-Софт"

View File

@ -0,0 +1,68 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2021, 1C-Soft LLC and others.
This program and the accompanying materials are made
available under the terms of the Eclipse Public License 2.0
which is available at https://www.eclipse.org/legal/epl-2.0/
SPDX-License-Identifier: EPL-2.0
Contributors:
1C-Soft LLC - initial API and implementation
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.e1c.v8codestyle</groupId>
<artifactId>bundles</artifactId>
<version>0.1.0-SNAPSHOT</version>
</parent>
<artifactId>com.e1c.v8codestyle.md</artifactId>
<version>0.1.0-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
<properties>
<!-- base dir of bom module: bom/parent/bundle/this-module -->
<markdown.page.generator.html.file.path>${project.parent.parent.parent.basedir}</markdown.page.generator.html.file.path>
</properties>
<build>
<plugins>
<plugin>
<groupId>com.ruleoftech</groupId>
<artifactId>markdown-page-generator-plugin</artifactId>
<configuration>
<inputDirectory>${project.basedir}/markdown</inputDirectory>
<outputDirectory>${project.basedir}/check.descriptions</outputDirectory>
</configuration>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>copy-resource-files</id>
<phase>generate-sources</phase>
<configuration>
<target>
<property name="source" value="${project.basedir}/../../bom"/>
<copy toDir="${project.basedir}/check.descriptions/css">
<fileset dir="${source}/html/css" />
</copy>
<copy toDir="${project.basedir}/check.descriptions/js">
<fileset dir="${source}/html/js" />
</copy>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,167 @@
/*******************************************************************************
* Copyright (C) 2021, 1C-Soft LLC and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* 1C-Soft LLC - initial API and implementation
*******************************************************************************/
package com.e1c.v8codestyle.internal.md;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Plugin;
import org.eclipse.core.runtime.Status;
import org.osgi.framework.BundleContext;
import com.google.inject.Guice;
import com.google.inject.Injector;
/**
* Plugin activator. The activator class controls the plugin life cycle.
*
* @author Dmitriy Marmyshev
*/
public class CorePlugin
extends Plugin
{
public static final String PLUGIN_ID = "com.e1c.v8codestyle.md"; //$NON-NLS-1$
private static CorePlugin plugin;
private Injector injector;
/**
* Returns the shared instance
*
* @return the shared instance
*/
public static CorePlugin getDefault()
{
return plugin;
}
/**
* Writes a status to the plugin log.
*
* @param status status to log, cannot be <code>null</code>
*/
public static void log(IStatus status)
{
plugin.getLog().log(status);
}
/**
* Writes a throwable to the plugin log as error status.
*
* @param throwable throwable, cannot be <code>null</code>
*/
public static void logError(Throwable throwable)
{
log(createErrorStatus(throwable.getMessage(), throwable));
}
/**
* Creates error status by a given message and cause throwable.
*
* @param message status message, cannot be <code>null</code>
* @param throwable throwable, can be <code>null</code> if not applicable
* @return status created error status, never <code>null</code>
*/
public static IStatus createErrorStatus(String message, Throwable throwable)
{
return new Status(IStatus.ERROR, PLUGIN_ID, 0, message, throwable);
}
/**
* Creates warning status by a given message.
*
* @param message status message, cannot be <code>null</code>
* @return status created warning status, never <code>null</code>
*/
public static IStatus createWarningStatus(String message)
{
return new Status(IStatus.WARNING, PLUGIN_ID, 0, message, null);
}
/**
* Creates warning status by a given message and cause throwable.
*
* @param message status message, cannot be <code>null</code>
* @param throwable throwable, can be <code>null</code> if not applicable
* @return status created warning status, never <code>null</code>
*/
public static IStatus createWarningStatus(final String message, Exception throwable)
{
return new Status(IStatus.WARNING, PLUGIN_ID, 0, message, throwable);
}
/*
* (non-Javadoc)
* @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
*/
@Override
public void start(BundleContext bundleContext) throws Exception
{
super.start(bundleContext);
plugin = this;
}
/*
* (non-Javadoc)
* @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
*/
@Override
public void stop(BundleContext bundleContext) throws Exception
{
plugin = null;
injector = null;
super.stop(bundleContext);
}
/**
* Returns Guice injector for this plugin.
*
* @return Guice injector for this plugin, never <code>null</code>
*/
/* package */ Injector getInjector()
{
Injector localInstance = injector;
if (localInstance == null)
{
synchronized (CorePlugin.class)
{
localInstance = injector;
if (localInstance == null)
{
localInstance = createInjector();
injector = localInstance;
}
}
}
return localInstance;
}
private Injector createInjector()
{
try
{
return Guice.createInjector(new ExternalDependenciesModule(this));
}
catch (Exception e)
{
log(createErrorStatus("Failed to create injector for " //$NON-NLS-1$
+ getBundle().getSymbolicName(), e));
throw new RuntimeException("Failed to create injector for " //$NON-NLS-1$
+ getBundle().getSymbolicName(), e);
}
}
}

View File

@ -0,0 +1,39 @@
/*******************************************************************************
* Copyright (C) 2021, 1C-Soft LLC and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* 1C-Soft LLC - initial API and implementation
*******************************************************************************/
package com.e1c.v8codestyle.internal.md;
import org.osgi.framework.Bundle;
import com._1c.g5.wiring.AbstractGuiceAwareExecutableExtensionFactory;
import com.google.inject.Injector;
/**
* Guice module aware executable extension factory for plugin.
*
* @author Dmitriy Marmyshev
*/
public class ExecutableExtensionFactory
extends AbstractGuiceAwareExecutableExtensionFactory
{
@Override
protected Bundle getBundle()
{
return CorePlugin.getDefault().getBundle();
}
@Override
protected Injector getInjector()
{
return CorePlugin.getDefault().getInjector();
}
}

View File

@ -0,0 +1,43 @@
/*******************************************************************************
* Copyright (C) 2021, 1C-Soft LLC and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* 1C-Soft LLC - initial API and implementation
*******************************************************************************/
package com.e1c.v8codestyle.internal.md;
import org.eclipse.core.runtime.Plugin;
import com._1c.g5.wiring.AbstractServiceAwareModule;
/**
* External services bindings for plugin.
*
* @author Dmitriy Marmyshev
*
*/
public class ExternalDependenciesModule
extends AbstractServiceAwareModule
{
/**
* @param plugin
*/
public ExternalDependenciesModule(Plugin plugin)
{
super(plugin);
}
@Override
protected void doConfigure()
{
// empty
}
}

View File

@ -0,0 +1,100 @@
/*******************************************************************************
* Copyright (C) 2021, 1C-Soft LLC and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* 1C-Soft LLC - initial API and implementation
*******************************************************************************/
package com.e1c.v8codestyle.md.check;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__CLIENT_MANAGED_APPLICATION;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__EXTERNAL_CONNECTION;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__GLOBAL;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__PRIVILEGED;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__RETURN_VALUES_REUSE;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__SERVER;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__SERVER_CALL;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.MD_OBJECT__NAME;
import java.text.MessageFormat;
import java.util.HashMap;
import java.util.Map;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.ecore.EStructuralFeature;
import com._1c.g5.v8.dt.check.CheckComplexity;
import com._1c.g5.v8.dt.check.ICheckParameters;
import com._1c.g5.v8.dt.check.components.BasicCheck;
import com._1c.g5.v8.dt.check.components.TopObjectFilterExtension;
import com._1c.g5.v8.dt.check.settings.IssueSeverity;
import com._1c.g5.v8.dt.check.settings.IssueType;
import com._1c.g5.v8.dt.metadata.mdclass.CommonModule;
import com._1c.g5.v8.dt.metadata.mdclass.ReturnValuesReuse;
/**
* Check client common module name has "Client" suffix
*
* @author Dmitriy Marmyshev
*/
public final class CommonModuleNameClient
extends BasicCheck
{
private static final String CHECK_ID = "common-module-name-client"; //$NON-NLS-1$
private static final String NAME_SUFFIX_DEFAULT = "Клиент,Client"; //$NON-NLS-1$
@Override
public String getCheckId()
{
return CHECK_ID;
}
@Override
protected void configureCheck(CheckConfigurer builder)
{
builder.title(Messages.CommonModuleNameClient_title)
.description(Messages.CommonModuleNameClient_description)
.complexity(CheckComplexity.NORMAL)
.severity(IssueSeverity.CRITICAL)
.issueType(IssueType.WARNING)
.extension(new TopObjectFilterExtension())
.extension(new MdObjectNameWithoutSuffix(NAME_SUFFIX_DEFAULT))
.topObject(COMMON_MODULE)
.checkTop()
.features(MD_OBJECT__NAME, COMMON_MODULE__CLIENT_MANAGED_APPLICATION, COMMON_MODULE__SERVER,
COMMON_MODULE__SERVER_CALL, COMMON_MODULE__EXTERNAL_CONNECTION, COMMON_MODULE__GLOBAL,
COMMON_MODULE__PRIVILEGED, COMMON_MODULE__RETURN_VALUES_REUSE);
}
@Override
protected void check(Object object, ResultAcceptor resultAceptor, ICheckParameters parameters,
IProgressMonitor monitor)
{
CommonModule commonModule = (CommonModule)object;
if (commonModule.getReturnValuesReuse() != ReturnValuesReuse.DONT_USE)
{
return;
}
Map<EStructuralFeature, Boolean> values = new HashMap<>();
for (EStructuralFeature feature : CommonModuleType.TYPE_CLIENT.keySet())
{
values.put(feature, (Boolean)commonModule.eGet(feature));
}
if (values.equals(CommonModuleType.TYPE_CLIENT))
{
String message = MessageFormat.format(Messages.CommonModuleNameClient_message,
parameters.getString(MdObjectNameWithoutSuffix.NAME_SUFFIX_PARAMETER_NAME));
resultAceptor.addIssue(message, MD_OBJECT__NAME);
}
}
}

View File

@ -0,0 +1,103 @@
/*******************************************************************************
* Copyright (C) 2021, 1C-Soft LLC and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* 1C-Soft LLC - initial API and implementation
*******************************************************************************/
package com.e1c.v8codestyle.md.check;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__CLIENT_MANAGED_APPLICATION;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__EXTERNAL_CONNECTION;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__GLOBAL;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__PRIVILEGED;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__RETURN_VALUES_REUSE;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__SERVER;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__SERVER_CALL;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.MD_OBJECT__NAME;
import java.text.MessageFormat;
import java.util.HashMap;
import java.util.Map;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.ecore.EStructuralFeature;
import com._1c.g5.v8.dt.check.CheckComplexity;
import com._1c.g5.v8.dt.check.ICheckParameters;
import com._1c.g5.v8.dt.check.components.BasicCheck;
import com._1c.g5.v8.dt.check.components.TopObjectFilterExtension;
import com._1c.g5.v8.dt.check.settings.IssueSeverity;
import com._1c.g5.v8.dt.check.settings.IssueType;
import com._1c.g5.v8.dt.metadata.mdclass.CommonModule;
import com._1c.g5.v8.dt.metadata.mdclass.ReturnValuesReuse;
/**
* Check client-server common module name has "ClientServer" suffix
*
* @author Dmitriy Marmyshev
*
*/
public final class CommonModuleNameClientServer
extends BasicCheck
{
private static final String CHECK_ID = "common-module-name-client-server"; //$NON-NLS-1$
private static final String NAME_SUFFIX_DEFAULT = "КлиентСервер,ClientServer"; //$NON-NLS-1$
@Override
public String getCheckId()
{
return CHECK_ID;
}
@Override
protected void configureCheck(CheckConfigurer builder)
{
builder.title(Messages.CommonModuleNameClientServer_title)
.description(Messages.CommonModuleNameClientServer_description)
.complexity(CheckComplexity.NORMAL)
.severity(IssueSeverity.CRITICAL)
.issueType(IssueType.WARNING)
.extension(new TopObjectFilterExtension())
.extension(new MdObjectNameWithoutSuffix(NAME_SUFFIX_DEFAULT))
.topObject(COMMON_MODULE)
.checkTop()
.features(MD_OBJECT__NAME, COMMON_MODULE__CLIENT_MANAGED_APPLICATION, COMMON_MODULE__SERVER,
COMMON_MODULE__SERVER_CALL, COMMON_MODULE__EXTERNAL_CONNECTION, COMMON_MODULE__GLOBAL,
COMMON_MODULE__PRIVILEGED, COMMON_MODULE__RETURN_VALUES_REUSE);
}
@Override
protected void check(Object object, ResultAcceptor resultAceptor, ICheckParameters parameters,
IProgressMonitor monitor)
{
CommonModule commonModule = (CommonModule)object;
if (commonModule.getReturnValuesReuse() != ReturnValuesReuse.DONT_USE)
{
return;
}
Map<EStructuralFeature, Boolean> values = new HashMap<>();
for (EStructuralFeature feature : CommonModuleType.TYPE_CLIENT_SERVER.keySet())
{
values.put(feature, (Boolean)commonModule.eGet(feature));
}
if (values.equals(CommonModuleType.TYPE_CLIENT_SERVER))
{
String message = MessageFormat.format(Messages.CommonModuleNameClientServer_message,
parameters.getString(MdObjectNameWithoutSuffix.NAME_SUFFIX_PARAMETER_NAME));
resultAceptor.addIssue(message, MD_OBJECT__NAME);
}
}
}

View File

@ -0,0 +1,81 @@
/*******************************************************************************
* Copyright (C) 2021, 1C-Soft LLC and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* 1C-Soft LLC - initial API and implementation
*******************************************************************************/
package com.e1c.v8codestyle.md.check;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__GLOBAL;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__RETURN_VALUES_REUSE;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.MD_OBJECT__NAME;
import java.text.MessageFormat;
import org.eclipse.core.runtime.IProgressMonitor;
import com._1c.g5.v8.dt.check.CheckComplexity;
import com._1c.g5.v8.dt.check.ICheckParameters;
import com._1c.g5.v8.dt.check.components.BasicCheck;
import com._1c.g5.v8.dt.check.components.TopObjectFilterExtension;
import com._1c.g5.v8.dt.check.settings.IssueSeverity;
import com._1c.g5.v8.dt.check.settings.IssueType;
import com._1c.g5.v8.dt.metadata.mdclass.CommonModule;
import com._1c.g5.v8.dt.metadata.mdclass.ReturnValuesReuse;
/**
* Check global common module name has "Global" suffix
*
* @author Dmitriy Marmyshev
*/
public final class CommonModuleNameGlobal
extends BasicCheck
{
private static final String CHECK_ID = "common-module-name-global"; //$NON-NLS-1$
private static final String NAME_SUFFIX_DEFAULT = "Глобальный,Global"; //$NON-NLS-1$
@Override
public String getCheckId()
{
return CHECK_ID;
}
@Override
protected void configureCheck(CheckConfigurer builder)
{
builder.title(Messages.CommonModuleNameGlobal_title)
.description(Messages.CommonModuleNameGlobal_description)
.complexity(CheckComplexity.NORMAL)
.severity(IssueSeverity.CRITICAL)
.issueType(IssueType.WARNING)
.extension(new TopObjectFilterExtension())
.extension(new MdObjectNameWithoutSuffix(NAME_SUFFIX_DEFAULT))
.topObject(COMMON_MODULE)
.checkTop()
.features(MD_OBJECT__NAME, COMMON_MODULE__GLOBAL, COMMON_MODULE__RETURN_VALUES_REUSE);
}
@Override
protected void check(Object object, ResultAcceptor resultAceptor, ICheckParameters parameters,
IProgressMonitor monitor)
{
CommonModule commonModule = (CommonModule)object;
if (commonModule.isGlobal() && commonModule.getReturnValuesReuse() == ReturnValuesReuse.DONT_USE)
{
String message = MessageFormat.format(Messages.CommonModuleNameGlobal_message,
parameters.getString(MdObjectNameWithoutSuffix.NAME_SUFFIX_PARAMETER_NAME));
resultAceptor.addIssue(message, MD_OBJECT__NAME);
}
}
}

View File

@ -0,0 +1,182 @@
/*******************************************************************************
* Copyright (C) 2021, 1C-Soft LLC and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* 1C-Soft LLC - initial API and implementation
*******************************************************************************/
package com.e1c.v8codestyle.md.check;
import static com._1c.g5.v8.dt.common.Functions.featureToLabel;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__CLIENT_MANAGED_APPLICATION;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__CLIENT_ORDINARY_APPLICATION;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__EXTERNAL_CONNECTION;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__GLOBAL;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__PRIVILEGED;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__SERVER;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__SERVER_CALL;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.MD_OBJECT__NAME;
import java.text.MessageFormat;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.stream.Collectors;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.ecore.EStructuralFeature;
import com._1c.g5.v8.dt.check.CheckComplexity;
import com._1c.g5.v8.dt.check.ICheckParameters;
import com._1c.g5.v8.dt.check.components.BasicCheck;
import com._1c.g5.v8.dt.check.components.TopObjectFilterExtension;
import com._1c.g5.v8.dt.check.settings.IssueSeverity;
import com._1c.g5.v8.dt.check.settings.IssueType;
import com._1c.g5.v8.dt.metadata.mdclass.CommonModule;
/**
* Check correct type of common module environment
*
* @author Dmitriy Marmyshev
*
*/
public final class CommonModuleType
extends BasicCheck
{
private static final String CHECK_ID = "common-module-type"; //$NON-NLS-1$
//@formatter:off
public static final Map<EStructuralFeature, Boolean> TYPE_SERVER = Map.of(
COMMON_MODULE__CLIENT_MANAGED_APPLICATION, false,
COMMON_MODULE__CLIENT_ORDINARY_APPLICATION, true,
COMMON_MODULE__SERVER, true,
COMMON_MODULE__SERVER_CALL, false,
COMMON_MODULE__EXTERNAL_CONNECTION, true,
COMMON_MODULE__GLOBAL, false,
COMMON_MODULE__PRIVILEGED, false);
public static final Map<EStructuralFeature, Boolean> TYPE_SERVER_CALL = Map.of(
COMMON_MODULE__CLIENT_MANAGED_APPLICATION, false,
COMMON_MODULE__CLIENT_ORDINARY_APPLICATION, false,
COMMON_MODULE__SERVER, true,
COMMON_MODULE__SERVER_CALL, true,
COMMON_MODULE__EXTERNAL_CONNECTION, false,
COMMON_MODULE__GLOBAL, false,
COMMON_MODULE__PRIVILEGED, false);
public static final Map<EStructuralFeature, Boolean> TYPE_CLIENT = Map.of(
COMMON_MODULE__CLIENT_MANAGED_APPLICATION, true,
COMMON_MODULE__CLIENT_ORDINARY_APPLICATION, true,
COMMON_MODULE__SERVER, false,
COMMON_MODULE__SERVER_CALL, false,
COMMON_MODULE__EXTERNAL_CONNECTION, false,
COMMON_MODULE__GLOBAL, false,
COMMON_MODULE__PRIVILEGED, false);
public static final Map<EStructuralFeature, Boolean> TYPE_CLIENT_SERVER = Map.of(
COMMON_MODULE__CLIENT_MANAGED_APPLICATION, true,
COMMON_MODULE__CLIENT_ORDINARY_APPLICATION, true,
COMMON_MODULE__SERVER, true,
COMMON_MODULE__SERVER_CALL, false,
COMMON_MODULE__EXTERNAL_CONNECTION, true,
COMMON_MODULE__GLOBAL, false,
COMMON_MODULE__PRIVILEGED, false);
public static final Map<EStructuralFeature, Boolean> TYPE_SERVER_GLOBAL = Map.of(
COMMON_MODULE__CLIENT_MANAGED_APPLICATION, false,
COMMON_MODULE__CLIENT_ORDINARY_APPLICATION, true,
COMMON_MODULE__SERVER, true,
COMMON_MODULE__SERVER_CALL, false,
COMMON_MODULE__EXTERNAL_CONNECTION, true,
COMMON_MODULE__GLOBAL, true,
COMMON_MODULE__PRIVILEGED, false);
public static final Map<EStructuralFeature, Boolean> TYPE_CLIENT_GLOBAL = Map.of(
COMMON_MODULE__CLIENT_MANAGED_APPLICATION, true,
COMMON_MODULE__CLIENT_ORDINARY_APPLICATION, true,
COMMON_MODULE__SERVER, false,
COMMON_MODULE__SERVER_CALL, false,
COMMON_MODULE__EXTERNAL_CONNECTION, false,
COMMON_MODULE__GLOBAL, true,
COMMON_MODULE__PRIVILEGED, false);
//@formatter:on
@Override
public String getCheckId()
{
return CHECK_ID;
}
@Override
protected void configureCheck(CheckConfigurer builder)
{
//@formatter:off
builder.title(Messages.CommonModuleType_title)
.description(Messages.CommonModuleType_description)
.complexity(CheckComplexity.NORMAL)
.severity(IssueSeverity.BLOCKER)
.issueType(IssueType.CODE_STYLE)
.extension(new TopObjectFilterExtension())
.topObject(COMMON_MODULE)
.checkTop()
.features(COMMON_MODULE__CLIENT_MANAGED_APPLICATION,
COMMON_MODULE__SERVER,
COMMON_MODULE__SERVER_CALL,
COMMON_MODULE__EXTERNAL_CONNECTION,
COMMON_MODULE__GLOBAL,
COMMON_MODULE__PRIVILEGED,
COMMON_MODULE__CLIENT_ORDINARY_APPLICATION);
//@formatter:on
}
@Override
protected void check(Object object, ResultAcceptor resultAceptor, ICheckParameters parameters,
IProgressMonitor monitor)
{
CommonModule commonModule = (CommonModule)object;
Map<EStructuralFeature, Boolean> values = new HashMap<>();
for (EStructuralFeature feature : TYPE_SERVER.keySet())
{
values.put(feature, (Boolean)commonModule.eGet(feature));
}
if (values.equals(TYPE_SERVER) || values.equals(TYPE_SERVER_CALL) || values.equals(TYPE_CLIENT)
|| values.equals(TYPE_CLIENT_SERVER))
{
return;
}
//@formatter:off
String types = String.join(", ", //$NON-NLS-1$
values.entrySet()
.stream()
.filter(Entry::getValue)
.map(e -> featureToLabel().apply(e.getKey()))
.collect(Collectors.toList()));
//@formatter:on
String message = MessageFormat.format(Messages.CommonModuleType_message, types);
//@formatter:off
EStructuralFeature feature = values.entrySet()
.stream()
.filter(Entry::getValue)
.map(Entry::getKey)
.findFirst()
.orElse(MD_OBJECT__NAME);
//@formatter:on
resultAceptor.addIssue(message, feature);
}
}

View File

@ -0,0 +1,69 @@
/*******************************************************************************
* Copyright (C) 2021, 1C-Soft LLC and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* 1C-Soft LLC - initial API and implementation
*******************************************************************************/
package com.e1c.v8codestyle.md.check;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.CONFIGURATION;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.CONFIGURATION__DATA_LOCK_CONTROL_MODE;
import org.eclipse.core.runtime.IProgressMonitor;
import com._1c.g5.v8.dt.check.CheckComplexity;
import com._1c.g5.v8.dt.check.ICheckParameters;
import com._1c.g5.v8.dt.check.components.BasicCheck;
import com._1c.g5.v8.dt.check.settings.IssueSeverity;
import com._1c.g5.v8.dt.check.settings.IssueType;
import com._1c.g5.v8.dt.metadata.mdclass.Configuration;
import com._1c.g5.v8.dt.metadata.mdclass.DefaultDataLockControlMode;
/**
* Check configuration data lock mode should be managed
*
* @author Dmitriy Marmyshev
*/
public final class ConfigurationDataLock
extends BasicCheck
{
private static final String CHECK_ID = "configuration-data-lock-mode"; //$NON-NLS-1$
@Override
public String getCheckId()
{
return CHECK_ID;
}
@Override
protected void configureCheck(CheckConfigurer builder)
{
builder.title(Messages.ConfigurationDataLock_title)
.description(Messages.ConfigurationDataLock_description)
.complexity(CheckComplexity.NORMAL)
.severity(IssueSeverity.MAJOR)
.issueType(IssueType.PERFORMANCE)
.topObject(CONFIGURATION)
.checkTop()
.features(CONFIGURATION__DATA_LOCK_CONTROL_MODE);
}
@Override
protected void check(Object object, ResultAcceptor resultAceptor, ICheckParameters parameters,
IProgressMonitor monitor)
{
Configuration configuration = (Configuration)object;
if (DefaultDataLockControlMode.MANAGED != configuration.getDataLockControlMode())
{
resultAceptor.addIssue(Messages.ConfigurationDataLock_message, CONFIGURATION__DATA_LOCK_CONTROL_MODE);
}
}
}

View File

@ -0,0 +1,80 @@
/*******************************************************************************
* Copyright (C) 2021, 1C-Soft LLC and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* 1C-Soft LLC - initial API and implementation
*******************************************************************************/
package com.e1c.v8codestyle.md.check;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.MD_OBJECT;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.MD_OBJECT__NAME;
import java.text.MessageFormat;
import org.eclipse.core.runtime.IProgressMonitor;
import com._1c.g5.v8.dt.check.CheckComplexity;
import com._1c.g5.v8.dt.check.ICheckParameters;
import com._1c.g5.v8.dt.check.components.BasicCheck;
import com._1c.g5.v8.dt.check.components.TopObjectFilterExtension;
import com._1c.g5.v8.dt.check.settings.IssueSeverity;
import com._1c.g5.v8.dt.check.settings.IssueType;
import com._1c.g5.v8.dt.metadata.mdclass.MdObject;
/**
* Check top Metadata object name lengh that should be less then 80.
*
* @author Dmitriy Marmyshev
*/
public final class MdObjectNameLength
extends BasicCheck
{
private static final String CHECK_ID = "mdo-name-length"; //$NON-NLS-1$
public static final String MAX_NAME_LENGTH = "max-name-length"; //$NON-NLS-1$
public static final String MAX_NAME_LENGTH_DEFAULT = "80"; //$NON-NLS-1$
@Override
public String getCheckId()
{
return CHECK_ID;
}
@Override
protected void configureCheck(CheckConfigurer builder)
{
builder.title(Messages.MdObjectNameLength_title)
.description(MessageFormat.format(Messages.MdObjectNameLength_description, MAX_NAME_LENGTH_DEFAULT))
.complexity(CheckComplexity.NORMAL)
.severity(IssueSeverity.CRITICAL)
.extension(new TopObjectFilterExtension())
.issueType(IssueType.PORTABILITY)
.topObject(MD_OBJECT)
.checkTop()
.features(MD_OBJECT__NAME)
.parameter(MAX_NAME_LENGTH, Integer.class, MAX_NAME_LENGTH_DEFAULT,
Messages.MdObjectNameLength_Maximum_name_length_description);
}
@Override
protected void check(Object object, ResultAcceptor resultAceptor, ICheckParameters parameters,
IProgressMonitor monitor)
{
MdObject mdObject = (MdObject)object;
String name = mdObject.getName();
int max = parameters.getInt(MAX_NAME_LENGTH);
if (name != null && name.length() > max && max > 0)
{
resultAceptor.addIssue(MessageFormat.format(Messages.MdObjectNameLength_message, max), MD_OBJECT__NAME);
}
}
}

View File

@ -0,0 +1,117 @@
/*******************************************************************************
* Copyright (C) 2021, 1C-Soft LLC and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* 1C-Soft LLC - initial API and implementation
*******************************************************************************/
package com.e1c.v8codestyle.md.check;
import java.util.List;
import com._1c.g5.v8.bm.core.IBmObject;
import com._1c.g5.v8.dt.check.CheckParameterDefinition;
import com._1c.g5.v8.dt.check.ICheckDefinition;
import com._1c.g5.v8.dt.check.ICheckParameters;
import com._1c.g5.v8.dt.check.components.IBasicCheckExtension;
import com._1c.g5.v8.dt.check.ext.ITopObjectFilter;
import com._1c.g5.v8.dt.common.StringUtils;
import com._1c.g5.v8.dt.metadata.mdclass.MdObject;
/**
* The extention allows to filter {@link MdObject} name that has no suffix listed in parameters.
* Parameter value may contains comma separated list of suffixes.
*
* @author Dmitriy Marmyshev
*/
public class MdObjectNameWithoutSuffix
implements IBasicCheckExtension
{
/** Default paramenter name of the name suffix list */
public static final String NAME_SUFFIX_PARAMETER_NAME = "nameSuffix"; //$NON-NLS-1$
private final String parameterName;
private final String defaultValue;
private final String parameterTitle;
/**
* Instantiates a new instance of filter by MD object name without suffix.
*
* @param parameterName the parameter name, cannot be {@code null}.
* @param parameterTitle the parameter title, cannot be {@code null}.
* @param defaultValue the default value, cannot be {@code null}.
*/
public MdObjectNameWithoutSuffix(String parameterName, String parameterTitle, String defaultValue)
{
this.parameterName = parameterName;
this.parameterTitle = parameterTitle;
this.defaultValue = defaultValue;
}
/**
* Instantiates a new md object name without suffix.
*
* @param defaultValue the default value, cannot be {@code null}.
*/
public MdObjectNameWithoutSuffix(String defaultValue)
{
this(NAME_SUFFIX_PARAMETER_NAME, Messages.MdObjectNameWithoutSuffix_Name_suffix_list_title, defaultValue);
}
/**
* Instantiates a new md object name without suffix.
*/
public MdObjectNameWithoutSuffix()
{
this(StringUtils.EMPTY);
}
@Override
public void configureContextCollector(ICheckDefinition definition)
{
CheckParameterDefinition parameterDefinition =
new CheckParameterDefinition(this.parameterName, String.class, this.defaultValue, this.parameterTitle);
definition.addParameterDefinition(parameterDefinition);
}
@Override
public ITopObjectFilter contributeTopObjectFilter()
{
return (IBmObject topObject, ICheckParameters parameters) -> {
if (!(topObject instanceof MdObject))
{
return false;
}
MdObject mdObject = (MdObject)topObject;
String name = mdObject.getName();
if (name == null)
{
return false;
}
String nameSuffix = parameters.getString(parameterName);
if (nameSuffix == null || nameSuffix.isBlank())
{
return false;
}
List<String> nameSuffixs = List.of(nameSuffix.replace(" ", "").split(",")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
if (nameSuffixs.stream().noneMatch(name::endsWith))
{
return true;
}
return false;
};
}
}

View File

@ -0,0 +1,57 @@
/*******************************************************************************
* Copyright (C) 2021, 1C-Soft LLC and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* 1C-Soft LLC - initial API and implementation
*******************************************************************************/
/**
*
*/
package com.e1c.v8codestyle.md.check;
import org.eclipse.osgi.util.NLS;
/**
* @author Dmitriy Marmyshev
*
*/
final class Messages
extends NLS
{
private static final String BUNDLE_NAME = "com.e1c.v8codestyle.md.check.messages"; //$NON-NLS-1$
public static String CommonModuleNameClient_description;
public static String CommonModuleNameClient_message;
public static String MdObjectNameWithoutSuffix_Name_suffix_list_title;
public static String CommonModuleNameClient_title;
public static String CommonModuleNameClientServer_description;
public static String CommonModuleNameClientServer_message;
public static String CommonModuleNameClientServer_title;
public static String CommonModuleNameGlobal_description;
public static String CommonModuleNameGlobal_message;
public static String CommonModuleNameGlobal_title;
public static String CommonModuleType_description;
public static String CommonModuleType_message;
public static String CommonModuleType_title;
public static String ConfigurationDataLock_description;
public static String ConfigurationDataLock_message;
public static String ConfigurationDataLock_title;
public static String MdObjectNameLength_description;
public static String MdObjectNameLength_Maximum_name_length_description;
public static String MdObjectNameLength_message;
public static String MdObjectNameLength_title;
static
{
// initialize resource bundle
NLS.initializeMessages(BUNDLE_NAME, Messages.class);
}
private Messages()
{
}
}

View File

@ -0,0 +1,40 @@
CommonModuleNameClientServer_description = Client-server common module should end with ClientServer suffix
CommonModuleNameClientServer_message = Client-server common module should end with "{0}" suffix
CommonModuleNameClientServer_title = Client-server common module should end with ClientServer suffix
CommonModuleNameClient_description = Client common module should end with Client suffix
CommonModuleNameClient_message = Client common module name should end with "{0}" suffix
CommonModuleNameClient_title = Client common module should end with Client suffix
CommonModuleNameGlobal_description = Global common module should end with Global suffix
CommonModuleNameGlobal_message = Global common module should end with "{0}" suffix
CommonModuleNameGlobal_title = Global common module should end with Global suffix
CommonModuleType_description = Common module has incorrect type
CommonModuleType_message = Common module has incorrect type: {0}
CommonModuleType_title = Common module has incorrect type
ConfigurationDataLock_description = Application should use managed data lock mode
ConfigurationDataLock_message = Application should use managed data lock mode
ConfigurationDataLock_title = Configuration data lock mode
MdObjectNameLength_Maximum_name_length_description = Maximum name length
MdObjectNameLength_description = Metadata object name length should be less than {0}
MdObjectNameLength_message = Metadata object name should be less then {0}
MdObjectNameLength_title = Metadata object name length
MdObjectNameWithoutSuffix_Name_suffix_list_title = Name suffix list, comma separated

View File

@ -0,0 +1,41 @@
#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
CommonModuleNameClientServer_description = Клиент-серверный общий модуль должен оканчиваться на суффикс КлиентСервер
CommonModuleNameClientServer_message = Клиент-серверный общий модуль должен оканчиваться на суффикс "{0}"
CommonModuleNameClientServer_title = Клиент-серверный общий модуль должен оканчиваться на суффикс КлиентСервер
CommonModuleNameClient_description = Клиентский общий модуль должен оканчиваться на суффикс Клиент
CommonModuleNameClient_message = Клиентский общий модуль должен оканчиваться на суффикс "{0}"
CommonModuleNameClient_title = Клиентский общий модуль должен оканчиваться на суффикс Клиент
CommonModuleNameGlobal_description = Глобальный общий модуль должен оканчиваться на суффикс Глобальный
CommonModuleNameGlobal_message = Глобальный общий модуль должен оканчиваться на суффикс "{0}"
CommonModuleNameGlobal_title = Глобальный общий модуль должен оканчиваться на суффикс Глобальный
CommonModuleType_description = Общий модуль имеет некорректный тип
CommonModuleType_message = Общий модуль имеет некорректный тип: {0}
CommonModuleType_title = Общий модуль имеет некорректный тип
ConfigurationDataLock_description = Приложение должно использовать управляемый режим блокировки данных
ConfigurationDataLock_message = Приложение должно использовать управляемый режим блокировки данных
ConfigurationDataLock_title = Режим блокировки данных конфигурации
MdObjectNameLength_Maximum_name_length_description = Максимальная длина имени
MdObjectNameLength_description = Длина имени объекта метаданного должна быть меньше чем {0}
MdObjectNameLength_message = Длина имени объекта метаданного должна быть меньше чем {0}
MdObjectNameLength_title = Длина имени объекта метаданных
MdObjectNameWithoutSuffix_Name_suffix_list_title = Список суффиксов имени, разделенный запятой

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>com.e1c.v8codestyle</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ManifestBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.SchemaBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View File

@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8

View File

@ -0,0 +1,7 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.compliance=11
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=11

View File

@ -0,0 +1,16 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: com.e1c.v8codestyle;singleton:=true
Bundle-Version: 0.1.0.qualifier
Bundle-Activator: com.e1c.v8codestyle.internal.CorePlugin
Bundle-Vendor: %providerName
Bundle-Localization: plugin
Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.18.0,4.0.0)"
Bundle-RequiredExecutionEnvironment: JavaSE-11
Automatic-Module-Name: com.e1c.v8codestyle
Bundle-ActivationPolicy: lazy
Import-Package: com._1c.g5.v8.dt.check;version="[1.0.0,2.0.0)",
com._1c.g5.wiring;version="[2.2.0,3.0.0)",
com._1c.g5.wiring.binder;version="[1.1.0,2.0.0)",
com.google.inject;version="[1.3.0,2.0.0)"

View File

@ -0,0 +1,19 @@
###############################################################################
# Copyright (C) 2021, 1C-Soft LLC and others.
#
# This program and the accompanying materials are made
# available under the terms of the Eclipse Public License 2.0
# which is available at https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
# 1C-Soft LLC - initial API and implementation
###############################################################################
source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.,\
plugin.properties,\
plugin.xml,\
plugin_ru.properties

View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.pde.ui.RuntimeWorkbench">
<booleanAttribute key="append.args" value="true"/>
<booleanAttribute key="askclear" value="true"/>
<booleanAttribute key="automaticAdd" value="true"/>
<booleanAttribute key="automaticValidate" value="false"/>
<stringAttribute key="bootstrap" value=""/>
<stringAttribute key="checked" value="[NONE]"/>
<booleanAttribute key="clearConfig" value="true"/>
<booleanAttribute key="clearws" value="false"/>
<booleanAttribute key="clearwslog" value="false"/>
<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/plugin"/>
<booleanAttribute key="default" value="true"/>
<intAttribute key="default_start_level" value="5"/>
<booleanAttribute key="includeOptional" value="true"/>
<stringAttribute key="location" value="${workspace_loc}/../runtime-v8-code-style"/>
<mapAttribute key="org.eclipse.debug.core.preferred_launchers">
<mapEntry key="[debug]" value="org.eclipse.pde.ui.RuntimeWorkbench"/>
</mapAttribute>
<stringAttribute key="org.eclipse.debug.ui.ATTR_CAPTURE_IN_FILE" value="${workspace_loc}/../runtime-v8-code-style/output.log"/>
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_ATTR_USE_ARGFILE" value="false"/>
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -clean"/>
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx6G&#13;&#10;-Dlog4j.configuration=platform:/plugin/com._1c.g5.v8.dt.logging/log4j.properties&#13;&#10;-DmigrationEnabled=true&#13;&#10;-DmigrationNotificationEnabled=true&#10;-Dosgi.framework.extensions=org.eclipse.fx.osgi&#13;&#10;-De1c.dt.monitoring.host="/>
<stringAttribute key="pde.version" value="3.3"/>
<stringAttribute key="product" value="com._1c.g5.v8.dt.product.application.rcp"/>
<booleanAttribute key="show_selected_only" value="false"/>
<stringAttribute key="templateConfig" value="${target_home}\configuration\config.ini"/>
<booleanAttribute key="tracing" value="false"/>
<booleanAttribute key="useCustomFeatures" value="false"/>
<booleanAttribute key="useDefaultConfig" value="true"/>
<booleanAttribute key="useDefaultConfigArea" value="true"/>
<booleanAttribute key="useProduct" value="true"/>
</launchConfiguration>

View File

@ -0,0 +1,18 @@
###############################################################################
# Copyright (C) 2021, 1C-Soft LLC and others.
#
# This program and the accompanying materials are made
# available under the terms of the Eclipse Public License 2.0
# which is available at https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
# 1C-Soft LLC - initial API and implementation
###############################################################################
#Properties file for com.e1c.v8codestyle
providerName = 1C-Soft LLC
pluginName = 1C:Code style V8 Core
category.root.title = 1C:Code style V8
category.root.description = 1C:Development standard (code style) checks

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<!--
Copyright (C) 2021, 1C-Soft LLC and others.
This program and the accompanying materials are made
available under the terms of the Eclipse Public License 2.0
which is available at https://www.eclipse.org/legal/epl-2.0/
SPDX-License-Identifier: EPL-2.0
Contributors:
1C-Soft LLC - initial API and implementation
-->
<plugin>
<extension
point="com._1c.g5.v8.dt.check.checks">
<category
description="%category.root.description"
id="com.e1c.v8codestyle"
title="%category.root.title">
</category>
</extension>
</plugin>

View File

@ -0,0 +1,18 @@
###############################################################################
# Copyright (C) 2021, 1C-Soft LLC and others.
#
# This program and the accompanying materials are made
# available under the terms of the Eclipse Public License 2.0
# which is available at https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
# 1C-Soft LLC - initial API and implementation
###############################################################################
#Properties file for com.e1c.v8codestyle
providerName = ООО "1С-Софт"
pluginName = 1С:Стандарты разработки V8 Ядро
category.root.title = 1C:Стандарты разработки V8
category.root.description = Проверки по стандартам разработки

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2021, 1C-Soft LLC and others.
This program and the accompanying materials are made
available under the terms of the Eclipse Public License 2.0
which is available at https://www.eclipse.org/legal/epl-2.0/
SPDX-License-Identifier: EPL-2.0
Contributors:
1C-Soft LLC - initial API and implementation
-->
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.e1c.v8codestyle</groupId>
<artifactId>bundles</artifactId>
<version>0.1.0-SNAPSHOT</version>
</parent>
<artifactId>com.e1c.v8codestyle</artifactId>
<version>0.1.0-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>

View File

@ -0,0 +1,166 @@
/*******************************************************************************
* Copyright (C) 2021, 1C-Soft LLC and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* 1C-Soft LLC - initial API and implementation
*******************************************************************************/
package com.e1c.v8codestyle.internal;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Plugin;
import org.eclipse.core.runtime.Status;
import org.osgi.framework.BundleContext;
import com.google.inject.Guice;
import com.google.inject.Injector;
/**
* Plugin activator. The activator class controls the plugin life cycle.
*
* @author Dmitriy Marmyshev
*/
public class CorePlugin
extends Plugin
{
public static final String PLUGIN_ID = "com.e1c.v8codestyle"; //$NON-NLS-1$
private static CorePlugin plugin;
private Injector injector;
/**
* Returns the shared instance
*
* @return the shared instance
*/
public static CorePlugin getDefault()
{
return plugin;
}
/**
* Writes a status to the plugin log.
*
* @param status status to log, cannot be <code>null</code>
*/
public static void log(IStatus status)
{
plugin.getLog().log(status);
}
/**
* Writes a throwable to the plugin log as error status.
*
* @param throwable throwable, cannot be <code>null</code>
*/
public static void logError(Throwable throwable)
{
log(createErrorStatus(throwable.getMessage(), throwable));
}
/**
* Creates error status by a given message and cause throwable.
*
* @param message status message, cannot be <code>null</code>
* @param throwable throwable, can be <code>null</code> if not applicable
* @return status created error status, never <code>null</code>
*/
public static IStatus createErrorStatus(String message, Throwable throwable)
{
return new Status(IStatus.ERROR, PLUGIN_ID, 0, message, throwable);
}
/**
* Creates warning status by a given message.
*
* @param message status message, cannot be <code>null</code>
* @return status created warning status, never <code>null</code>
*/
public static IStatus createWarningStatus(String message)
{
return new Status(IStatus.WARNING, PLUGIN_ID, 0, message, null);
}
/**
* Creates warning status by a given message and cause throwable.
*
* @param message status message, cannot be <code>null</code>
* @param throwable throwable, can be <code>null</code> if not applicable
* @return status created warning status, never <code>null</code>
*/
public static IStatus createWarningStatus(final String message, Exception throwable)
{
return new Status(IStatus.WARNING, PLUGIN_ID, 0, message, throwable);
}
/*
* (non-Javadoc)
* @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
*/
@Override
public void start(BundleContext bundleContext) throws Exception
{
super.start(bundleContext);
plugin = this;
}
/*
* (non-Javadoc)
* @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
*/
@Override
public void stop(BundleContext bundleContext) throws Exception
{
plugin = null;
injector = null;
super.stop(bundleContext);
}
/**
* Returns Guice injector for this plugin.
*
* @return Guice injector for this plugin, never <code>null</code>
*/
/* package */ Injector getInjector()
{
Injector localInstance = injector;
if (localInstance == null)
{
synchronized (CorePlugin.class)
{
localInstance = injector;
if (localInstance == null)
{
localInstance = createInjector();
injector = localInstance;
}
}
}
return localInstance;
}
private Injector createInjector()
{
try
{
return Guice.createInjector(new ExternalDependenciesModule(this));
}
catch (Exception e)
{
log(createErrorStatus("Failed to create injector for " //$NON-NLS-1$
+ getBundle().getSymbolicName(), e));
throw new RuntimeException("Failed to create injector for " //$NON-NLS-1$
+ getBundle().getSymbolicName(), e);
}
}
}

View File

@ -0,0 +1,39 @@
/*******************************************************************************
* Copyright (C) 2021, 1C-Soft LLC and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* 1C-Soft LLC - initial API and implementation
*******************************************************************************/
package com.e1c.v8codestyle.internal;
import org.osgi.framework.Bundle;
import com._1c.g5.wiring.AbstractGuiceAwareExecutableExtensionFactory;
import com.google.inject.Injector;
/**
* Guice module aware executable extension factory for plugin.
*
* @author Dmitriy Marmyshev
*/
public class ExecutableExtensionFactory
extends AbstractGuiceAwareExecutableExtensionFactory
{
@Override
protected Bundle getBundle()
{
return CorePlugin.getDefault().getBundle();
}
@Override
protected Injector getInjector()
{
return CorePlugin.getDefault().getInjector();
}
}

View File

@ -0,0 +1,43 @@
/*******************************************************************************
* Copyright (C) 2021, 1C-Soft LLC and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* 1C-Soft LLC - initial API and implementation
*******************************************************************************/
package com.e1c.v8codestyle.internal;
import org.eclipse.core.runtime.Plugin;
import com._1c.g5.wiring.AbstractServiceAwareModule;
/**
* External services bindings for plugin.
*
* @author Dmitriy Marmyshev
*
*/
public class ExternalDependenciesModule
extends AbstractServiceAwareModule
{
/**
* @param plugin
*/
public ExternalDependenciesModule(Plugin plugin)
{
super(plugin);
}
@Override
protected void doConfigure()
{
// empty
}
}

51
bundles/pom.xml Normal file
View File

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2020 1C-Soft LLC
This program and the accompanying materials are made available under
the terms of the Eclipse Public License 2.0 which is available at
https://www.eclipse.org/legal/epl-2.0/
SPDX-License-Identifier: EPL-2.0
Contributors:
1C-Soft LLC - initial API and implementation
-->
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.e1c.v8codestyle</groupId>
<artifactId>parent</artifactId>
<version>0.1.0-SNAPSHOT</version>
</parent>
<groupId>com.e1c.v8codestyle</groupId>
<artifactId>bundles</artifactId>
<packaging>pom</packaging>
<name>Bundles</name>
<modules>
<module>com.e1c.v8codestyle</module>
<module>com.e1c.v8codestyle.md</module>
</modules>
<build>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-source-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<executions>
<execution>
<id>run-checkstyle</id>
<phase>validate</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

173
checkstyle.xml Normal file
View File

@ -0,0 +1,173 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
"http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
<module name="Checker">
<property name="charset" value="UTF-8" />
<!-- No tabs -->
<module name="FileTabCharacter" />
<module name="SuppressWarningsFilter" />
<!-- copyright -->
<module name="RegexpHeader">
<property name="headerFile" value="${checkstyle.header.file}" />
<property name="fileExtensions" value="java" />
</module>
<module name="LineLength">
<property name="max" value="120" />
<property name="ignorePattern" value="^ *\* *[^ ]+$|(\s+\/\/\$NON-NLS-\d+\$)+$"/>
</module>
<module name="TreeWalker">
<module name="SuppressionCommentFilter">
<property name="offCommentFormat" value="checkstyle:off" />
<property name="onCommentFormat" value="checkstyle:on" />
</module>
<module name="SuppressWarningsHolder" />
<!-- imports -->
<module name="UnusedImports" />
<module name="AvoidStarImport" />
<module name="RedundantImport" />
<!-- naming conventions -->
<module name="PackageName">
<property name="format" value="^[a-z]+(\.[a-z_][a-z0-9_]*)*$"/>
</module>
<module name="AbbreviationAsWordInName">
<property name="allowedAbbreviationLength" value="1" />
<property name="allowedAbbreviations" value="IT" />
</module>
<module name="ConstantName" >
<property name="format" value="^Messages?|[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$" />
</module>
<module name="LocalFinalVariableName" />
<module name="LocalVariableName">
<property name="allowOneCharVarInForLoop" value="true" />
</module>
<module name="MemberName" />
<module name="ParameterName">
<property name="format" value="^__?|^[a-z][a-zA-Z0-9]*$" />
<property name="ignoreOverridden" value="true" />
</module>
<module name="TypeName">
<property name="format" value="^I[a-zA-Z0-9]*$" />
<property name="tokens" value="INTERFACE_DEF" />
</module>
<module name="TypeName">
<property name="tokens" value="CLASS_DEF, ENUM_DEF, ANNOTATION_DEF" />
</module>
<!-- Annotations -->
<module name="AnnotationUseStyle">
<property name="elementStyle" value="compact" />
</module>
<module name="MissingDeprecated" />
<module name="PackageAnnotation" />
<module name="AnnotationLocation">
<property name="allowSamelineMultipleAnnotations" value="false" />
<property name="allowSamelineSingleParameterlessAnnotation" value="true" />
<property name="allowSamelineParameterizedAnnotation" value="true" />
<property name="tokens" value="VARIABLE_DEF" />
</module>
<module name="AnnotationLocation">
<property name="allowSamelineMultipleAnnotations" value="false" />
<property name="allowSamelineSingleParameterlessAnnotation" value="true" />
<property name="allowSamelineParameterizedAnnotation" value="true" />
<property name="tokens" value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF" />
</module>
<!-- Identifiers -->
<module name="RedundantModifier" />
<module name="ModifierOrder" />
<module name="LeftCurly">
<property name="option" value="nl" />
<property name="tokens" value="INTERFACE_DEF, CLASS_DEF, ANNOTATION_DEF, ENUM_DEF, CTOR_DEF, METHOD_DEF, ENUM_CONSTANT_DEF, LITERAL_WHILE, LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_SYNCHRONIZED, LITERAL_SWITCH, LITERAL_DO, LITERAL_IF, LITERAL_ELSE, LITERAL_FOR, STATIC_INIT, OBJBLOCK" />
</module>
<module name="LeftCurly">
<property name="option" value="eol" />
<property name="tokens" value="LAMBDA" />
</module>
<module name="RightCurly">
<property name="option" value="alone" />
</module>
<module name="AvoidNestedBlocks">
<property name="allowInSwitchCase" value="true" />
</module>
<module name="EmptyBlock">
<property name="option" value="text" />
</module>
<module name="GenericWhitespace" />
<module name="MethodParamPad" />
<module name="NoLineWrap" />
<module name="NoWhitespaceAfter">
<property name="tokens" value="ARRAY_INIT, INC, DEC, UNARY_MINUS, UNARY_PLUS, BNOT, LNOT, DOT, ARRAY_DECLARATOR, INDEX_OP, METHOD_REF" />
</module>
<module name="NoWhitespaceBefore">
<property name="tokens" value="DOT" />
<property name="allowLineBreaks" value="true" />
</module>
<module name="NoWhitespaceBefore">
<property name="tokens" value="COMMA, SEMI, POST_INC, POST_DEC, ELLIPSIS" />
<property name="allowLineBreaks" value="false" />
</module>
<module name="SeparatorWrap">
<property name="tokens" value="COMMA" />
<property name="option" value="eol" />
</module>
<module name="SeparatorWrap">
<property name="tokens" value="DOT" />
<property name="option" value="nl" />
</module>
<module name="SingleSpaceSeparator" />
<module name="TypecastParenPad" />
<module name="WhitespaceAfter">
<property name="tokens" value="COMMA, SEMI, LITERAL_IF, LITERAL_ELSE, LITERAL_WHILE, LITERAL_DO, LITERAL_FOR, DO_WHILE" />
</module>
<module name="WhitespaceAround">
<property name="allowEmptyLambdas" value="true" />
</module>
<!--module name="ParenPad" /-->
<module name="UnnecessaryParentheses" />
<module name="Indentation">
<property name="basicOffset" value="4" />
<property name="lineWrappingIndentation" value="4" />
<property name="caseIndent" value="0" />
<property name="throwsIndent" value="4" />
<property name="forceStrictCondition" value="false" />
</module>
<!-- Number format -->
<module name="UpperEll" />
<!-- design, coding, misc -->
<module name="PackageDeclaration" />
<module name="OneTopLevelClass" />
<module name="InnerTypeLast" />
<module name="InterfaceIsType" />
<module name="HideUtilityClassConstructor" />
<module name="FinalClass" />
<module name="EmptyStatement" />
<module name="CovariantEquals" />
<module name="EqualsHashCode" />
<module name="StringLiteralEquality" />
<module name="InnerAssignment" />
<module name="MultipleVariableDeclarations" />
<module name="OneStatementPerLine" />
<module name="ParameterAssignment" />
<module name="HiddenField">
<property name="tokens" value="VARIABLE_DEF" />
</module>
<module name="SuperClone" />
<module name="SuperFinalize" />
<module name="FallThrough" />
<module name="MissingSwitchDefault" />
</module>
</module>

28
docs/.project Normal file
View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>com.e1c.v8codestyle.docs</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ManifestBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.SchemaBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View File

@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8

View File

@ -0,0 +1,9 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: com.e1c.v8codestyle.docs;singleton:=true
Bundle-Version: 0.1.0.qualifier
Bundle-Vendor: %providerName
Automatic-Module-Name: com.e1c.v8codestyle.docs
Bundle-RequiredExecutionEnvironment: JavaSE-11
Bundle-Localization: plugin

9
docs/README.md Normal file
View File

@ -0,0 +1,9 @@
# 1С:Стандарты разработки V8
Расширение для 1C:EDT позволяющее разрабатывать конфигурации/приложения по стандартам 1С для платформы "1С:Предприятие 8".
## Основные возможности
- Проверки кода и метаданных по [стандартам 1С](https://its.1c.ru/db/v8std)
- Дополнительные инструменты, улучшающие и ускоряющие работу по стандартам 1С

21
docs/build.properties Normal file
View File

@ -0,0 +1,21 @@
###############################################################################
# Copyright (C) 2021, 1C-Soft LLC and others.
#
# This program and the accompanying materials are made
# available under the terms of the Eclipse Public License 2.0
# which is available at https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
# 1C-Soft LLC - initial API and implementation
###############################################################################
source.. = src/
output.. = bin/
bin.includes = plugin.xml,\
META-INF/,\
.,\
toc.xml,\
plugin.properties,\
html/,\
plugin_ru.properties

3
docs/html/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
*.html
*.css
*.js

17
docs/plugin.properties Normal file
View File

@ -0,0 +1,17 @@
###############################################################################
# Copyright (C) 2021, 1C-Soft LLC and others.
#
# This program and the accompanying materials are made
# available under the terms of the Eclipse Public License 2.0
# which is available at https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
# 1C-Soft LLC - initial API and implementation
###############################################################################
#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
#Properties file for com.e1c.v8codestyle.docs
pluginName = 1C:Code style V8 Documentation plugin
providerName = 1C-Soft LLC

26
docs/plugin.xml Normal file
View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<!--
Copyright (C) 2021, 1C-Soft LLC and others.
This program and the accompanying materials are made
available under the terms of the Eclipse Public License 2.0
which is available at https://www.eclipse.org/legal/epl-2.0/
SPDX-License-Identifier: EPL-2.0
Contributors:
1C-Soft LLC - initial API and implementation
-->
<plugin>
<extension
point="org.eclipse.help.toc">
<toc
file="toc.xml"
primary="true">
</toc>
</extension>
</plugin>

17
docs/plugin_ru.properties Normal file
View File

@ -0,0 +1,17 @@
###############################################################################
# Copyright (C) 2021, 1C-Soft LLC and others.
#
# This program and the accompanying materials are made
# available under the terms of the Eclipse Public License 2.0
# which is available at https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
# 1C-Soft LLC - initial API and implementation
###############################################################################
#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
#Properties file for com.e1c.v8codestyle.docs
pluginName = 1С:Стандарты разработки V8 Плагин документации
providerName = ООО "1С-Софт"

77
docs/pom.xml Normal file
View File

@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2021, 1C-Soft LLC and others.
This program and the accompanying materials are made
available under the terms of the Eclipse Public License 2.0
which is available at https://www.eclipse.org/legal/epl-2.0/
SPDX-License-Identifier: EPL-2.0
Contributors:
1C-Soft LLC - initial API and implementation
-->
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.e1c.v8codestyle</groupId>
<artifactId>parent</artifactId>
<version>0.1.0-SNAPSHOT</version>
</parent>
<artifactId>com.e1c.v8codestyle.docs</artifactId>
<version>0.1.0-SNAPSHOT</version>
<groupId>com.e1c.v8codestyle</groupId>
<packaging>eclipse-plugin</packaging>
<properties>
<!-- base dir of bom module: bom/parent/this-module -->
<markdown.page.generator.html.file.path>${project.parent.parent.basedir}</markdown.page.generator.html.file.path>
</properties>
<build>
<plugins>
<plugin>
<groupId>com.ruleoftech</groupId>
<artifactId>markdown-page-generator-plugin</artifactId>
<configuration>
<inputDirectory>${project.basedir}/</inputDirectory>
<outputDirectory>${project.basedir}/html</outputDirectory>
</configuration>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>copy-resource-files</id>
<phase>generate-sources</phase>
<configuration>
<target>
<copy
file="${project.basedir}/../CHANGELOG.md"
tofile="${project.basedir}/changelog.md" />
<move
file="${project.basedir}/README.md"
tofile="${project.basedir}/toc.md" />
<property name="source" value="${project.basedir}/../bom"/>
<copy toDir="${project.basedir}/html/css">
<fileset dir="${source}/html/css" />
</copy>
<copy toDir="${project.basedir}/html/js">
<fileset dir="${source}/html/js" />
</copy>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

0
docs/src/.gitkeep Normal file
View File

21
docs/toc.xml Normal file
View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<?NLS TYPE="org.eclipse.help.toc"?>
<!--
Copyright (C) 2021, 1C-Soft LLC and others.
This program and the accompanying materials are made
available under the terms of the Eclipse Public License 2.0
which is available at https://www.eclipse.org/legal/epl-2.0/
SPDX-License-Identifier: EPL-2.0
Contributors:
1C-Soft LLC - initial API and implementation
-->
<toc label="1C:Code style V8" topic="html/toc.html">
<topic href="html/changelog.html" label="CHANGELOG">
<anchor id="changelog"/>
</topic>
</toc>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>com.e1c.v8codestyle.feature</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.pde.FeatureBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.pde.FeatureNature</nature>
</natures>
</projectDescription>

View File

@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8

View File

@ -0,0 +1,14 @@
###############################################################################
# Copyright (C) 2021, 1C-Soft LLC and others.
#
# This program and the accompanying materials are made
# available under the terms of the Eclipse Public License 2.0
# which is available at https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
# 1C-Soft LLC - initial API and implementation
###############################################################################
bin.includes = feature.xml,\
SourceTemplateFeature/feature.properties

View File

@ -0,0 +1,24 @@
#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
###############################################################################
# Copyright (C) 2021, 1C-Soft LLC and others.
#
# This program and the accompanying materials are made
# available under the terms of the Eclipse Public License 2.0
# which is available at https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
# 1C-Soft LLC - initial API and implementation
###############################################################################
copyright = Copyright (C) 2021, 1C-Soft LLC and others.\r\n\r\nThis program and the accompanying materials are made\r\navailable under the terms of the Eclipse Public License 2.0\r\nwhich is available at https://www.eclipse.org/legal/epl-2.0/\r\n\r\nSPDX-License-Identifier: EPL-2.0
description = 1C:Code style V8 source
feature.name = 1C:Code style V8 source
feature.vendor = 1C-Soft LLC
license = Eclipse Public License 2.0
licenseURL = https://www.eclipse.org/legal/epl-2.0/

View File

@ -0,0 +1,14 @@
###############################################################################
# Copyright (C) 2021, 1C-Soft LLC and others.
#
# This program and the accompanying materials are made
# available under the terms of the Eclipse Public License 2.0
# which is available at https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
# 1C-Soft LLC - initial API and implementation
###############################################################################
bin.includes = feature.xml,\
feature.properties

View File

@ -0,0 +1,24 @@
#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
###############################################################################
# Copyright (C) 2021, 1C-Soft LLC and others.
#
# This program and the accompanying materials are made
# available under the terms of the Eclipse Public License 2.0
# which is available at https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
# 1C-Soft LLC - initial API and implementation
###############################################################################
copyright = Copyright (C) 2021, 1C-Soft LLC and others.\r\n\r\nThis program and the accompanying materials are made\r\navailable under the terms of the Eclipse Public License 2.0\r\nwhich is available at https://www.eclipse.org/legal/epl-2.0/\r\n\r\nSPDX-License-Identifier: EPL-2.0
description = 1C:Code style V8\r\nExtension for IDE allows to develop configuration/application according 1C standards for platform "1C:Enterprise 8".
feature.name = 1C:Code style V8
feature.vendor = 1C-Soft LLC
license = Eclipse Public License 2.0
licenseURL = https://www.eclipse.org/legal/epl-2.0/

View File

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2021, 1C-Soft LLC and others.
This program and the accompanying materials are made
available under the terms of the Eclipse Public License 2.0
which is available at https://www.eclipse.org/legal/epl-2.0/
SPDX-License-Identifier: EPL-2.0
Contributors:
1C-Soft LLC - initial API and implementation
-->
<feature
id="com.e1c.v8codestyle.feature"
label="%feature.name"
version="0.1.0.qualifier"
provider-name="%feature.vendor"
plugin="com.e1c.v8codestyle"
license-feature="org.eclipse.license"
license-feature-version="2.0.2.qualifier">
<description>
%description
</description>
<copyright>
%copyright
</copyright>
<license url="%licenseURL">
%license
</license>
<plugin
id="com.e1c.v8codestyle"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.e1c.v8codestyle.md"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
</feature>

View File

@ -0,0 +1,25 @@
#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
###############################################################################
# Copyright (C) 2021, 1C-Soft LLC and others.
#
# This program and the accompanying materials are made
# available under the terms of the Eclipse Public License 2.0
# which is available at https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
# 1C-Soft LLC - initial API and implementation
###############################################################################
#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
copyright = Copyright (C) 2021, 1C-Soft LLC and others.\r\n\r\nThis program and the accompanying materials are made\r\navailable under the terms of the Eclipse Public License 2.0\r\nwhich is available at https://www.eclipse.org/legal/epl-2.0/\r\n\r\nSPDX-License-Identifier: EPL-2.0
description = 1С:Стандарты разработки V8\r\nРасширение для 1C:EDT позволяющее разрабатывать конфигурации/приложения по стандартам 1С для платформы "1С:Предприятие 8".
feature.name = 1С:Стандарты разработки V8
feature.vendor = ООО "1С-Софт"
license = Eclipse Public License 2.0
licenseURL = https://www.eclipse.org/legal/epl-2.0/

View File

@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2021, 1C-Soft LLC and others.
This program and the accompanying materials are made
available under the terms of the Eclipse Public License 2.0
which is available at https://www.eclipse.org/legal/epl-2.0/
SPDX-License-Identifier: EPL-2.0
Contributors:
1C-Soft LLC - initial API and implementation
-->
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.e1c.v8codestyle</groupId>
<artifactId>features</artifactId>
<version>0.1.0-SNAPSHOT</version>
</parent>
<artifactId>com.e1c.v8codestyle.feature</artifactId>
<version>0.1.0-SNAPSHOT</version>
<packaging>eclipse-feature</packaging>
<build>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-source-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>feature-source</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-p2-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>p2-metadata</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>com.e1c.v8codestyle.sdk.feature</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
</buildSpec>
<natures>
<nature>org.eclipse.pde.FeatureNature</nature>
</natures>
</projectDescription>

View File

@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8

View File

@ -0,0 +1,16 @@
###############################################################################
# Copyright (C) 2021, 1C-Soft LLC and others.
#
# This program and the accompanying materials are made
# available under the terms of the Eclipse Public License 2.0
# which is available at https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
# 1C-Soft LLC - initial API and implementation
###############################################################################
bin.includes = feature.xml,\
feature.properties
individualSourceBundles=true
generate.feature@com.e1c.v8codestyle.source=com.e1c.v8codestyle

View File

@ -0,0 +1,30 @@
#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
###############################################################################
# Copyright (C) 2021, 1C-Soft LLC and others.
#
# This program and the accompanying materials are made
# available under the terms of the Eclipse Public License 2.0
# which is available at https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
# 1C-Soft LLC - initial API and implementation
###############################################################################
# feature.properties
# contains externalized strings for feature.xml
# "%foo" in feature.xml corresponds to the key "foo" in this file
# java.io.Properties file (ISO 8859-1 with "\" escapes)
# This file should be translated.
# "copyright" property - text of the "Feature Update Copyright"
copyright = Copyright (C) 2021, 1C-Soft LLC and others.\n\nThis program and the accompanying materials are made available under\nthe terms of the Eclipse Public License 2.0 which is available at\nhttps://www.eclipse.org/legal/epl-2.0/\n\nSPDX-License-Identifier: EPL-2.0\n
# "description" property - description of the feature
description = 1C:Code style V8\r\nExtension for IDE allows to develop configuration/application according 1C standards for platform "1C:Enterprise 8".
# "featureName" property - name of the feature
featureName = 1C:Code style V8 SDK
# "providerName" property - name of the company that provides the feature
providerName = 1C-Soft LLC

View File

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2021, 1C-Soft LLC and others.
This program and the accompanying materials are made
available under the terms of the Eclipse Public License 2.0
which is available at https://www.eclipse.org/legal/epl-2.0/
SPDX-License-Identifier: EPL-2.0
Contributors:
1C-Soft LLC - initial API and implementation
-->
<feature
id="com.e1c.v8codestyle.sdk"
label="%featureName"
version="0.1.0.qualifier"
provider-name="%providerName"
license-feature="org.eclipse.license"
license-feature-version="2.0.2.qualifier">
<description>
%description
</description>
<copyright>
%copyright
</copyright>
<license url="%licenseURL">
%license
</license>
<includes
id="com.e1c.v8codestyle.feature.source"
version="0.1.0.qualifier"
optional="true"/>
<includes
id="com.e1c.v8codestyle.feature"
version="0.1.0.qualifier"/>
</feature>

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2021, 1C-Soft LLC and others.
This program and the accompanying materials are made
available under the terms of the Eclipse Public License 2.0
which is available at https://www.eclipse.org/legal/epl-2.0/
SPDX-License-Identifier: EPL-2.0
Contributors:
1C-Soft LLC - initial API and implementation
-->
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.e1c.v8codestyle</groupId>
<artifactId>features</artifactId>
<version>0.1.0-SNAPSHOT</version>
</parent>
<artifactId>com.e1c.v8codestyle.sdk</artifactId>
<packaging>eclipse-feature</packaging>
</project>

46
features/pom.xml Normal file
View File

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2020 1C-Soft LLC
This program and the accompanying materials are made available under
the terms of the Eclipse Public License 2.0 which is available at
https://www.eclipse.org/legal/epl-2.0/
SPDX-License-Identifier: EPL-2.0
Contributors:
1C-Soft LLC - initial API and implementation
-->
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.e1c.v8codestyle</groupId>
<artifactId>parent</artifactId>
<version>0.1.0-SNAPSHOT</version>
</parent>
<artifactId>features</artifactId>
<packaging>pom</packaging>
<name>Features</name>
<properties>
<sonar.skip>true</sonar.skip>
</properties>
<modules>
<module>com.e1c.v8codestyle.feature</module>
</modules>
<profiles>
<profile>
<id>SDK</id>
<modules>
<module>com.e1c.v8codestyle.sdk.feature</module>
</modules>
</profile>
</profiles>
</project>

3
java.header Normal file
View File

@ -0,0 +1,3 @@
^/\**$
^ \* Copyright \(C\) (\d\d\d\d), 1C-Soft LLC and others\.$
^ \*$

57
pom.xml Normal file
View File

@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2020 1C-Soft LLC
This program and the accompanying materials are made available under
the terms of the Eclipse Public License 2.0 which is available at
https://www.eclipse.org/legal/epl-2.0/
SPDX-License-Identifier: EPL-2.0
Contributors:
1C-Soft LLC - initial API and implementation
-->
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.e1c.v8codestyle</groupId>
<artifactId>bom</artifactId>
<version>0.1.0-SNAPSHOT</version>
<relativePath>./bom/pom.xml</relativePath>
</parent>
<groupId>com.e1c.v8codestyle</groupId>
<artifactId>parent</artifactId>
<version>0.1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>1C:Code style V8</name>
<scm>
<connection>scm:git:git@github.com:1C-Company/v8-code-style.git</connection>
</scm>
<modules>
<module>targets</module>
<module>bundles</module>
<module>docs</module>
<module>features</module>
<module>repositories</module>
<module>tests</module>
</modules>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-p2-repository-plugin</artifactId>
<configuration>
<repositoryName>${project.name} Repository</repositoryName>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>com.e1c.v8codestyle.repository.sdk</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
</buildSpec>
<natures>
</natures>
</projectDescription>

View File

@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2021, 1C-Soft LLC and others.
This program and the accompanying materials are made
available under the terms of the Eclipse Public License 2.0
which is available at https://www.eclipse.org/legal/epl-2.0/
SPDX-License-Identifier: EPL-2.0
Contributors:
1C-Soft LLC - initial API and implementation
-->
<site>
<feature id="com.e1c.v8codestyle.sdk">
<category name="com.e1c.v8codestyle.sdk.category"/>
</feature>
<category-def name="com.e1c.v8codestyle.sdk.category" label="1C:Code style V8 SDK"/>
</site>

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2021, 1C-Soft LLC and others.
This program and the accompanying materials are made
available under the terms of the Eclipse Public License 2.0
which is available at https://www.eclipse.org/legal/epl-2.0/
SPDX-License-Identifier: EPL-2.0
Contributors:
1C-Soft LLC - initial API and implementation
-->
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.e1c.v8codestyle</groupId>
<artifactId>repositories</artifactId>
<version>0.1.0-SNAPSHOT</version>
</parent>
<artifactId>com.e1c.v8codestyle.repository.sdk</artifactId>
<packaging>eclipse-repository</packaging>
</project>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>com.e1c.v8codestyle.repository</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
</buildSpec>
<natures>
</natures>
</projectDescription>

View File

@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2021, 1C-Soft LLC and others.
This program and the accompanying materials are made
available under the terms of the Eclipse Public License 2.0
which is available at https://www.eclipse.org/legal/epl-2.0/
SPDX-License-Identifier: EPL-2.0
Contributors:
1C-Soft LLC - initial API and implementation
-->
<site>
<feature id="com.e1c.v8codestyle.feature">
<category name="com.e1c.v8codestyle.category"/>
</feature>
<category-def name="com.e1c.v8codestyle.category" label="1C:Code style V8"/>
</site>

Some files were not shown because too many files have changed in this diff Show More