1
0
mirror of https://github.com/1C-Company/v8-code-style.git synced 2025-05-15 23:26:37 +02:00

Merge branch 'edt-2024-1' into G5V8DT-24769

This commit is contained in:
Almaz Nasibullin 2024-06-26 23:14:12 +03:00
commit fe5d34104f
176 changed files with 2185 additions and 688 deletions

View File

@ -28,10 +28,16 @@ jobs:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
if: ${{ !inputs.analyze }} if: ${{ !inputs.analyze }}
- name: Set up JDK 11 # - name: Set up JDK 17
uses: actions/setup-java@v1 # uses: actions/setup-java@v1
# with:
# java-version: 17
# java-package: jdk+fx
- name: Set up Maven 3.9.6
uses: s4u/setup-maven-action@v1.12.0
with: with:
java-version: 11 java-version: 17
java-package: jdk+fx java-package: jdk+fx
- name: Free disk space - name: Free disk space
@ -51,6 +57,13 @@ jobs:
restore-keys: | restore-keys: |
${{ runner.os }}-maven-latest- ${{ runner.os }}-maven-latest-
- name: Build with Maven
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: Cache SonarCloud packages - name: Cache SonarCloud packages
uses: actions/cache@v2 uses: actions/cache@v2
if: inputs.analyze if: inputs.analyze
@ -59,18 +72,21 @@ jobs:
key: ${{ runner.os }}-sonar key: ${{ runner.os }}-sonar
restore-keys: ${{ runner.os }}-sonar restore-keys: ${{ runner.os }}-sonar
- name: Build with Maven - name: Set up JDK 17
env: if: inputs.analyze
uses: actions/setup-java@v1
with:
java-version: 17
java-package: jdk
- name: Sonar scan
# Do not start Sonar-scanning for forks without label, and pass fork PR number directly # Do not start Sonar-scanning for forks without label, and pass fork PR number directly
SONAR_PARAM: "${{ inputs.analyze && format('{0}{1}', 'org.sonarsource.scanner.maven:sonar-maven-plugin:sonar', env.PR_NUMBER) || '' }}" if: inputs.analyze
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
SONAR_TOKEN: ${{ secrets.sonar_token }} SONAR_TOKEN: ${{ secrets.sonar_token }}
working-directory: ./ working-directory: ./
run: | run: mvn compile org.sonarsource.scanner.maven:sonar-maven-plugin:sonar ${{ env.PR_NUMBER }} -Dtycho.localArtifacts=ignore -B -V
Xvfb :5 -screen 0 1280x1024x8 -fbdir /tmp &
export DISPLAY=:5
echo "Sonar param: \"${SONAR_PARAM}\""
mvn clean verify ${SONAR_PARAM} -PSDK,find-bugs -Dtycho.localArtifacts=ignore -B -V
- name: Publish Test Report - name: Publish Test Report
uses: scacap/action-surefire-report@v1 uses: scacap/action-surefire-report@v1
@ -96,7 +112,6 @@ jobs:
with: with:
name: jacoco name: jacoco
path: | path: |
./**/target/jacoco.exec
./**/target/site/jacoco*/ ./**/target/site/jacoco*/
- name: Upload test logs on failure - name: Upload test logs on failure

View File

@ -14,7 +14,7 @@ jobs:
name: Build name: Build
# This build will run on master,release/* push, local PR and PR from forks without label Analyze # This build will run on master,release/* push, local PR and PR from forks without label Analyze
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.event.repository.full_name || !contains(github.event.pull_request.labels.*.name, 'Analyze') if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.event.repository.full_name || !contains(github.event.pull_request.labels.*.name, 'Analyze')
uses: 1C-company/v8-code-style/.github/workflows/build.yml@master uses: 1C-company/v8-code-style/.github/workflows/build.yml@edt-2024-1
with: with:
analyze: ${{ github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.event.repository.full_name }} analyze: ${{ github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.event.repository.full_name }}
secrets: secrets:

View File

@ -13,10 +13,10 @@ jobs:
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- name: Set up JDK 11 - name: Set up JDK 17
uses: actions/setup-java@v1 uses: actions/setup-java@v1
with: with:
java-version: 11 java-version: 17
java-package: jdk+fx java-package: jdk+fx
- name: Cache maven repo - name: Cache maven repo

2
.gitignore vendored
View File

@ -12,3 +12,5 @@ target/
#Mac-specific directory that no other operating system needs. #Mac-specific directory that no other operating system needs.
.DS_Store .DS_Store
.m2/ .m2/
org.sonarlint.eclipse.core.prefs

View File

@ -4,6 +4,7 @@
## 0.7.0 ## 0.7.0
Выпуск бета-версии для 1C:EDT 2023.3
### Новые проверки ### Новые проверки
@ -20,6 +21,7 @@
- Проверка на уникальность имени поля в doc-comment-field-name #1392 - Проверка на уникальность имени поля в doc-comment-field-name #1392
- Проверка модификации ключей структуры вне функции-конструктора #1054 - Проверка модификации ключей структуры вне функции-конструктора #1054
- По умолчанию проверка "Код не должен следовать за асинхронным вызовом" (code-after-async-call) выключена. См. обсуждение в https://github.com/1C-Company/v8-code-style/pull/1408
#### Запросы #### Запросы
@ -28,6 +30,7 @@
### Прочие изменения ### Прочие изменения
- Контекстная команда форматирования документирующего комментария в редакторе модуля #1418
### Исправленные ошибки ### Исправленные ошибки
@ -311,6 +314,7 @@
- Исправлен расчета типов возвращаемых значений функций с вызовом сервера - Исправлен расчета типов возвращаемых значений функций с вызовом сервера
- Испрвление проверки типа локальной переменной в variable-value-type - Испрвление проверки типа локальной переменной в variable-value-type
- Проверка типов invocation-parameter-type-intersect при вызове метода, если существуют документирующие комментарии использует только декларированные типы - Проверка типов invocation-parameter-type-intersect при вызове метода, если существуют документирующие комментарии использует только декларированные типы
- Исправлена ошибка, при которой не выполнялась автосортировка вложенных подсистем при включенной автосортировке верхнеуровневых объектов метаданных
## 0.1.0 ## 0.1.0

View File

@ -24,26 +24,26 @@
<name>BOM</name> <name>BOM</name>
<prerequisites> <prerequisites>
<maven>3.6.0</maven> <maven>3.9.4</maven>
</prerequisites> </prerequisites>
<properties> <properties>
<tycho.version>2.7.0</tycho.version> <tycho.version>4.0.5</tycho.version>
<tycho.extras.version>2.7.0</tycho.extras.version> <tycho.extras.version>4.0.5</tycho.extras.version>
<markdown-page-generator.version>2.3.1</markdown-page-generator.version> <markdown-page-generator.version>2.3.1</markdown-page-generator.version>
<!-- Override this property in each project --> <!-- Override this property in each project -->
<markdown.page.generator.html.file.path>${project.basedir}</markdown.page.generator.html.file.path> <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> <spotbugs.maven.plugin.version>4.8.3.1</spotbugs.maven.plugin.version>
<maven.checkstyle.plugin.version>3.1.1</maven.checkstyle.plugin.version> <maven.checkstyle.plugin.version>3.1.1</maven.checkstyle.plugin.version>
<checkstyle.version>8.29</checkstyle.version> <checkstyle.version>8.29</checkstyle.version>
<checkstyle.header.file>java.header</checkstyle.header.file> <checkstyle.header.file>java.header</checkstyle.header.file>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.compiler.source>11</maven.compiler.source> <maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target> <maven.compiler.target>17</maven.compiler.target>
<maven.compiler.release>11</maven.compiler.release> <maven.compiler.release>17</maven.compiler.release>
<maven.build.timestamp.format>'v'yyyyMMdd-HHmm</maven.build.timestamp.format> <maven.build.timestamp.format>'v'yyyyMMdd-HHmm</maven.build.timestamp.format>
<qualifier>${maven.build.timestamp}</qualifier> <qualifier>${maven.build.timestamp}</qualifier>
@ -51,7 +51,7 @@
<eclipse.p2.latest>http://download.eclipse.org/releases/2022-03/</eclipse.p2.latest> <eclipse.p2.latest>http://download.eclipse.org/releases/2022-03/</eclipse.p2.latest>
<p2repo.archive.skip>false</p2repo.archive.skip> <p2repo.archive.skip>false</p2repo.archive.skip>
<org.jacoco.version>0.8.6</org.jacoco.version> <org.jacoco.version>0.8.8</org.jacoco.version>
<!-- SonarQube Settings --> <!-- SonarQube Settings -->
<sonar.projectKey>1C-Company_v8-code-style</sonar.projectKey> <sonar.projectKey>1C-Company_v8-code-style</sonar.projectKey>
<sonar.organization>1c-company</sonar.organization> <sonar.organization>1c-company</sonar.organization>
@ -87,6 +87,8 @@
<sonar.issue.ignore.multicriteria.t4.resourceKey>/tests/**/*.java</sonar.issue.ignore.multicriteria.t4.resourceKey> <sonar.issue.ignore.multicriteria.t4.resourceKey>/tests/**/*.java</sonar.issue.ignore.multicriteria.t4.resourceKey>
<!-- Source files should not have any duplicated blocks --> <!-- Source files should not have any duplicated blocks -->
<sonar.cpd.exclusions>**/*Plugin.java,/tests/**/*</sonar.cpd.exclusions> <sonar.cpd.exclusions>**/*Plugin.java,/tests/**/*</sonar.cpd.exclusions>
<eclipse.jarsigner.plugin.version>1.1.2_p3</eclipse.jarsigner.plugin.version>
</properties> </properties>
<build> <build>
@ -98,7 +100,7 @@
<version>${tycho.version}</version> <version>${tycho.version}</version>
<configuration> <configuration>
<resolver>p2</resolver> <resolver>p2</resolver>
<executionEnvironment>JavaSE-11</executionEnvironment> <executionEnvironment>JavaSE-17</executionEnvironment>
<includePackedArtifacts>false</includePackedArtifacts> <includePackedArtifacts>false</includePackedArtifacts>
<target> <target>
<artifact> <artifact>
@ -239,7 +241,7 @@
<artifactId>maven-antrun-plugin</artifactId> <artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version> <version>1.8</version>
</plugin> </plugin>
<plugin> <!--plugin>
<groupId>org.jacoco</groupId> <groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId> <artifactId>jacoco-maven-plugin</artifactId>
<version>${org.jacoco.version}</version> <version>${org.jacoco.version}</version>
@ -248,7 +250,7 @@
<exclude>**/MdClassPackageImpl*</exclude> <exclude>**/MdClassPackageImpl*</exclude>
</excludes> </excludes>
</configuration> </configuration>
</plugin> </plugin-->
<plugin> <plugin>
<groupId>com.ruleoftech</groupId> <groupId>com.ruleoftech</groupId>
<artifactId>markdown-page-generator-plugin</artifactId> <artifactId>markdown-page-generator-plugin</artifactId>
@ -299,6 +301,20 @@
</excludes> </excludes>
</configuration> </configuration>
</plugin> </plugin>
<plugin>
<groupId>org.eclipse.cbi.maven.plugins</groupId>
<artifactId>eclipse-jarsigner-plugin</artifactId>
<version>${eclipse.jarsigner.plugin.version}</version>
<configuration>
<signerUrl>${signer.url}/jarsign.php</signerUrl>
<excludeInnerJars>true</excludeInnerJars>
<retryLimit>5</retryLimit>
<systemPropertyVariables>
<signer.ssl.keyStore>${env.SIGN_KEYSTORE_PATH}</signer.ssl.keyStore>
<signer.ssl.keyStorePassword>${keystorePassword}</signer.ssl.keyStorePassword>
</systemPropertyVariables>
</configuration>
</plugin>
</plugins> </plugins>
</pluginManagement> </pluginManagement>
@ -380,12 +396,39 @@
<dependency> <dependency>
<groupId>com.github.spotbugs</groupId> <groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs</artifactId> <artifactId>spotbugs</artifactId>
<version>4.0.0-beta2</version> <version>4.8.3</version>
</dependency> </dependency>
</dependencies> </dependencies>
</plugin> </plugin>
</plugins> </plugins>
</build> </build>
</profile> </profile>
<profile>
<id>sign</id>
<build>
<plugins>
<plugin>
<groupId>org.eclipse.cbi.maven.plugins</groupId>
<artifactId>eclipse-jarsigner-plugin</artifactId>
<version>${eclipse.jarsigner.plugin.version}</version>
<executions>
<execution>
<id>sign</id>
<phase>package</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles> </profiles>
</project> </project>

View File

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

View File

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

View File

@ -9,8 +9,9 @@ Require-Bundle: org.eclipse.ui;bundle-version="[3.118.0,4.0.0)",
org.eclipse.core.runtime;bundle-version="[3.20.0,4.0.0)", org.eclipse.core.runtime;bundle-version="[3.20.0,4.0.0)",
org.eclipse.core.resources;bundle-version="[3.13.0,4.0.0)", org.eclipse.core.resources;bundle-version="[3.13.0,4.0.0)",
org.eclipse.ui.forms;bundle-version="[3.11.0,4.0.0)", org.eclipse.ui.forms;bundle-version="[3.11.0,4.0.0)",
org.eclipse.emf.ecore;bundle-version="[2.23.0,3.0.0)" org.eclipse.emf.ecore;bundle-version="[2.23.0,3.0.0)",
Bundle-RequiredExecutionEnvironment: JavaSE-11 com.google.inject;bundle-version="[7.0.0,8.0.0)"
Bundle-RequiredExecutionEnvironment: JavaSE-17
Automatic-Module-Name: com.e1c.v8codestyle.autosort.ui Automatic-Module-Name: com.e1c.v8codestyle.autosort.ui
Bundle-ActivationPolicy: lazy Bundle-ActivationPolicy: lazy
Bundle-Localization: plugin Bundle-Localization: plugin
@ -23,5 +24,4 @@ Import-Package: com._1c.g5.v8.dt.common;version="[6.0.0,7.0.0)",
com._1c.g5.wiring;version="[2.2.0,3.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._1c.g5.wiring.binder;version="[1.1.0,2.0.0)",
com.e1c.v8codestyle.autosort;version="[0.7.0,0.8.0)", com.e1c.v8codestyle.autosort;version="[0.7.0,0.8.0)",
com.google.common.base;version="[30.1.0,31.0.0)", com.google.common.base;version="[32.1.0,33.0.0)"
com.google.inject;version="[5.0.0,6.0.0)"

View File

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

View File

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

View File

@ -9,8 +9,9 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.13.0,4.0.0)",
org.eclipse.emf.ecore;bundle-version="[2.12.0,3.0.0)", org.eclipse.emf.ecore;bundle-version="[2.12.0,3.0.0)",
org.eclipse.core.resources;bundle-version="[3.12.0,4.0.0)", org.eclipse.core.resources;bundle-version="[3.12.0,4.0.0)",
com._1c.g5.wiring;bundle-version="[2.0.0,3.0.0)", com._1c.g5.wiring;bundle-version="[2.0.0,3.0.0)",
org.eclipse.emf.edit;bundle-version="[2.12.0,3.0.0)" org.eclipse.emf.edit;bundle-version="[2.12.0,3.0.0)",
Bundle-RequiredExecutionEnvironment: JavaSE-11 com.google.inject;bundle-version="[7.0.0,8.0.0)"
Bundle-RequiredExecutionEnvironment: JavaSE-17
Automatic-Module-Name: com.e1c.v8codestyle.autosort Automatic-Module-Name: com.e1c.v8codestyle.autosort
Bundle-ActivationPolicy: lazy Bundle-ActivationPolicy: lazy
Bundle-Localization: plugin Bundle-Localization: plugin
@ -28,11 +29,9 @@ Import-Package: com._1c.g5.v8.activitytracking.core;version="[1.0.0,2.0.0)",
com._1c.g5.v8.dt.md.sort;version="[1.0.0,2.0.0)", com._1c.g5.v8.dt.md.sort;version="[1.0.0,2.0.0)",
com._1c.g5.v8.dt.metadata.mdclass;version="[9.0.0,10.0.0)", com._1c.g5.v8.dt.metadata.mdclass;version="[9.0.0,10.0.0)",
com.e1c.g5.v8.dt.cli.api;version="[2.0.0,3.0.0)", com.e1c.g5.v8.dt.cli.api;version="[2.0.0,3.0.0)",
com.e1c.g5.v8.dt.cli.api.components;version="[2.0.0,3.0.0)", com.e1c.g5.v8.dt.cli.api.components;version="[3.0.0,4.0.0)",
com.e1c.v8codestyle;version="[0.7.0,0.8.0)", com.e1c.v8codestyle;version="[0.7.0,0.8.0)",
com.google.common.base;version="[30.1.0,31.0.0)", com.google.common.base;version="[32.1.0,33.0.0)",
com.google.inject;version="[5.0.1,6.0.0)",
com.google.inject.binder;version="[5.0.1,6.0.0)",
org.slf4j;version="[1.7.2,2.0.0)" org.slf4j;version="[1.7.2,2.0.0)"
Export-Package: com.e1c.v8codestyle.autosort;version="0.7.0"; Export-Package: com.e1c.v8codestyle.autosort;version="0.7.0";
uses:="org.eclipse.emf.ecore, uses:="org.eclipse.emf.ecore,

View File

@ -119,6 +119,20 @@ public class SortService
this.configurationProvider = configurationProvider; this.configurationProvider = configurationProvider;
this.workspaceOrchestrator = workspaceOrchestrator; this.workspaceOrchestrator = workspaceOrchestrator;
this.modelEditingSupport = modelEditingSupport; this.modelEditingSupport = modelEditingSupport;
workspaceOrchestrator.addListener(event -> {
if (event.isProjectClosing())
{
IProject project = event.getProject().getWorkspaceProject();
if (project != null)
{
SortJob job = jobs.remove(project);
if (job != null)
{
job.cancel();
}
}
}
});
} }
@LifecycleParticipant(phase = LifecyclePhase.RESOURCE_LOADING, @LifecycleParticipant(phase = LifecyclePhase.RESOURCE_LOADING,
@ -467,6 +481,23 @@ public class SortService
} }
} }
private void appendSubordinateSubsystems(Collection<SortItem> result, IBmTransaction transaction)
{
for (Iterator<IBmObject> iterator =
transaction.getTopObjectIterator(MdClassPackage.Literals.SUBSYSTEM); iterator.hasNext();)
{
IBmObject subsystem = iterator.next();
EList<?> subordinateSubsystems =
(EList<?>)subsystem.eGet(MdClassPackage.Literals.SUBSYSTEM__SUBSYSTEMS, false);
if (subordinateSubsystems.size() > 1)
{
String fqn = subsystem.bmGetFqn();
result.add(new SortItem(fqn, MdClassPackage.Literals.SUBSYSTEM__SUBSYSTEMS, sorter));
}
}
}
private Map<EClass, List<EReference>> getSubordinateListsToSort(Iterator<EClass> eClassIterator, private Map<EClass, List<EReference>> getSubordinateListsToSort(Iterator<EClass> eClassIterator,
IProject project) IProject project)
{ {
@ -474,7 +505,8 @@ public class SortService
while (eClassIterator.hasNext()) while (eClassIterator.hasNext())
{ {
EClass topObjectEClass = eClassIterator.next(); EClass topObjectEClass = eClassIterator.next();
if (topObjectEClass.equals(CONFIGURATION) || !MD_OBJECT.isSuperTypeOf(topObjectEClass)) if (topObjectEClass.equals(CONFIGURATION) || topObjectEClass.equals(MdClassPackage.Literals.SUBSYSTEM)
|| !MD_OBJECT.isSuperTypeOf(topObjectEClass))
{ {
continue; continue;
} }
@ -516,6 +548,10 @@ public class SortService
{ {
result.add(new SortItem(CONFIGURATION_FQN, feature, sorter)); result.add(new SortItem(CONFIGURATION_FQN, feature, sorter));
} }
if (feature.equals(MdClassPackage.Literals.CONFIGURATION__SUBSYSTEMS))
{
appendSubordinateSubsystems(result, transaction);
}
} }
} }
} }

View File

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

View File

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

View File

@ -13,27 +13,33 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.20.0,4.0.0)",
org.eclipse.xtext.ui;bundle-version="[2.24.0,3.0.0)", org.eclipse.xtext.ui;bundle-version="[2.24.0,3.0.0)",
org.eclipse.handly.xtext.ui;bundle-version="[1.5.0,2.0.0)", org.eclipse.handly.xtext.ui;bundle-version="[1.5.0,2.0.0)",
org.eclipse.handly;bundle-version="[1.5.0,2.0.0)" org.eclipse.handly;bundle-version="[1.5.0,2.0.0)"
Bundle-RequiredExecutionEnvironment: JavaSE-11 Bundle-RequiredExecutionEnvironment: JavaSE-17
Automatic-Module-Name: com.e1c.v8codestyle.bsl.ui Automatic-Module-Name: com.e1c.v8codestyle.bsl.ui
Bundle-ActivationPolicy: lazy Bundle-ActivationPolicy: lazy
Bundle-Localization: plugin Bundle-Localization: plugin
Import-Package: com._1c.g5.ides.ui.texteditor.xtext.embedded;version="[6.0.0,7.0.0)", Import-Package: com._1c.g5.ides.ui.texteditor.xtext.embedded;version="[6.0.0,7.0.0)",
com._1c.g5.v8.bm.core;version="[8.0.0,9.0.0)", com._1c.g5.v8.bm.core;version="[8.0.0,9.0.0)",
com._1c.g5.v8.dt.bsl.comment;version="[3.0.0,4.0.0)", com._1c.g5.v8.dt.bsl.comment;version="[3.0.0,4.0.0)",
com._1c.g5.v8.dt.bsl.common;version="[6.0.0,7.0.0)", com._1c.g5.v8.dt.bsl.common;version="[7.0.0,8.0.0)",
com._1c.g5.v8.dt.bsl.documentation.comment;version="[4.0.0,5.0.0)", com._1c.g5.v8.dt.bsl.documentation.comment;version="[5.0.0,6.0.0)",
com._1c.g5.v8.dt.bsl.formatting;version="[3.0.0,4.0.0)",
com._1c.g5.v8.dt.bsl.model;version="[5.0.0,6.0.0)", com._1c.g5.v8.dt.bsl.model;version="[5.0.0,6.0.0)",
com._1c.g5.v8.dt.bsl.model.util;version="[4.7.0,5.0.0)",
com._1c.g5.v8.dt.bsl.resource.owner;version="[2.0.0,3.0.0)",
com._1c.g5.v8.dt.bsl.services;version="[7.0.0,8.0.0)", com._1c.g5.v8.dt.bsl.services;version="[7.0.0,8.0.0)",
com._1c.g5.v8.dt.bsl.ui;version="[9.0.0,10.0.0)", com._1c.g5.v8.dt.bsl.ui;version="[9.0.0,10.0.0)",
com._1c.g5.v8.dt.bsl.ui.contentassist;version="[8.0.0,9.0.0)", com._1c.g5.v8.dt.bsl.ui.contentassist;version="[9.0.0,10.0.0)",
com._1c.g5.v8.dt.bsl.ui.editor;version="[9.0.0,10.0.0)", com._1c.g5.v8.dt.bsl.ui.editor;version="[10.0.0,11.0.0)",
com._1c.g5.v8.dt.bsl.ui.menu;version="[6.0.0,7.0.0)", com._1c.g5.v8.dt.bsl.ui.event;version="[6.0.0,7.0.0)",
com._1c.g5.v8.dt.bsl.ui.menu;version="[7.0.0,8.0.0)",
com._1c.g5.v8.dt.bsl.ui.quickfix;version="[4.1.0,5.0.0)", com._1c.g5.v8.dt.bsl.ui.quickfix;version="[4.1.0,5.0.0)",
com._1c.g5.v8.dt.bsl.util;version="[8.0.0,9.0.0)", com._1c.g5.v8.dt.bsl.util;version="[8.0.0,9.0.0)",
com._1c.g5.v8.dt.common;version="[6.0.0,7.0.0)", com._1c.g5.v8.dt.common;version="[6.0.0,7.0.0)",
com._1c.g5.v8.dt.core.filesystem;version="[6.0.0,7.0.0)", com._1c.g5.v8.dt.core.filesystem;version="[6.0.0,7.0.0)",
com._1c.g5.v8.dt.core.model;version="[6.0.0,7.0.0)", com._1c.g5.v8.dt.core.model;version="[6.0.0,7.0.0)",
com._1c.g5.v8.dt.core.platform;version="[11.0.0,12.0.0)", com._1c.g5.v8.dt.core.platform;version="[11.0.0,12.0.0)",
com._1c.g5.v8.dt.form.model;version="[11.1.0,12.0.0)",
com._1c.g5.v8.dt.lcore.nodemodel.util;version="[1.0.0,2.0.0)",
com._1c.g5.v8.dt.lcore.ui.texteditor;version="[1.1.0,2.0.0)", com._1c.g5.v8.dt.lcore.ui.texteditor;version="[1.1.0,2.0.0)",
com._1c.g5.v8.dt.mcore;version="[7.0.0,8.0.0)", com._1c.g5.v8.dt.mcore;version="[7.0.0,8.0.0)",
com._1c.g5.v8.dt.metadata.mdclass;version="[9.0.0,10.0.0)", com._1c.g5.v8.dt.metadata.mdclass;version="[9.0.0,10.0.0)",
@ -43,8 +49,8 @@ Import-Package: com._1c.g5.ides.ui.texteditor.xtext.embedded;version="[6.0.0,7.0
com._1c.g5.wiring;version="[2.2.0,3.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._1c.g5.wiring.binder;version="[1.1.0,2.0.0)",
com.e1c.g5.v8.dt.bsl.check.qfix;version="[3.0.0,4.0.0)", com.e1c.g5.v8.dt.bsl.check.qfix;version="[3.0.0,4.0.0)",
com.e1c.g5.v8.dt.check.qfix;version="[2.0.0,3.0.0)", com.e1c.g5.v8.dt.check.qfix;version="[3.0.0,4.0.0)",
com.e1c.g5.v8.dt.check.qfix.components;version="[1.0.0,2.0.0)", com.e1c.g5.v8.dt.check.qfix.components;version="[1.0.0,2.0.0)",
com.e1c.g5.v8.dt.check.settings;version="[3.0.0,4.0.0)", com.e1c.g5.v8.dt.check.settings;version="[4.0.0,5.0.0)",
com.e1c.v8codestyle.bsl;version="[0.7.0,0.8.0)", com.e1c.v8codestyle.bsl;version="[0.7.0,0.8.0)",
com.e1c.v8codestyle.bsl.strict;version="[0.7.0,0.8.0)" com.e1c.v8codestyle.bsl.strict;version="[0.7.0,0.8.0)"

View File

@ -15,6 +15,8 @@
command.enableStrictTypes.mnemonic = E command.enableStrictTypes.mnemonic = E
command.enableStrictTypes.name = Enable @strict-types in modules command.enableStrictTypes.name = Enable @strict-types in modules
command.formatDocComment.mnemonic = F
command.formatDocComment.name = Format Method Documentation Comment
menu.label = Source menu.label = Source

View File

@ -237,6 +237,10 @@
id="com.e1c.v8codestyle.bsl.ui.commands.addStrictTypesAnnotationCommand" id="com.e1c.v8codestyle.bsl.ui.commands.addStrictTypesAnnotationCommand"
name="%command.enableStrictTypes.name"> name="%command.enableStrictTypes.name">
</command> </command>
<command
id="com.e1c.v8codestyle.bsl.ui.commands.formatDocCommentCommand"
name="%command.formatDocComment.name">
</command>
</extension> </extension>
<extension <extension
point="org.eclipse.ui.menus"> point="org.eclipse.ui.menus">
@ -330,6 +334,16 @@
</reference> </reference>
</visibleWhen> </visibleWhen>
</command> </command>
<command
commandId="com.e1c.v8codestyle.bsl.ui.commands.formatDocCommentCommand"
style="push">
<visibleWhen
checkEnabled="false">
<reference
definitionId="com._1c.g5.v8.dt.bsl.Bsl.Editor.editable">
</reference>
</visibleWhen>
</command>
</menu> </menu>
</menuContribution> </menuContribution>
</extension> </extension>
@ -343,6 +357,14 @@
definitionId="com._1c.g5.v8.dt.bsl.Bsl.Editor.editable"> definitionId="com._1c.g5.v8.dt.bsl.Bsl.Editor.editable">
</reference></activeWhen> </reference></activeWhen>
</handler> </handler>
<handler
class="com.e1c.v8codestyle.internal.bsl.ui.ExecutableExtensionFactory:com.e1c.v8codestyle.internal.bsl.ui.handlers.FormatDocCommentModuleEditorHandler"
commandId="com.e1c.v8codestyle.bsl.ui.commands.formatDocCommentCommand">
<activeWhen>
<reference
definitionId="com._1c.g5.v8.dt.bsl.Bsl.Editor.editable">
</reference></activeWhen>
</handler>
</extension> </extension>
<extension point="com.e1c.g5.v8.dt.check.fixes"> <extension point="com.e1c.g5.v8.dt.check.fixes">
@ -368,5 +390,11 @@
class="com.e1c.v8codestyle.internal.bsl.ui.ExecutableExtensionFactory:com.e1c.v8codestyle.bsl.ui.qfix.ServerExecutionSafeModeFix"> class="com.e1c.v8codestyle.internal.bsl.ui.ExecutableExtensionFactory:com.e1c.v8codestyle.bsl.ui.qfix.ServerExecutionSafeModeFix">
</fix> </fix>
</extension> </extension>
<extension
point="com._1c.g5.v8.dt.bsl.ui.bslModuleTextInsertInfoService">
<bslModuleTextInsertInfoService
class="com.e1c.v8codestyle.internal.bsl.ui.ExecutableExtensionFactory:com.e1c.v8codestyle.internal.bsl.ui.services.BslModuleRegionsInfoService">
</bslModuleTextInsertInfoService>
</extension>
</plugin> </plugin>

View File

@ -14,6 +14,8 @@
command.enableStrictTypes.mnemonic = В command.enableStrictTypes.mnemonic = В
command.enableStrictTypes.name = Включить строгую типизацию (@strict-types) в модулях command.enableStrictTypes.name = Включить строгую типизацию (@strict-types) в модулях
command.formatDocComment.mnemonic = Ф
command.formatDocComment.name = Форматировать документирующий комментарий метода
menu.label = Исходники menu.label = Исходники

View File

@ -81,9 +81,6 @@ public class OpenBslDocCommentViewFix
@Override @Override
protected TextEdit fixIssue(XtextResource state, IXtextBslModuleFixModel model) throws BadLocationException protected TextEdit fixIssue(XtextResource state, IXtextBslModuleFixModel model) throws BadLocationException
{ {
IXtextInteractiveBslModuleFixModel interactiveModel = (IXtextInteractiveBslModuleFixModel)model;
Integer offset = model.getIssue().getOffset() + 1;
Display display = PlatformUI.getWorkbench().getDisplay(); Display display = PlatformUI.getWorkbench().getDisplay();
if (display.isDisposed()) if (display.isDisposed())
{ {
@ -101,13 +98,18 @@ public class OpenBslDocCommentViewFix
} }
}); });
IXtextInteractiveBslModuleFixModel interactiveModel = (IXtextInteractiveBslModuleFixModel)model;
Integer offset = model.getIssue().getOffset() + 1;
ITextViewer viewer = BslQuickFixUtil.getTextViewer(interactiveModel.getModificationContext()); ITextViewer viewer = BslQuickFixUtil.getTextViewer(interactiveModel.getModificationContext());
if (viewer != null && !display.isDisposed()) if (viewer != null && !display.isDisposed())
{ {
display.asyncExec(() -> { display.asyncExec(() -> {
if (viewer.getDocument() != null)
{
viewer.revealRange(offset, 1); viewer.revealRange(offset, 1);
viewer.getTextWidget().setFocus(); viewer.getTextWidget().setFocus();
viewer.setSelectedRange(offset, 1); viewer.setSelectedRange(offset, 1);
}
}); });
} }
return null; return null;

View File

@ -19,10 +19,12 @@ import org.eclipse.xtext.resource.IResourceServiceProvider;
import com._1c.g5.v8.dt.bsl.common.IBslPreferences; import com._1c.g5.v8.dt.bsl.common.IBslPreferences;
import com._1c.g5.v8.dt.bsl.documentation.comment.BslMultiLineCommentDocumentationProvider; import com._1c.g5.v8.dt.bsl.documentation.comment.BslMultiLineCommentDocumentationProvider;
import com._1c.g5.v8.dt.bsl.ui.contentassist.BslProposalProvider;
import com._1c.g5.v8.dt.core.filesystem.IQualifiedNameFilePathConverter; import com._1c.g5.v8.dt.core.filesystem.IQualifiedNameFilePathConverter;
import com._1c.g5.v8.dt.core.model.IModelEditingSupport; import com._1c.g5.v8.dt.core.model.IModelEditingSupport;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager; import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com._1c.g5.v8.dt.lcore.ui.texteditor.IndentTextEditorProvider;
import com._1c.g5.wiring.AbstractServiceAwareModule; import com._1c.g5.wiring.AbstractServiceAwareModule;
import com.e1c.g5.v8.dt.check.qfix.IFixRepository; import com.e1c.g5.v8.dt.check.qfix.IFixRepository;
import com.e1c.v8codestyle.bsl.IModuleStructureProvider; import com.e1c.v8codestyle.bsl.IModuleStructureProvider;
@ -59,6 +61,8 @@ class ExternalDependenciesModule
bind(BslMultiLineCommentDocumentationProvider.class) bind(BslMultiLineCommentDocumentationProvider.class)
.toProvider(() -> rsp.get(BslMultiLineCommentDocumentationProvider.class)); .toProvider(() -> rsp.get(BslMultiLineCommentDocumentationProvider.class));
bind(EObjectAtOffsetHelper.class).toProvider(() -> rsp.get(EObjectAtOffsetHelper.class)); bind(EObjectAtOffsetHelper.class).toProvider(() -> rsp.get(EObjectAtOffsetHelper.class));
bind(BslProposalProvider.class).toProvider(() -> rsp.get(BslProposalProvider.class));
bind(IndentTextEditorProvider.class).toProvider(() -> rsp.get(IndentTextEditorProvider.class));
// CodeStyle Services // CodeStyle Services
bind(IModuleStructureProvider.class).toService(); bind(IModuleStructureProvider.class).toService();

View File

@ -0,0 +1,235 @@
/*******************************************************************************
* Copyright (C) 2024, 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.bsl.ui.handlers;
import java.util.List;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.handly.buffer.BufferChange;
import org.eclipse.handly.snapshot.NonExpiringSnapshot;
import org.eclipse.jface.text.ITextViewer;
import org.eclipse.text.edits.ReplaceEdit;
import org.eclipse.text.edits.TextEdit;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.handlers.HandlerUtil;
import org.eclipse.xtext.EcoreUtil2;
import org.eclipse.xtext.nodemodel.ICompositeNode;
import org.eclipse.xtext.nodemodel.ILeafNode;
import org.eclipse.xtext.nodemodel.INode;
import org.eclipse.xtext.nodemodel.util.NodeModelUtils;
import org.eclipse.xtext.resource.XtextResource;
import org.eclipse.xtext.ui.editor.XtextEditor;
import org.eclipse.xtext.ui.editor.model.IXtextDocument;
import org.eclipse.xtext.util.CancelIndicator;
import org.eclipse.xtext.util.Triple;
import org.eclipse.xtext.util.Tuples;
import org.eclipse.xtext.util.concurrent.CancelableUnitOfWork;
import com._1c.g5.ides.ui.texteditor.xtext.embedded.EmbeddedEditorBuffer;
import com._1c.g5.v8.dt.bsl.common.IBslPreferences;
import com._1c.g5.v8.dt.bsl.documentation.comment.BslCommentUtils;
import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocCommentSerializer;
import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment;
import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment.Description;
import com._1c.g5.v8.dt.bsl.documentation.comment.BslMultiLineCommentDocumentationProvider;
import com._1c.g5.v8.dt.bsl.documentation.comment.IDescriptionPart;
import com._1c.g5.v8.dt.bsl.documentation.comment.TextPart;
import com._1c.g5.v8.dt.bsl.model.Method;
import com._1c.g5.v8.dt.bsl.model.Module;
import com._1c.g5.v8.dt.bsl.ui.contentassist.BslProposalProvider;
import com._1c.g5.v8.dt.bsl.ui.menu.BslHandlerUtil;
import com._1c.g5.v8.dt.bsl.util.BslUtil;
import com._1c.g5.v8.dt.common.PreferenceUtils;
import com._1c.g5.v8.dt.common.StringUtils;
import com._1c.g5.v8.dt.core.model.EditingMode;
import com._1c.g5.v8.dt.core.model.IModelEditingSupport;
import com._1c.g5.v8.dt.core.platform.IV8Project;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com._1c.g5.v8.dt.lcore.nodemodel.util.CustomNodeModelUtils;
import com._1c.g5.v8.dt.lcore.ui.texteditor.IndentTextEditorProvider;
import com.e1c.v8codestyle.internal.bsl.ui.UiPlugin;
import com.google.inject.Inject;
/**
* The Handler to format current method's documentation comment in opened in BSL editor.
*
* @author Dmitriy Marmyshev
*/
public class FormatDocCommentModuleEditorHandler
extends AbstractHandler
{
@Inject
private BslMultiLineCommentDocumentationProvider commentProvider;
@Inject
private BslProposalProvider proposalProvider;
@Inject
private IBslPreferences bslPreferences;
@Inject
private IV8ProjectManager v8projectManager;
@Inject
private IndentTextEditorProvider indentProvider;
@Inject
private IModelEditingSupport modelEditingSupport;
@Override
public Object execute(ExecutionEvent event) throws ExecutionException
{
IWorkbenchPart part = HandlerUtil.getActivePart(event);
XtextEditor target = BslHandlerUtil.extractXtextEditor(part);
if (target != null)
{
final ITextViewer viewer = BslHandlerUtil.getTextViewer(target);
IXtextDocument document = target.getDocument();
Triple<Integer, Integer, String> content =
document.readOnly(new CancelableUnitOfWork<Triple<Integer, Integer, String>, XtextResource>()
{
@Override
public Triple<Integer, Integer, String> exec(XtextResource resource, CancelIndicator monitor)
throws Exception
{
if (resource.getContents() != null && !resource.getContents().isEmpty())
{
EObject obj = resource.getContents().get(0);
if (obj instanceof Module)
return getFormatedDocComment((Module)obj, viewer);
}
return null;
}
});
if (content != null && content.getFirst() > -1 && content.getSecond() > -1 && content.getThird() != null)
{
replaceDocComment(document, content.getThird(), content.getFirst(), content.getSecond());
}
}
return null;
}
private void replaceDocComment(IXtextDocument document, String comment, int insertOffset, int length)
{
TextEdit change = new ReplaceEdit(insertOffset, length, comment);
try (EmbeddedEditorBuffer buffer = new EmbeddedEditorBuffer(document))
{
NonExpiringSnapshot snapshot = new NonExpiringSnapshot(buffer);
BufferChange bufferChange = new BufferChange(change);
bufferChange.setBase(snapshot);
buffer.applyChange(bufferChange, new NullProgressMonitor());
}
catch (CoreException e)
{
UiPlugin.logError(e);
}
}
private Triple<Integer, Integer, String> getFormatedDocComment(Module module, ITextViewer viewer)
{
if (!modelEditingSupport.canEdit(module, EditingMode.DIRECT))
{
return null;
}
Method method = getNearestMethod(module, (viewer.getSelectedRange()).x);
if (method != null)
{
List<INode> lines = commentProvider.getDocumentationNodes(method);
if (lines.isEmpty())
{
return null;
}
int methodOffset = lines.get(0).getOffset();
int length = lines.get(lines.size() - 1).getEndOffset() - methodOffset;
String lineFormatter = proposalProvider.getLineFormatter(module, viewer.getDocument(), methodOffset);
IV8Project project = v8projectManager.getProject(module);
boolean oldFormat = (project != null && project.getProject() != null)
? this.bslPreferences.getDocumentCommentProperties(project.getProject()).oldCommentFormat() : true;
BslDocumentationComment docComment =
BslCommentUtils.parseTemplateComment(method, oldFormat, commentProvider);
if (isEmpty(docComment.getDescription()))
{
docComment.getDescription().getParts().clear();
}
boolean isRussian = BslUtil.isRussian(method, v8projectManager);
String indent = indentProvider.getIndent();
String lineSeparator = resolveLineSeparator(project);
String comment = BslDocCommentSerializer.newBuilder()
.setOldFormat(oldFormat)
.setScriptVariant(isRussian)
.lineSeparator(lineSeparator)
.ignoreLineNumbers()
.build()
.serialize(docComment, lineFormatter, indent)
.concat(lineSeparator);
return Tuples.create(methodOffset, length, comment);
}
return null;
}
private boolean isEmpty(Description description)
{
for (IDescriptionPart part : description.getParts())
{
if (part instanceof TextPart)
{
String text = ((TextPart)part).getText();
if (StringUtils.isNotBlank(text))
{
return false;
}
}
else
{
return false;
}
}
return true;
}
private Method getNearestMethod(Module module, int offset)
{
ICompositeNode iCompositeNode = NodeModelUtils.findActualNodeFor(module);
ILeafNode node = CustomNodeModelUtils.findLeafNodeAtOffset(iCompositeNode, offset);
EObject actualObject = NodeModelUtils.findActualSemanticObjectFor(node);
if (actualObject instanceof Method)
return (Method)actualObject;
return EcoreUtil2.getContainerOfType(actualObject, Method.class);
}
private static String resolveLineSeparator(IV8Project v8project)
{
if (v8project == null)
return System.lineSeparator();
return PreferenceUtils.getLineSeparator(v8project.getProject());
}
}

View File

@ -0,0 +1,176 @@
/*******************************************************************************
* Copyright (C) 2023, 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.bsl.ui.services;
import java.util.HashMap;
import java.util.Map;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.IDocument;
import org.eclipse.xtext.nodemodel.INode;
import com.e1c.v8codestyle.internal.bsl.ui.UiPlugin;
/**
* Provides offsets and suffixes information of module region
*
* @author Kuznetsov Nikita
*/
public final class BslModuleOffsets
{
private int startOffset;
private int endOffset;
private int insertOffset;
private boolean needReplace;
private Map<String, BslModuleOffsets> suffixes;
/**
* Create and calculate module region offsets
*
* @param document actual {@link IDocument} to get offsets from, can't be {@code null}
* @param node {@link INode} to get offsets from, can't be {@code null}
* @param nodeAfter {@link INode} to get offsets from, can't be {@code null}
* @return module region information with calculated region offsets or {@code null}
*/
public static BslModuleOffsets create(IDocument document, INode node, INode nodeAfter)
{
try
{
int startLine = node.getTotalStartLine() - 1;
int startOffset = document.getLineOffset((startLine <= 1) ? 0 : startLine);
int endOffset = nodeAfter.getTotalOffset();
int insertOffset = document.getLineOffset(document.getLineOfOffset(nodeAfter.getTotalOffset()));
return new BslModuleOffsets(startOffset, endOffset, insertOffset);
}
catch (BadLocationException ex)
{
UiPlugin.log(UiPlugin.createErrorStatus("Can't create module region information", ex)); //$NON-NLS-1$
}
return null;
}
/**
* Returns start offset of module region
*
* @return offset before region declaration
*/
public int getStartOffset()
{
return startOffset;
}
/**
* Returns end offset of module region
*
* @return offset after region declaration
*/
public int getEndOffset()
{
return endOffset;
}
/**
* Returns before end offset inside module region
*
* @return offset before end of region declaration
*/
public int getBeforeEndOffset()
{
return insertOffset;
}
/**
* Is need to replace existing module region
*
* @return <code>true</code> if need to replace existing region, <code>false</code> otherwise
*/
public boolean needReplace()
{
return needReplace;
}
/**
* Sets necessity of replacing existing module region
*/
public void setNeedReplace()
{
needReplace = true;
}
/**
* Add suffix of the name of this module region
*
* @param suffix to add to suffixes map of this module region
* @param document to update offsets, can't be {@code null}
* @param node to update offsets, can't be {@code null}
* @param nodeAfter to update offsets, can't be {@code null}
*/
public void addSuffix(String suffix, IDocument document, INode node, INode nodeAfter)
{
if (suffixes == null)
{
suffixes = new HashMap<>();
}
BslModuleOffsets suffixRegionInformation = create(document, node, nodeAfter);
if (suffixRegionInformation != null)
{
suffixes.put(suffix, suffixRegionInformation);
int suffixStartOffset = suffixRegionInformation.getStartOffset();
int suffixEndOffset = suffixRegionInformation.getEndOffset();
int suffixInsertOffset = suffixRegionInformation.getBeforeEndOffset();
if (insertOffset < suffixInsertOffset)
{
insertOffset = suffixInsertOffset;
endOffset = suffixEndOffset;
}
if (startOffset > suffixStartOffset)
{
startOffset = suffixStartOffset;
}
}
}
/**
* Is module region has suffixes
*
* @return {@code true} if module region has suffixes, {@code false} otherwise
*/
public boolean hasSuffixes()
{
return suffixes != null;
}
/**
* Returns module region information by suffix if exists
*
* @param suffix {@link String} suffix of declared name module region
* @return {@link BslModuleOffsets} if suffix exists, {@code null} otherwise
*/
public BslModuleOffsets getInformationBySuffix(String suffix)
{
if (hasSuffixes())
{
return suffixes.get(suffix);
}
return null;
}
private BslModuleOffsets(int startOffset, int endOffset, int insertOffset)
{
this.startOffset = startOffset;
this.endOffset = endOffset;
this.insertOffset = insertOffset;
}
}

View File

@ -0,0 +1,79 @@
/*******************************************************************************
* Copyright (C) 2023-2024, 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.bsl.ui.services;
import org.eclipse.emf.common.util.URI;
import com._1c.g5.v8.dt.bsl.common.IBslModuleTextInsertInfo;
/**
* Built-in language module region information with {@link String} region wrap data
*
* @author Kuznetsov Nikita
*/
public class BslModuleRegionsInfo
implements IBslModuleTextInsertInfo
{
private final URI resourceURI;
private final int insertPosition;
private final int clearPosition;
private final int clearLength;
private final String regionName;
/**
* {@link BslModuleRegionsInfo} constructor
*
* @param resourceURI current module or document resource {@link URI}, cannot be <code>null</code>
* @param insertPosition <code>int</code> insertion offset, cannot be negative
* @param clearPosition text clear <code>int</code> position, can be negative if no clear needed
* @param clearLength text clear <code>int</code> length, can be negative if no clear needed
* @param regionName {@link String} region name, can be <code>null</code>
*/
public BslModuleRegionsInfo(URI resourceURI, int insertPosition, int clearPosition, int clearLength,
String regionName)
{
this.resourceURI = resourceURI;
this.insertPosition = insertPosition;
this.clearPosition = clearPosition;
this.clearLength = clearLength;
this.regionName = regionName;
}
@Override
public URI getResourceURI()
{
return resourceURI;
}
@Override
public int getPosition()
{
return clearLength > 0 ? clearPosition : insertPosition;
}
@Override
public int getClearLength()
{
return clearLength;
}
/**
* Returns region name
*
* @return {@link String} region name, can be <code>null</code>
*/
public String getRegionName()
{
return regionName;
}
}

View File

@ -0,0 +1,390 @@
/*******************************************************************************
* Copyright (C) 2023-2024, 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.bsl.ui.services;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.nodemodel.INode;
import org.eclipse.xtext.nodemodel.util.NodeModelUtils;
import org.eclipse.xtext.resource.IResourceServiceProvider;
import org.eclipse.xtext.resource.XtextResource;
import org.eclipse.xtext.ui.editor.model.IXtextDocument;
import org.eclipse.xtext.util.concurrent.IUnitOfWork;
import com._1c.g5.v8.dt.bsl.common.EventItemType;
import com._1c.g5.v8.dt.bsl.common.IBslModuleEventData;
import com._1c.g5.v8.dt.bsl.common.IBslModuleTextInsertInfo;
import com._1c.g5.v8.dt.bsl.common.IBslModuleTextInsertInfoService;
import com._1c.g5.v8.dt.bsl.model.Module;
import com._1c.g5.v8.dt.bsl.model.RegionPreprocessor;
import com._1c.g5.v8.dt.bsl.model.util.BslUtil;
import com._1c.g5.v8.dt.bsl.resource.owner.BslOwnerComputerService;
import com._1c.g5.v8.dt.bsl.ui.BslGeneratorMultiLangProposals;
import com._1c.g5.v8.dt.bsl.ui.editor.BslXtextDocument;
import com._1c.g5.v8.dt.bsl.ui.event.BslModuleEventData;
import com._1c.g5.v8.dt.common.PreferenceUtils;
import com._1c.g5.v8.dt.common.StringUtils;
import com._1c.g5.v8.dt.core.platform.IV8Project;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com._1c.g5.v8.dt.form.model.FormPackage;
import com._1c.g5.v8.dt.mcore.NamedElement;
import com._1c.g5.v8.dt.metadata.mdclass.ScriptVariant;
import com.e1c.v8codestyle.bsl.IModuleStructureProvider;
import com.e1c.v8codestyle.bsl.ModuleStructureSection;
import com.google.inject.Inject;
/**
* Module regions related implementation of {@link IBslModuleTextInsertInfoService}
*
* @author Kuznetsov Nikita
*/
public class BslModuleRegionsInfoService
implements IBslModuleTextInsertInfoService
{
@Inject
private IModuleStructureProvider moduleStructureProvider;
@Override
public IBslModuleTextInsertInfo getEventHandlerTextInsertInfo(IXtextDocument document, int defaultPosition,
IBslModuleEventData data)
{
if (!(data instanceof BslModuleEventData))
{
return IBslModuleTextInsertInfo.getDefaultModuleTextInsertInfo(document, defaultPosition);
}
BslModuleEventData bslModuleEventData = (BslModuleEventData)data;
URI resourceURI = document.getResourceURI();
IResourceServiceProvider rsp =
IResourceServiceProvider.Registry.INSTANCE.getResourceServiceProvider(resourceURI);
IV8ProjectManager projectManager = rsp.get(IV8ProjectManager.class);
IV8Project project = projectManager.getProject(resourceURI);
ModuleInfoUnitOfWork moduleInfoUnitOfWork = new ModuleInfoUnitOfWork(rsp.get(BslOwnerComputerService.class));
ModuleInfo moduleInfo = document instanceof BslXtextDocument bslXTextDocument
? bslXTextDocument.readOnlyDataModelWithoutSync(moduleInfoUnitOfWork)
: document.readOnly(moduleInfoUnitOfWork);
EObject eventOwner = data.getEventOwner();
BslModuleEventData regionData = (BslModuleEventData)data;
EventItemType itemType = regionData.getEventItemType();
String suffix = getSuffix(eventOwner, itemType, bslModuleEventData.isInternal());
ScriptVariant scriptVariant = project.getScriptVariant();
String declaredRegionName =
getDeclaredRegionName(moduleInfo.owner, itemType, bslModuleEventData.isInternal(), scriptVariant);
Map<String, BslModuleOffsets> regionOffsets =
getRegionOffsets(document, moduleInfo.regionPreprocessors, declaredRegionName, scriptVariant);
BslModuleOffsets bslModuleOffsets = regionOffsets.get(declaredRegionName);
int offset = getRegionOffset(regionOffsets, declaredRegionName, suffix, defaultPosition, scriptVariant);
String regionName = null;
boolean createRegion = !isRegionExists(regionOffsets, declaredRegionName, suffix);
int clearOffset = 0;
int clearLength = 0;
if (bslModuleOffsets != null && bslModuleOffsets.needReplace())
{
createRegion = true;
String lineSeparator = PreferenceUtils.getLineSeparator(project.getProject());
int lineSeparatorOffset =
bslModuleOffsets.getStartOffset() >= lineSeparator.length() ? lineSeparator.length() : 0;
clearOffset = bslModuleOffsets.getStartOffset() - lineSeparatorOffset;
clearLength = bslModuleOffsets.getEndOffset() - bslModuleOffsets.getStartOffset() + lineSeparatorOffset;
}
if (createRegion && project.getProject() != null
&& moduleStructureProvider.canCreateStructure(project.getProject()))
{
regionName = suffix.isEmpty() ? declaredRegionName : (declaredRegionName + suffix);
}
return new BslModuleRegionsInfo(resourceURI, offset, clearOffset, clearLength, regionName);
}
@Override
public String wrap(IBslModuleTextInsertInfo moduleTextInsertInfo, String content)
{
if (moduleTextInsertInfo instanceof BslModuleRegionsInfo moduleRegionInformation)
{
String regionName = moduleRegionInformation.getRegionName();
if (regionName != null)
{
IResourceServiceProvider rsp = IResourceServiceProvider.Registry.INSTANCE
.getResourceServiceProvider(moduleTextInsertInfo.getResourceURI());
IV8ProjectManager projectManager = rsp.get(IV8ProjectManager.class);
BslGeneratorMultiLangProposals proposals = rsp.get(BslGeneratorMultiLangProposals.class);
IV8Project project = projectManager.getProject(moduleTextInsertInfo.getResourceURI());
String lineSeparator = PreferenceUtils.getLineSeparator(project.getProject());
proposals.setRussianLang(ScriptVariant.RUSSIAN.equals(project.getScriptVariant()));
String beginRegion = proposals.getBeginRegionPropStr();
String endRegion = proposals.getEndRegionPropStr();
String space = proposals.getSpacePropStr();
StringBuilder builder = new StringBuilder();
if (moduleTextInsertInfo.getPosition() != 0)
{
builder.append(lineSeparator);
}
builder.append(beginRegion).append(space).append(regionName);
builder.append(content);
builder.append(endRegion);
if (moduleTextInsertInfo.getPosition() == 0)
{
builder.append(lineSeparator);
}
return builder.toString();
}
}
return content;
}
private Map<String, BslModuleOffsets> getRegionOffsets(IXtextDocument document,
List<RegionPreprocessor> regionPreprocessors, String targetRegionName, ScriptVariant scriptVariant)
{
ModuleStructureSection[] declaredRegionNames = ModuleStructureSection.values();
Map<String, BslModuleOffsets> regionOffsets = new HashMap<>(declaredRegionNames.length / 2);
for (RegionPreprocessor regionPreprocessor : regionPreprocessors)
{
INode nodeAfter = NodeModelUtils.findActualNodeFor(regionPreprocessor.getItemAfter());
if (nodeAfter != null)
{
String preprocessorRegionName = regionPreprocessor.getName();
for (int regionNameIndex = 0; regionNameIndex < declaredRegionNames.length; regionNameIndex++)
{
ModuleStructureSection moduleStructureSection = declaredRegionNames[regionNameIndex];
String declaredRegionName = moduleStructureSection.getName(scriptVariant);
if ((preprocessorRegionName != null)
&& isMatchingRegion(preprocessorRegionName, declaredRegionName))
{
INode node = NodeModelUtils.findActualNodeFor(regionPreprocessor.getItem());
if (node != null)
{
BslModuleOffsets moduleRegionInformation = null;
if (!preprocessorRegionName.equals(declaredRegionName))
{
if (!moduleStructureSection.isSuffixed())
{
continue;
}
String suffix = getSuffixOfMatchingRegion(preprocessorRegionName, declaredRegionName);
moduleRegionInformation = regionOffsets.get(declaredRegionName);
if (moduleRegionInformation == null)
{
moduleRegionInformation = BslModuleOffsets.create(document, node, nodeAfter);
if (moduleRegionInformation == null)
{
return regionOffsets;
}
}
moduleRegionInformation.addSuffix(suffix, document, node, nodeAfter);
}
if (moduleRegionInformation == null && !moduleStructureSection.isSuffixed())
{
moduleRegionInformation = BslModuleOffsets.create(document, node, nodeAfter);
}
if (moduleRegionInformation != null)
{
regionOffsets.put(declaredRegionName, moduleRegionInformation);
if ((targetRegionName != null) && targetRegionName.equals(preprocessorRegionName))
{
if (node.getLength() == 0)
{
moduleRegionInformation.setNeedReplace();
}
return regionOffsets;
}
}
}
}
}
}
}
return regionOffsets;
}
private int getRegionOffset(Map<String, BslModuleOffsets> regionOffsets, String declaredRegionName, String suffix,
int defaultOffset, ScriptVariant scriptVariant)
{
int offset = defaultOffset;
boolean createNewRegion = !isRegionExists(regionOffsets, declaredRegionName, suffix);
BslModuleOffsets regionOffset = regionOffsets.get(declaredRegionName);
if (regionOffset != null)
{
if (!suffix.isEmpty())
{
BslModuleOffsets suffixedRegionInformation = regionOffset.getInformationBySuffix(suffix);
if (suffixedRegionInformation != null)
{
return suffixedRegionInformation.getBeforeEndOffset();
}
else if (createNewRegion)
{
return getNewRegionOffset(regionOffsets, declaredRegionName, suffix, defaultOffset, scriptVariant);
}
}
return regionOffset.getBeforeEndOffset();
}
if (createNewRegion)
{
return getNewRegionOffset(regionOffsets, declaredRegionName, suffix, defaultOffset, scriptVariant);
}
return offset;
}
private boolean isRegionExists(Map<String, BslModuleOffsets> regionOffsets, String declaredRegionName,
String suffix)
{
BslModuleOffsets moduleRegionInformation = regionOffsets.get(declaredRegionName);
return (moduleRegionInformation != null)
&& (suffix.isEmpty() || moduleRegionInformation.getInformationBySuffix(suffix) != null);
}
private int getNewRegionOffset(Map<String, BslModuleOffsets> regionOffsets, String regionName, String suffix,
int defaultOffset, ScriptVariant scriptVariant)
{
boolean placeBefore = false;
int offset = regionOffsets.isEmpty() ? 0 : defaultOffset;
ModuleStructureSection[] declaredRegionNames = ModuleStructureSection.values();
BslModuleOffsets lastRegionInformation = null;
BslModuleOffsets regionInformation = null;
for (int regionNameIndex = 0; regionNameIndex < declaredRegionNames.length; regionNameIndex++)
{
ModuleStructureSection moduleStructuredSection = declaredRegionNames[regionNameIndex];
String declaredRegionName = moduleStructuredSection.getName(scriptVariant);
if (declaredRegionName.equals(regionName))
{
placeBefore = true;
}
if (regionInformation != null)
{
lastRegionInformation = regionInformation;
}
regionInformation = regionOffsets.get(declaredRegionName);
if (regionInformation != null)
{
if (placeBefore && (suffix.isEmpty() || !declaredRegionName.equals(regionName)))
{
return lastRegionInformation != null ? lastRegionInformation.getEndOffset()
: regionInformation.getStartOffset();
}
offset = placeBefore ? regionInformation.getStartOffset() : regionInformation.getEndOffset();
}
}
return offset;
}
private String getDeclaredRegionName(EClass moduleOwnerClass, EventItemType itemType, boolean isInternal,
ScriptVariant scriptVariant)
{
if (isInternal)
{
return getPrivateRegionName(scriptVariant);
}
if (moduleOwnerClass.getName().equals("AbstractForm")) //$NON-NLS-1$
{
return getDeclaredRegionNameForForm(itemType, scriptVariant);
}
return getDefaultRegionName(scriptVariant);
}
private String getDeclaredRegionNameForForm(EventItemType itemType, ScriptVariant scriptVariant)
{
switch (itemType)
{
case MAIN:
return ModuleStructureSection.FORM_EVENT_HANDLERS.getName(scriptVariant);
case COMMAND:
return ModuleStructureSection.FORM_COMMAND_EVENT_HANDLERS.getName(scriptVariant);
case TABLE:
return ModuleStructureSection.FORM_TABLE_ITEMS_EVENT_HANDLERS.getName(scriptVariant);
default:
return ModuleStructureSection.FORM_HEADER_ITEMS_EVENT_HANDLERS.getName(scriptVariant);
}
}
private String getPrivateRegionName(ScriptVariant scriptVariant)
{
return ModuleStructureSection.PRIVATE.getName(scriptVariant);
}
private String getDefaultRegionName(ScriptVariant scriptVariant)
{
return ModuleStructureSection.EVENT_HANDLERS.getName(scriptVariant);
}
private String getSuffix(EObject eventOwner, EventItemType itemType, boolean isInternal)
{
if (isInternal)
{
return StringUtils.EMPTY;
}
if (itemType.equals(EventItemType.TABLE))
{
EObject container = eventOwner;
while (container != null)
{
if (container.eClass() == FormPackage.Literals.TABLE)
{
return ((NamedElement)container).getName();
}
else
{
container = container.eContainer();
}
}
}
return StringUtils.EMPTY;
}
private String getSuffixOfMatchingRegion(String regionName, String declaredRegionName)
{
return regionName.substring(declaredRegionName.length(), regionName.length());
}
private boolean isMatchingRegion(String regionName, String declaredRegionName)
{
int declaredRegionNameLength = declaredRegionName.length();
return regionName.length() >= declaredRegionNameLength
&& regionName.substring(0, declaredRegionNameLength).equals(declaredRegionName);
}
private final class ModuleInfo
{
private final EClass owner;
private final List<RegionPreprocessor> regionPreprocessors;
public ModuleInfo(EClass owner, List<RegionPreprocessor> regionPreprocessors)
{
this.owner = owner;
this.regionPreprocessors = regionPreprocessors;
}
}
private final class ModuleInfoUnitOfWork
implements IUnitOfWork<ModuleInfo, XtextResource>
{
private final BslOwnerComputerService bslOwnerComputerService;
public ModuleInfoUnitOfWork(BslOwnerComputerService bslOwnerComputerService)
{
this.bslOwnerComputerService = bslOwnerComputerService;
}
@Override
public ModuleInfo exec(XtextResource resource) throws Exception
{
Module module = (Module)resource.getParseResult().getRootASTElement();
return new ModuleInfo(bslOwnerComputerService.computeOwnerEClass(module),
BslUtil.getAllRegionPreprocessors(module));
}
}
}

View File

@ -14,7 +14,7 @@ package com.e1c.v8codestyle.internal.bsl.ui.views;
import java.text.MessageFormat; import java.text.MessageFormat;
import javax.inject.Inject; import com.google.inject.Inject;
import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.IToolBarManager; import org.eclipse.jface.action.IToolBarManager;

View File

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

View File

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

View File

@ -13,26 +13,26 @@ Require-Bundle: org.eclipse.core.resources;bundle-version="[3.13.0,4.0.0)",
org.eclipse.xtext;bundle-version="[2.17.0,3.0.0)", org.eclipse.xtext;bundle-version="[2.17.0,3.0.0)",
org.eclipse.xtext.builder;bundle-version="[2.18.0,3.0.0)", org.eclipse.xtext.builder;bundle-version="[2.18.0,3.0.0)",
org.eclipse.jdt.annotation;bundle-version="[2.2.0,3.0.0)";resolution:=optional org.eclipse.jdt.annotation;bundle-version="[2.2.0,3.0.0)";resolution:=optional
Bundle-RequiredExecutionEnvironment: JavaSE-11 Bundle-RequiredExecutionEnvironment: JavaSE-17
Automatic-Module-Name: com.e1c.v8codestyle.bsl Automatic-Module-Name: com.e1c.v8codestyle.bsl
Bundle-ActivationPolicy: lazy Bundle-ActivationPolicy: lazy
Import-Package: com._1c.g5.v8.bm.core;version="[8.0.0,9.0.0)", Import-Package: com._1c.g5.v8.bm.core;version="[8.0.0,9.0.0)",
com._1c.g5.v8.bm.integration;version="[11.0.0,12.0.0)", com._1c.g5.v8.bm.integration;version="[11.0.0,12.0.0)",
com._1c.g5.v8.dt.bm.xtext;version="[15.0.0,16.0.0)", com._1c.g5.v8.dt.bm.xtext;version="[15.0.0,16.0.0)",
com._1c.g5.v8.dt.bsl;version="[6.0.0,7.0.0)", com._1c.g5.v8.dt.bsl;version="[7.0.0,8.0.0)",
com._1c.g5.v8.dt.bsl.comment;version="[3.0.0,4.0.0)", com._1c.g5.v8.dt.bsl.comment;version="[3.0.0,4.0.0)",
com._1c.g5.v8.dt.bsl.common;version="[6.0.0,7.0.0)", com._1c.g5.v8.dt.bsl.common;version="[7.0.0,8.0.0)",
com._1c.g5.v8.dt.bsl.contextdef;version="[2.0.0,3.0.0)", com._1c.g5.v8.dt.bsl.contextdef;version="[2.0.0,3.0.0)",
com._1c.g5.v8.dt.bsl.documentation.comment;version="[4.0.0,5.0.0)", com._1c.g5.v8.dt.bsl.documentation.comment;version="[5.0.0,6.0.0)",
com._1c.g5.v8.dt.bsl.model;version="[5.0.0,6.0.0)", com._1c.g5.v8.dt.bsl.model;version="[5.0.0,6.0.0)",
com._1c.g5.v8.dt.bsl.model.resource.owner;version="[2.0.0,3.0.0)", com._1c.g5.v8.dt.bsl.model.resource.owner;version="[2.0.0,3.0.0)",
com._1c.g5.v8.dt.bsl.model.util;version="[4.0.0,5.0.0)", com._1c.g5.v8.dt.bsl.model.util;version="[4.0.0,5.0.0)",
com._1c.g5.v8.dt.bsl.resource;version="[15.0.0,16.0.0)", com._1c.g5.v8.dt.bsl.resource;version="[15.0.0,16.0.0)",
com._1c.g5.v8.dt.bsl.services;version="[7.0.0,8.0.0)", com._1c.g5.v8.dt.bsl.services;version="[7.0.0,8.0.0)",
com._1c.g5.v8.dt.bsl.typesystem;version="[10.0.0,11.0.0)", com._1c.g5.v8.dt.bsl.typesystem;version="[10.0.0,11.0.0)",
com._1c.g5.v8.dt.bsl.typesystem.util;version="[10.0.0,11.0.0)", com._1c.g5.v8.dt.bsl.typesystem.util;version="[11.0.0,12.0.0)",
com._1c.g5.v8.dt.bsl.util;version="[8.0.0,9.0.0)", com._1c.g5.v8.dt.bsl.util;version="[8.0.0,9.0.0)",
com._1c.g5.v8.dt.bsl.validation;version="[17.0.0,18.0.0)", com._1c.g5.v8.dt.bsl.validation;version="[18.0.0,19.0.0)",
com._1c.g5.v8.dt.common;version="[6.0.0,7.0.0)", com._1c.g5.v8.dt.common;version="[6.0.0,7.0.0)",
com._1c.g5.v8.dt.core.naming;version="[7.0.0,8.0.0)", com._1c.g5.v8.dt.core.naming;version="[7.0.0,8.0.0)",
com._1c.g5.v8.dt.core.platform;version="[11.0.0,12.0.0)", com._1c.g5.v8.dt.core.platform;version="[11.0.0,12.0.0)",
@ -47,13 +47,13 @@ Import-Package: com._1c.g5.v8.bm.core;version="[8.0.0,9.0.0)",
com._1c.g5.wiring.binder;version="[1.0.0,2.0.0)", com._1c.g5.wiring.binder;version="[1.0.0,2.0.0)",
com.e1c.g5.dt.core.api.naming;version="1.0.0", com.e1c.g5.dt.core.api.naming;version="1.0.0",
com.e1c.g5.dt.core.api.platform;version="[1.1.0,2.0.0)", com.e1c.g5.dt.core.api.platform;version="[1.1.0,2.0.0)",
com.e1c.g5.v8.dt.bsl.check;version="[2.0.0,3.0.0)", com.e1c.g5.v8.dt.bsl.check;version="[3.0.0,4.0.0)",
com.e1c.g5.v8.dt.bsl.check.qfix;version="[3.0.0,4.0.0)", com.e1c.g5.v8.dt.bsl.check.qfix;version="[3.0.0,4.0.0)",
com.e1c.g5.v8.dt.check;version="[2.0.0,3.0.0)", com.e1c.g5.v8.dt.check;version="[2.0.0,3.0.0)",
com.e1c.g5.v8.dt.check.components;version="[2.0.0,3.0.0)", com.e1c.g5.v8.dt.check.components;version="[2.0.0,3.0.0)",
com.e1c.g5.v8.dt.check.qfix;version="[2.0.0,3.0.0)", com.e1c.g5.v8.dt.check.qfix;version="[3.0.0,4.0.0)",
com.e1c.g5.v8.dt.check.qfix.components;version="[1.0.0,2.0.0)", com.e1c.g5.v8.dt.check.qfix.components;version="[1.0.0,2.0.0)",
com.e1c.g5.v8.dt.check.settings;version="[3.0.0,4.0.0)", com.e1c.g5.v8.dt.check.settings;version="[4.0.0,5.0.0)",
com.e1c.v8codestyle;version="[0.7.0,0.8.0)", com.e1c.v8codestyle;version="[0.7.0,0.8.0)",
com.e1c.v8codestyle.check;version="[0.7.0,0.8.0)" com.e1c.v8codestyle.check;version="[0.7.0,0.8.0)"
Export-Package: com.e1c.v8codestyle.bsl;version="0.7.0", Export-Package: com.e1c.v8codestyle.bsl;version="0.7.0",

View File

@ -15,29 +15,37 @@ package com.e1c.v8codestyle.bsl;
import com._1c.g5.v8.dt.metadata.mdclass.ScriptVariant; import com._1c.g5.v8.dt.metadata.mdclass.ScriptVariant;
/** /**
* Standard module structure dually-named section. * Standard module structure dually-named section;
* <br>Sorted by priority of module regions standard.
* *
* @author Dmitriy Marmyshev * @author Dmitriy Marmyshev
*/ */
public enum ModuleStructureSection public enum ModuleStructureSection
{ {
PUBLIC("Public", "ПрограммныйИнтерфейс"), //$NON-NLS-1$ //$NON-NLS-2$
INTERNAL("Internal", "СлужебныйПрограммныйИнтерфейс"), //$NON-NLS-1$ //$NON-NLS-2$
PRIVATE("Private", "СлужебныеПроцедурыИФункции"), //$NON-NLS-1$ //$NON-NLS-2$
VARIABLES("Variables", "ОписаниеПеременных"), //$NON-NLS-1$ //$NON-NLS-2$ VARIABLES("Variables", "ОписаниеПеременных"), //$NON-NLS-1$ //$NON-NLS-2$
INITIALIZE("Initialize", "Инициализация"), //$NON-NLS-1$ //$NON-NLS-2$ PUBLIC("Public", "ПрограммныйИнтерфейс"), //$NON-NLS-1$ //$NON-NLS-2$
EVENT_HANDLERS("EventHandlers", "ОбработчикиСобытий"), //$NON-NLS-1$ //$NON-NLS-2$ EVENT_HANDLERS("EventHandlers", "ОбработчикиСобытий"), //$NON-NLS-1$ //$NON-NLS-2$
INTERNAL("Internal", "СлужебныйПрограммныйИнтерфейс"), //$NON-NLS-1$ //$NON-NLS-2$
FORM_EVENT_HANDLERS("FormEventHandlers", "ОбработчикиСобытийФормы"), //$NON-NLS-1$ //$NON-NLS-2$ FORM_EVENT_HANDLERS("FormEventHandlers", "ОбработчикиСобытийФормы"), //$NON-NLS-1$ //$NON-NLS-2$
FORM_HEADER_ITEMS_EVENT_HANDLERS("FormHeaderItemsEventHandlers", "ОбработчикиСобытийЭлементовШапкиФормы"), //$NON-NLS-1$ //$NON-NLS-2$ FORM_HEADER_ITEMS_EVENT_HANDLERS("FormHeaderItemsEventHandlers", "ОбработчикиСобытийЭлементовШапкиФормы"), //$NON-NLS-1$ //$NON-NLS-2$
FORM_TABLE_ITEMS_EVENT_HANDLERS("FormTableItemsEventHandlers", "ОбработчикиСобытийЭлементовТаблицыФормы", true), //$NON-NLS-1$ //$NON-NLS-2$
FORM_COMMAND_EVENT_HANDLERS("FormCommandsEventHandlers", "ОбработчикиКомандФормы"), //$NON-NLS-1$ //$NON-NLS-2$ FORM_COMMAND_EVENT_HANDLERS("FormCommandsEventHandlers", "ОбработчикиКомандФормы"), //$NON-NLS-1$ //$NON-NLS-2$
FORM_TABLE_ITEMS_EVENT_HANDLERS("FormTableItemsEventHandlers", "ОбработчикиСобытийЭлементовТаблицыФормы"), //$NON-NLS-1$ //$NON-NLS-2$ PRIVATE("Private", "СлужебныеПроцедурыИФункции"), //$NON-NLS-1$ //$NON-NLS-2$
INITIALIZE("Initialize", "Инициализация"), //$NON-NLS-1$ //$NON-NLS-2$
DEPRECATED_REGION("Deprecated", "УстаревшиеПроцедурыИФункции"); //$NON-NLS-1$ //$NON-NLS-2$ DEPRECATED_REGION("Deprecated", "УстаревшиеПроцедурыИФункции"); //$NON-NLS-1$ //$NON-NLS-2$
private final String[] names; private final String[] names;
private final boolean isSuffixed;
ModuleStructureSection(String name, String nameRu, boolean isSuffixed)
{
this.names = new String[] { name, nameRu };
this.isSuffixed = isSuffixed;
}
ModuleStructureSection(String name, String nameRu) ModuleStructureSection(String name, String nameRu)
{ {
this.names = new String[] { name, nameRu }; this(name, nameRu, false);
} }
/** /**
@ -61,4 +69,13 @@ public enum ModuleStructureSection
return names[scriptVariant.getValue()]; return names[scriptVariant.getValue()];
} }
/**
* Is module region name used only with suffix
*
* @return <code>true</code> if region name must be suffixed, <code>false</code> otherwise
*/
public boolean isSuffixed()
{
return isSuffixed;
}
} }

View File

@ -52,8 +52,6 @@ import com.e1c.g5.v8.dt.check.components.BasicCheck;
import com.e1c.g5.v8.dt.check.settings.IssueSeverity; import com.e1c.g5.v8.dt.check.settings.IssueSeverity;
import com.e1c.g5.v8.dt.check.settings.IssueType; import com.e1c.g5.v8.dt.check.settings.IssueType;
import com.e1c.v8codestyle.bsl.IAsyncInvocationProvider; import com.e1c.v8codestyle.bsl.IAsyncInvocationProvider;
import com.e1c.v8codestyle.check.CommonSenseCheckExtension;
import com.e1c.v8codestyle.internal.bsl.BslPlugin;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.inject.Inject; import com.google.inject.Inject;
@ -101,7 +99,7 @@ public final class CodeAfterAsyncCallCheck
.complexity(CheckComplexity.NORMAL) .complexity(CheckComplexity.NORMAL)
.severity(IssueSeverity.MAJOR) .severity(IssueSeverity.MAJOR)
.issueType(IssueType.WARNING) .issueType(IssueType.WARNING)
.extension(new CommonSenseCheckExtension(getCheckId(), BslPlugin.PLUGIN_ID)) .disable()
.module() .module()
.checkedObjectType(INVOCATION) .checkedObjectType(INVOCATION)
.parameter(PARAMETER_NAME, Boolean.class, DEFAULT_CHECK, Messages.CodeAfterAsyncCallCheck_Parameter); .parameter(PARAMETER_NAME, Boolean.class, DEFAULT_CHECK, Messages.CodeAfterAsyncCallCheck_Parameter);

View File

@ -86,7 +86,7 @@ public class ExportProcedureMissingCommentCheck
private static boolean verifyTopRegion(Optional<RegionPreprocessor> regionTop) private static boolean verifyTopRegion(Optional<RegionPreprocessor> regionTop)
{ {
if (regionTop.isEmpty()) if (regionTop.isEmpty() || regionTop.get().getName() == null)
{ {
return false; return false;
} }

View File

@ -275,6 +275,10 @@ public class ModuleStructureTopRegionCheck
for (RegionPreprocessor region : allRegions) for (RegionPreprocessor region : allRegions)
{ {
String regionName = region.getName(); String regionName = region.getName();
if (StringUtils.isBlank(regionName))
{
continue;
}
countRegions.putIfAbsent(regionName, new ArrayList<>()); countRegions.putIfAbsent(regionName, new ArrayList<>());
countRegions.get(regionName).add(region); countRegions.get(regionName).add(region);
if (getFirstParentRegion(region).isEmpty()) if (getFirstParentRegion(region).isEmpty())
@ -288,7 +292,7 @@ public class ModuleStructureTopRegionCheck
{ {
for (String name : regionNames) for (String name : regionNames)
{ {
if (regionName.equalsIgnoreCase(name)) if (regionName == null || regionName.equalsIgnoreCase(name))
{ {
return true; return true;
} }

View File

@ -33,6 +33,8 @@ import com._1c.g5.v8.dt.bsl.resource.TypesComputer;
import com._1c.g5.v8.dt.common.StringUtils; import com._1c.g5.v8.dt.common.StringUtils;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8Project;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com._1c.g5.v8.dt.mcore.Method; import com._1c.g5.v8.dt.mcore.Method;
import com._1c.g5.v8.dt.mcore.Parameter; import com._1c.g5.v8.dt.mcore.Parameter;
import com._1c.g5.v8.dt.mcore.Property; import com._1c.g5.v8.dt.mcore.Property;
@ -52,14 +54,15 @@ public abstract class AbstractDocCommentTypeCheck
/** /**
* Constructs an instance * Constructs an instance
* *
* @param resourceLookup * @param resourceLookup service for look up workspace resources, see {@link IResourceLookup}, cannot be <code>null</code>
* @param namingService * @param namingService service for getting names of EDT object and resources, cannot be <code>null</code>
* @param bmModelManager * @param bmModelManager service for getting instance of Bm Model by {@link EObject}, cannot be <code>null</code>
* @param v8ProjectManager {@link IV8ProjectManager} for getting {@link IV8Project} by {@link EObject}, cannot be <code>null</code>
*/ */
protected AbstractDocCommentTypeCheck(IResourceLookup resourceLookup, INamingService namingService, protected AbstractDocCommentTypeCheck(IResourceLookup resourceLookup, INamingService namingService,
IBmModelManager bmModelManager) IBmModelManager bmModelManager, IV8ProjectManager v8ProjectManager)
{ {
super(resourceLookup, namingService, bmModelManager); super(resourceLookup, namingService, bmModelManager, v8ProjectManager);
} }
/** /**
@ -172,12 +175,12 @@ public abstract class AbstractDocCommentTypeCheck
|| (linkPart.getPartsWithOffset().get(linkPart.getPartsWithOffset().size() - 1)).getFirst().isEmpty())) || (linkPart.getPartsWithOffset().get(linkPart.getPartsWithOffset().size() - 1)).getFirst().isEmpty()))
{ {
return Optional.ofNullable(linkPart.getActualObjectForPart(linkPart.getPartsWithOffset().size() - 2, return Optional.ofNullable(linkPart.getActualObjectForPart(linkPart.getPartsWithOffset().size() - 2,
scopeProvider, context, typeComputationContext)); scopeProvider, context, v8ProjectManager, typeComputationContext));
} }
else else
{ {
return Optional.ofNullable(linkPart.getActualObjectForPart(linkPart.getPartsWithOffset().size() - 1, return Optional.ofNullable(linkPart.getActualObjectForPart(linkPart.getPartsWithOffset().size() - 1,
scopeProvider, context, typeComputationContext)); scopeProvider, context, v8ProjectManager, typeComputationContext));
} }
} }

View File

@ -17,6 +17,7 @@ import java.util.Set;
import java.util.TreeSet; import java.util.TreeSet;
import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.ecore.EObject;
import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment; import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment;
import com._1c.g5.v8.dt.bsl.documentation.comment.IDescriptionPart; import com._1c.g5.v8.dt.bsl.documentation.comment.IDescriptionPart;
@ -25,6 +26,8 @@ import com._1c.g5.v8.dt.bsl.documentation.comment.TypeSection.TypeDefinition;
import com._1c.g5.v8.dt.common.StringUtils; import com._1c.g5.v8.dt.common.StringUtils;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8Project;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com._1c.g5.v8.dt.platform.IEObjectTypeNames; import com._1c.g5.v8.dt.platform.IEObjectTypeNames;
import com.e1c.g5.dt.core.api.naming.INamingService; import com.e1c.g5.dt.core.api.naming.INamingService;
import com.e1c.g5.dt.core.api.platform.BmOperationContext; import com.e1c.g5.dt.core.api.platform.BmOperationContext;
@ -65,15 +68,16 @@ public class CollectionTypeDefinitionCheck
/** /**
* Constructs an instance * Constructs an instance
* *
* @param resourceLookup * @param resourceLookup service for look up workspace resources, see {@link IResourceLookup}, cannot be <code>null</code>
* @param namingService * @param namingService service for getting names of EDT object and resources, cannot be <code>null</code>
* @param bmModelManager * @param bmModelManager service for getting instance of Bm Model by {@link EObject}, cannot be <code>null</code>
* @param v8ProjectManager {@link IV8ProjectManager} for getting {@link IV8Project} by {@link EObject}, cannot be <code>null</code>
*/ */
@Inject @Inject
public CollectionTypeDefinitionCheck(IResourceLookup resourceLookup, INamingService namingService, public CollectionTypeDefinitionCheck(IResourceLookup resourceLookup, INamingService namingService,
IBmModelManager bmModelManager) IBmModelManager bmModelManager, IV8ProjectManager v8ProjectManager)
{ {
super(resourceLookup, namingService, bmModelManager); super(resourceLookup, namingService, bmModelManager, v8ProjectManager);
} }
@Override @Override

View File

@ -17,6 +17,7 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.ecore.EObject;
import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment; import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment;
import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment.Description; import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment.Description;
@ -24,6 +25,8 @@ import com._1c.g5.v8.dt.bsl.documentation.comment.IDescriptionPart;
import com._1c.g5.v8.dt.bsl.documentation.comment.TextPart; import com._1c.g5.v8.dt.bsl.documentation.comment.TextPart;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8Project;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com.e1c.g5.dt.core.api.naming.INamingService; import com.e1c.g5.dt.core.api.naming.INamingService;
import com.e1c.g5.dt.core.api.platform.BmOperationContext; import com.e1c.g5.dt.core.api.platform.BmOperationContext;
import com.e1c.g5.v8.dt.bsl.check.DocumentationCommentBasicDelegateCheck; import com.e1c.g5.v8.dt.bsl.check.DocumentationCommentBasicDelegateCheck;
@ -65,11 +68,19 @@ public class DocCommentUseMinusCheck
private static final int SHOW_PREV_SYMBOLS = 7; private static final int SHOW_PREV_SYMBOLS = 7;
/**
* Constructs an instance
*
* @param resourceLookup service for look up workspace resources, see {@link IResourceLookup}, cannot be <code>null</code>
* @param namingService service for getting names of EDT object and resources, cannot be <code>null</code>
* @param bmModelManager service for getting instance of Bm Model by {@link EObject}, cannot be <code>null</code>
* @param v8ProjectManager {@link IV8ProjectManager} for getting {@link IV8Project} by {@link EObject}, cannot be <code>null</code>
*/
@Inject @Inject
public DocCommentUseMinusCheck(IResourceLookup resourceLookup, INamingService namingService, public DocCommentUseMinusCheck(IResourceLookup resourceLookup, INamingService namingService,
IBmModelManager bmModelManager) IBmModelManager bmModelManager, IV8ProjectManager v8ProjectManager)
{ {
super(resourceLookup, namingService, bmModelManager); super(resourceLookup, namingService, bmModelManager, v8ProjectManager);
} }
@Override @Override

View File

@ -16,6 +16,7 @@ import static com._1c.g5.v8.dt.mcore.McorePackage.Literals.NAMED_ELEMENT__NAME;
import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.scoping.IScopeProvider; import org.eclipse.xtext.scoping.IScopeProvider;
import com._1c.g5.v8.dt.bsl.comment.DocumentationCommentProperties; import com._1c.g5.v8.dt.bsl.comment.DocumentationCommentProperties;
@ -28,6 +29,8 @@ import com._1c.g5.v8.dt.bsl.documentation.comment.LinkPart;
import com._1c.g5.v8.dt.bsl.model.Function; import com._1c.g5.v8.dt.bsl.model.Function;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8Project;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com.e1c.g5.dt.core.api.naming.INamingService; import com.e1c.g5.dt.core.api.naming.INamingService;
import com.e1c.g5.dt.core.api.platform.BmOperationContext; import com.e1c.g5.dt.core.api.platform.BmOperationContext;
import com.e1c.g5.v8.dt.check.CheckComplexity; import com.e1c.g5.v8.dt.check.CheckComplexity;
@ -61,19 +64,20 @@ public class ExportFunctionReturnSectionCheck
/** /**
* Instantiates a new check of export function return section. * Instantiates a new check of export function return section.
* *
* @param resourceLookup the resource lookup service, cannot be {@code null}. * @param resourceLookup service for look up workspace resources, see {@link IResourceLookup}, cannot be <code>null</code>
* @param namingService * @param namingService service for getting names of EDT object and resources, cannot be <code>null</code>
* @param bmModelManager * @param bmModelManager service for getting instance of Bm Model by {@link EObject}, cannot be <code>null</code>
* @param v8ProjectManager {@link IV8ProjectManager} for getting {@link IV8Project} by {@link EObject}, cannot be <code>null</code>
* @param bslPreferences the BSL preferences service, cannot be {@code null}. * @param bslPreferences the BSL preferences service, cannot be {@code null}.
* @param commentProvider the comment provider service, cannot be {@code null}. * @param commentProvider the comment provider service, cannot be {@code null}.
* @param scopeProvider the scope provider service, cannot be {@code null}. * @param scopeProvider the scope provider service, cannot be {@code null}.
*/ */
@Inject @Inject
public ExportFunctionReturnSectionCheck(IResourceLookup resourceLookup, INamingService namingService, public ExportFunctionReturnSectionCheck(IResourceLookup resourceLookup, INamingService namingService,
IBmModelManager bmModelManager, IBslPreferences bslPreferences, IBmModelManager bmModelManager, IV8ProjectManager v8ProjectManager, IBslPreferences bslPreferences,
BslMultiLineCommentDocumentationProvider commentProvider, IScopeProvider scopeProvider) BslMultiLineCommentDocumentationProvider commentProvider, IScopeProvider scopeProvider)
{ {
super(resourceLookup, namingService, bmModelManager); super(resourceLookup, namingService, bmModelManager, v8ProjectManager);
this.resourceLookup = resourceLookup; this.resourceLookup = resourceLookup;
this.bslPreferences = bslPreferences; this.bslPreferences = bslPreferences;
this.commentProvider = commentProvider; this.commentProvider = commentProvider;
@ -117,7 +121,7 @@ public class ExportFunctionReturnSectionCheck
DocumentationCommentProperties props = bslPreferences.getDocumentCommentProperties(project); DocumentationCommentProperties props = bslPreferences.getDocumentCommentProperties(project);
docComment = BslCommentUtils.getLinkPartCommentContent(linkPart, scopeProvider, commentProvider, docComment = BslCommentUtils.getLinkPartCommentContent(linkPart, scopeProvider, commentProvider,
props.oldCommentFormat(), root.getMethod(), typeComputationContext); props.oldCommentFormat(), root.getMethod(), v8ProjectManager, typeComputationContext);
} }
if (docComment == null || docComment.getReturnSection() == null || isTypeEmptyAndNoLink( if (docComment == null || docComment.getReturnSection() == null || isTypeEmptyAndNoLink(

View File

@ -26,6 +26,8 @@ import com._1c.g5.v8.dt.bsl.model.PreprocessorItem;
import com._1c.g5.v8.dt.bsl.model.RegionPreprocessor; import com._1c.g5.v8.dt.bsl.model.RegionPreprocessor;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8Project;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com.e1c.g5.dt.core.api.naming.INamingService; import com.e1c.g5.dt.core.api.naming.INamingService;
import com.e1c.g5.dt.core.api.platform.BmOperationContext; import com.e1c.g5.dt.core.api.platform.BmOperationContext;
import com.e1c.g5.v8.dt.check.CheckComplexity; import com.e1c.g5.v8.dt.check.CheckComplexity;
@ -47,11 +49,19 @@ public class ExportProcedureCommentDescriptionCheck
{ {
private static final String CHECK_ID = "doc-comment-export-procedure-description-section"; //$NON-NLS-1$ private static final String CHECK_ID = "doc-comment-export-procedure-description-section"; //$NON-NLS-1$
/**
* Constructs an instance
*
* @param resourceLookup service for look up workspace resources, see {@link IResourceLookup}, cannot be <code>null</code>
* @param namingService service for getting names of EDT object and resources, cannot be <code>null</code>
* @param bmModelManager service for getting instance of Bm Model by {@link EObject}, cannot be <code>null</code>
* @param v8ProjectManager {@link IV8ProjectManager} for getting {@link IV8Project} by {@link EObject}, cannot be <code>null</code>
*/
@Inject @Inject
public ExportProcedureCommentDescriptionCheck(IResourceLookup resourceLookup, INamingService namingService, public ExportProcedureCommentDescriptionCheck(IResourceLookup resourceLookup, INamingService namingService,
IBmModelManager bmModelManager) IBmModelManager bmModelManager, IV8ProjectManager v8ProjectManager)
{ {
super(resourceLookup, namingService, bmModelManager); super(resourceLookup, namingService, bmModelManager, v8ProjectManager);
} }
@Override @Override

View File

@ -16,6 +16,7 @@ import java.text.MessageFormat;
import java.util.List; import java.util.List;
import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.ecore.EObject;
import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment; import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment;
import com._1c.g5.v8.dt.bsl.documentation.comment.IDescriptionPart; import com._1c.g5.v8.dt.bsl.documentation.comment.IDescriptionPart;
@ -24,6 +25,8 @@ import com._1c.g5.v8.dt.bsl.documentation.comment.TypeSection.TypeDefinition;
import com._1c.g5.v8.dt.common.StringUtils; import com._1c.g5.v8.dt.common.StringUtils;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8Project;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com.e1c.g5.dt.core.api.naming.INamingService; import com.e1c.g5.dt.core.api.naming.INamingService;
import com.e1c.g5.dt.core.api.platform.BmOperationContext; import com.e1c.g5.dt.core.api.platform.BmOperationContext;
import com.e1c.g5.v8.dt.bsl.check.DocumentationCommentBasicDelegateCheck; import com.e1c.g5.v8.dt.bsl.check.DocumentationCommentBasicDelegateCheck;
@ -47,11 +50,19 @@ public class FieldDefinitionNameCheck
{ {
private static final String CHECK_ID = "doc-comment-field-name"; //$NON-NLS-1$ private static final String CHECK_ID = "doc-comment-field-name"; //$NON-NLS-1$
/**
* Constructs an instance
*
* @param resourceLookup service for look up workspace resources, see {@link IResourceLookup}, cannot be <code>null</code>
* @param namingService service for getting names of EDT object and resources, cannot be <code>null</code>
* @param bmModelManager service for getting instance of Bm Model by {@link EObject}, cannot be <code>null</code>
* @param v8ProjectManager {@link IV8ProjectManager} for getting {@link IV8Project} by {@link EObject}, cannot be <code>null</code>
*/
@Inject @Inject
public FieldDefinitionNameCheck(IResourceLookup resourceLookup, INamingService namingService, public FieldDefinitionNameCheck(IResourceLookup resourceLookup, INamingService namingService,
IBmModelManager bmModelManager) IBmModelManager bmModelManager, IV8ProjectManager v8ProjectManager)
{ {
super(resourceLookup, namingService, bmModelManager); super(resourceLookup, namingService, bmModelManager, v8ProjectManager);
} }
@Override @Override

View File

@ -15,12 +15,15 @@ package com.e1c.v8codestyle.bsl.comment.check;
import java.text.MessageFormat; import java.text.MessageFormat;
import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.ecore.EObject;
import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment; import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment;
import com._1c.g5.v8.dt.bsl.documentation.comment.IDescriptionPart; import com._1c.g5.v8.dt.bsl.documentation.comment.IDescriptionPart;
import com._1c.g5.v8.dt.bsl.documentation.comment.TypeSection.FieldDefinition; import com._1c.g5.v8.dt.bsl.documentation.comment.TypeSection.FieldDefinition;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8Project;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com.e1c.g5.dt.core.api.naming.INamingService; import com.e1c.g5.dt.core.api.naming.INamingService;
import com.e1c.g5.dt.core.api.platform.BmOperationContext; import com.e1c.g5.dt.core.api.platform.BmOperationContext;
import com.e1c.g5.v8.dt.check.CheckComplexity; import com.e1c.g5.v8.dt.check.CheckComplexity;
@ -41,11 +44,19 @@ public class FieldDefinitionTypeCheck
{ {
private static final String CHECK_ID = "doc-comment-field-type"; //$NON-NLS-1$ private static final String CHECK_ID = "doc-comment-field-type"; //$NON-NLS-1$
/**
* Constructs an instance
*
* @param resourceLookup service for look up workspace resources, see {@link IResourceLookup}, cannot be <code>null</code>
* @param namingService service for getting names of EDT object and resources, cannot be <code>null</code>
* @param bmModelManager service for getting instance of Bm Model by {@link EObject}, cannot be <code>null</code>
* @param v8ProjectManager {@link IV8ProjectManager} for getting {@link IV8Project} by {@link EObject}, cannot be <code>null</code>
*/
@Inject @Inject
public FieldDefinitionTypeCheck(IResourceLookup resourceLookup, INamingService namingService, public FieldDefinitionTypeCheck(IResourceLookup resourceLookup, INamingService namingService,
IBmModelManager bmModelManager) IBmModelManager bmModelManager, IV8ProjectManager v8ProjectManager)
{ {
super(resourceLookup, namingService, bmModelManager); super(resourceLookup, namingService, bmModelManager, v8ProjectManager);
} }
@Override @Override

View File

@ -30,6 +30,8 @@ import com._1c.g5.v8.dt.bsl.documentation.comment.TypeSection.TypeDefinition;
import com._1c.g5.v8.dt.common.StringUtils; import com._1c.g5.v8.dt.common.StringUtils;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8Project;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com._1c.g5.v8.dt.platform.IEObjectTypeNames; import com._1c.g5.v8.dt.platform.IEObjectTypeNames;
import com.e1c.g5.dt.core.api.naming.INamingService; import com.e1c.g5.dt.core.api.naming.INamingService;
import com.e1c.g5.dt.core.api.platform.BmOperationContext; import com.e1c.g5.dt.core.api.platform.BmOperationContext;
@ -81,13 +83,17 @@ public class FieldDefinitionTypeWithLinkRefCheck
/** /**
* Instantiates a new field definition type with link reference to constructor function check. * Instantiates a new field definition type with link reference to constructor function check.
* *
* @param resourceLookup service for look up workspace resources, see {@link IResourceLookup}, cannot be <code>null</code>
* @param namingService service for getting names of EDT object and resources, cannot be <code>null</code>
* @param bmModelManager service for getting instance of Bm Model by {@link EObject}, cannot be <code>null</code>
* @param v8ProjectManager {@link IV8ProjectManager} for getting {@link IV8Project} by {@link EObject}, cannot be <code>null</code>
* @param scopeProvider the scope provider service, cannot be {@code null}. * @param scopeProvider the scope provider service, cannot be {@code null}.
*/ */
@Inject @Inject
public FieldDefinitionTypeWithLinkRefCheck(IResourceLookup resourceLookup, INamingService namingService, public FieldDefinitionTypeWithLinkRefCheck(IResourceLookup resourceLookup, INamingService namingService,
IBmModelManager bmModelManager, IScopeProvider scopeProvider) IBmModelManager bmModelManager, IV8ProjectManager v8ProjectManager, IScopeProvider scopeProvider)
{ {
super(resourceLookup, namingService, bmModelManager); super(resourceLookup, namingService, bmModelManager, v8ProjectManager);
this.scopeProvider = scopeProvider; this.scopeProvider = scopeProvider;
} }

View File

@ -18,6 +18,7 @@ import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.naming.IQualifiedNameConverter; import org.eclipse.xtext.naming.IQualifiedNameConverter;
import org.eclipse.xtext.naming.QualifiedName;
import org.eclipse.xtext.scoping.IScope; import org.eclipse.xtext.scoping.IScope;
import org.eclipse.xtext.scoping.IScopeProvider; import org.eclipse.xtext.scoping.IScopeProvider;
@ -30,6 +31,8 @@ import com._1c.g5.v8.dt.bsl.model.Function;
import com._1c.g5.v8.dt.bsl.model.Method; import com._1c.g5.v8.dt.bsl.model.Method;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8Project;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com._1c.g5.v8.dt.mcore.McorePackage; import com._1c.g5.v8.dt.mcore.McorePackage;
import com._1c.g5.v8.dt.mcore.TypeItem; import com._1c.g5.v8.dt.mcore.TypeItem;
import com.e1c.g5.dt.core.api.naming.INamingService; import com.e1c.g5.dt.core.api.naming.INamingService;
@ -64,12 +67,25 @@ public class FunctionReturnSectionCheck
private final IQualifiedNameConverter qualifiedNameConverter; private final IQualifiedNameConverter qualifiedNameConverter;
/**
* Constructs an instance
*
* @param resourceLookup service for look up workspace resources, see {@link IResourceLookup}, cannot be <code>null</code>
* @param namingService service for getting names of EDT object and resources, cannot be <code>null</code>
* @param bmModelManager service for getting instance of Bm Model by {@link EObject}, cannot be <code>null</code>
* @param v8ProjectManager {@link IV8ProjectManager} for getting {@link IV8Project} by {@link EObject}, cannot be <code>null</code>
* @param bslPreferences service for getting preferences for Built-In language, cannot be <code>null</code>
* @param qualifiedNameConverter service for getting {@link QualifiedName} by {@link EObject}, cannot be <code>null</code>
* @param scopeProvider service for getting {@link IScope} for Built-In language, cannot be <code>null</code>
* @param commentProvider service for getting comments content in Built-In language, cannot be <code>null</code>
*/
@Inject @Inject
public FunctionReturnSectionCheck(IResourceLookup resourceLookup, INamingService namingService, public FunctionReturnSectionCheck(IResourceLookup resourceLookup, INamingService namingService,
IBmModelManager bmModelManager, IBslPreferences bslPreferences, IQualifiedNameConverter qualifiedNameConverter, IBmModelManager bmModelManager, IV8ProjectManager v8ProjectManager, IBslPreferences bslPreferences,
IScopeProvider scopeProvider, BslMultiLineCommentDocumentationProvider commentProvider) IQualifiedNameConverter qualifiedNameConverter, IScopeProvider scopeProvider,
BslMultiLineCommentDocumentationProvider commentProvider)
{ {
super(resourceLookup, namingService, bmModelManager); super(resourceLookup, namingService, bmModelManager, v8ProjectManager);
this.resourceLookup = resourceLookup; this.resourceLookup = resourceLookup;
this.bslPreferences = bslPreferences; this.bslPreferences = bslPreferences;
this.qualifiedNameConverter = qualifiedNameConverter; this.qualifiedNameConverter = qualifiedNameConverter;
@ -119,7 +135,7 @@ public class FunctionReturnSectionCheck
IScope typeScope = scopeProvider.getScope(method, McorePackage.Literals.TYPE_DESCRIPTION__TYPES); IScope typeScope = scopeProvider.getScope(method, McorePackage.Literals.TYPE_DESCRIPTION__TYPES);
Collection<TypeItem> computedReturnTypes = Collection<TypeItem> computedReturnTypes =
root.computeReturnTypes(typeScope, scopeProvider, qualifiedNameConverter, commentProvider, root.computeReturnTypes(typeScope, scopeProvider, qualifiedNameConverter, commentProvider, v8ProjectManager,
oldCommentFormat(root.getModule()), method, typeComputationContext); oldCommentFormat(root.getModule()), method, typeComputationContext);
if (computedReturnTypes.isEmpty()) if (computedReturnTypes.isEmpty())

View File

@ -13,6 +13,7 @@
package com.e1c.v8codestyle.bsl.comment.check; package com.e1c.v8codestyle.bsl.comment.check;
import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.ecore.EObject;
import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment; import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment;
import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment.Description; import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment.Description;
@ -20,6 +21,8 @@ import com._1c.g5.v8.dt.bsl.documentation.comment.IDescriptionPart;
import com._1c.g5.v8.dt.bsl.documentation.comment.TextPart; import com._1c.g5.v8.dt.bsl.documentation.comment.TextPart;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8Project;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com.e1c.g5.dt.core.api.naming.INamingService; import com.e1c.g5.dt.core.api.naming.INamingService;
import com.e1c.g5.dt.core.api.platform.BmOperationContext; import com.e1c.g5.dt.core.api.platform.BmOperationContext;
import com.e1c.g5.v8.dt.bsl.check.DocumentationCommentBasicDelegateCheck; import com.e1c.g5.v8.dt.bsl.check.DocumentationCommentBasicDelegateCheck;
@ -40,11 +43,19 @@ public class MultilineDescriptionEndsOnDotCheck
private static final String CHECK_ID = "doc-comment-description-ends-on-dot"; //$NON-NLS-1$ private static final String CHECK_ID = "doc-comment-description-ends-on-dot"; //$NON-NLS-1$
/**
* Constructs an instance
*
* @param resourceLookup service for look up workspace resources, see {@link IResourceLookup}, cannot be <code>null</code>
* @param namingService service for getting names of EDT object and resources, cannot be <code>null</code>
* @param bmModelManager service for getting instance of Bm Model by {@link EObject}, cannot be <code>null</code>
* @param v8ProjectManager {@link IV8ProjectManager} for getting {@link IV8Project} by {@link EObject}, cannot be <code>null</code>
*/
@Inject @Inject
public MultilineDescriptionEndsOnDotCheck(IResourceLookup resourceLookup, INamingService namingService, public MultilineDescriptionEndsOnDotCheck(IResourceLookup resourceLookup, INamingService namingService,
IBmModelManager bmModelManager) IBmModelManager bmModelManager, IV8ProjectManager v8ProjectManager)
{ {
super(resourceLookup, namingService, bmModelManager); super(resourceLookup, namingService, bmModelManager, v8ProjectManager);
} }
@Override @Override

View File

@ -16,6 +16,7 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.ecore.EObject;
import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment; import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment;
import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment.Description; import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment.Description;
@ -24,6 +25,8 @@ import com._1c.g5.v8.dt.bsl.documentation.comment.TextPart;
import com._1c.g5.v8.dt.bsl.model.Procedure; import com._1c.g5.v8.dt.bsl.model.Procedure;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8Project;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com.e1c.g5.dt.core.api.naming.INamingService; import com.e1c.g5.dt.core.api.naming.INamingService;
import com.e1c.g5.dt.core.api.platform.BmOperationContext; import com.e1c.g5.dt.core.api.platform.BmOperationContext;
import com.e1c.g5.v8.dt.bsl.check.DocumentationCommentBasicDelegateCheck; import com.e1c.g5.v8.dt.bsl.check.DocumentationCommentBasicDelegateCheck;
@ -57,11 +60,19 @@ public class MultilineDescriptionFieldSuggestionCheck
private static final Pattern PATTERN_FIELD = private static final Pattern PATTERN_FIELD =
Pattern.compile("^\\s*\\*+\\s*\\w+\\s*-", Pattern.UNICODE_CHARACTER_CLASS | Pattern.CASE_INSENSITIVE); //$NON-NLS-1$ Pattern.compile("^\\s*\\*+\\s*\\w+\\s*-", Pattern.UNICODE_CHARACTER_CLASS | Pattern.CASE_INSENSITIVE); //$NON-NLS-1$
/**
* Constructs an instance
*
* @param resourceLookup service for look up workspace resources, see {@link IResourceLookup}, cannot be <code>null</code>
* @param namingService service for getting names of EDT object and resources, cannot be <code>null</code>
* @param bmModelManager service for getting instance of Bm Model by {@link EObject}, cannot be <code>null</code>
* @param v8ProjectManager {@link IV8ProjectManager} for getting {@link IV8Project} by {@link EObject}, cannot be <code>null</code>
*/
@Inject @Inject
public MultilineDescriptionFieldSuggestionCheck(IResourceLookup resourceLookup, INamingService namingService, public MultilineDescriptionFieldSuggestionCheck(IResourceLookup resourceLookup, INamingService namingService,
IBmModelManager bmModelManager) IBmModelManager bmModelManager, IV8ProjectManager v8ProjectManager)
{ {
super(resourceLookup, namingService, bmModelManager); super(resourceLookup, namingService, bmModelManager, v8ProjectManager);
} }
@Override @Override

View File

@ -18,6 +18,7 @@ import java.util.regex.Pattern;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.ecore.EObject;
import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment; import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment;
import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment.Description; import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment.Description;
@ -27,6 +28,8 @@ import com._1c.g5.v8.dt.bsl.model.FormalParam;
import com._1c.g5.v8.dt.common.StringUtils; import com._1c.g5.v8.dt.common.StringUtils;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8Project;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com.e1c.g5.dt.core.api.naming.INamingService; import com.e1c.g5.dt.core.api.naming.INamingService;
import com.e1c.g5.dt.core.api.platform.BmOperationContext; import com.e1c.g5.dt.core.api.platform.BmOperationContext;
import com.e1c.g5.v8.dt.bsl.check.DocumentationCommentBasicDelegateCheck; import com.e1c.g5.v8.dt.bsl.check.DocumentationCommentBasicDelegateCheck;
@ -54,11 +57,19 @@ public class MultilineDescriptionParameterSuggestionCheck
private static final String CHECK_ID = "doc-comment-parameter-in-description-suggestion"; //$NON-NLS-1$ private static final String CHECK_ID = "doc-comment-parameter-in-description-suggestion"; //$NON-NLS-1$
/**
* Constructs an instance
*
* @param resourceLookup service for look up workspace resources, see {@link IResourceLookup}, cannot be <code>null</code>
* @param namingService service for getting names of EDT object and resources, cannot be <code>null</code>
* @param bmModelManager service for getting instance of Bm Model by {@link EObject}, cannot be <code>null</code>
* @param v8ProjectManager {@link IV8ProjectManager} for getting {@link IV8Project} by {@link EObject}, cannot be <code>null</code>
*/
@Inject @Inject
public MultilineDescriptionParameterSuggestionCheck(IResourceLookup resourceLookup, INamingService namingService, public MultilineDescriptionParameterSuggestionCheck(IResourceLookup resourceLookup, INamingService namingService,
IBmModelManager bmModelManager) IBmModelManager bmModelManager, IV8ProjectManager v8ProjectManager)
{ {
super(resourceLookup, namingService, bmModelManager); super(resourceLookup, namingService, bmModelManager, v8ProjectManager);
} }
@Override @Override

View File

@ -20,6 +20,9 @@ import java.util.TreeSet;
import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.naming.QualifiedName;
import org.eclipse.xtext.scoping.IScope;
import org.eclipse.xtext.scoping.IScopeProvider; import org.eclipse.xtext.scoping.IScopeProvider;
import com._1c.g5.v8.dt.bsl.comment.DocumentationCommentProperties; import com._1c.g5.v8.dt.bsl.comment.DocumentationCommentProperties;
@ -36,6 +39,8 @@ import com._1c.g5.v8.dt.bsl.model.Method;
import com._1c.g5.v8.dt.common.StringUtils; import com._1c.g5.v8.dt.common.StringUtils;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8Project;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com.e1c.g5.dt.core.api.naming.INamingService; import com.e1c.g5.dt.core.api.naming.INamingService;
import com.e1c.g5.dt.core.api.platform.BmOperationContext; import com.e1c.g5.dt.core.api.platform.BmOperationContext;
import com.e1c.g5.v8.dt.check.CheckComplexity; import com.e1c.g5.v8.dt.check.CheckComplexity;
@ -63,21 +68,30 @@ public class ParametersSectionCheck
private static final String PARAMETER_PARMA_SECT_FOR_EXPORT = "requireParameterSectionOnlyForExport"; //$NON-NLS-1$ private static final String PARAMETER_PARMA_SECT_FOR_EXPORT = "requireParameterSectionOnlyForExport"; //$NON-NLS-1$
private final IResourceLookup resourceLookup;
private final IBslPreferences bslPreferences; private final IBslPreferences bslPreferences;
private final IScopeProvider scopeProvider; private final IScopeProvider scopeProvider;
private final BslMultiLineCommentDocumentationProvider commentProvider; private final BslMultiLineCommentDocumentationProvider commentProvider;
/**
* Constructs an instance
*
* @param resourceLookup service for look up workspace resources, see {@link IResourceLookup}, cannot be <code>null</code>
* @param namingService service for getting names of EDT object and resources, cannot be <code>null</code>
* @param bmModelManager service for getting instance of Bm Model by {@link EObject}, cannot be <code>null</code>
* @param v8ProjectManager {@link IV8ProjectManager} for getting {@link IV8Project} by {@link EObject}, cannot be <code>null</code>
* @param bslPreferences service for getting preferences for Built-In language, cannot be <code>null</code>
* @param qualifiedNameConverter service for getting {@link QualifiedName} by {@link EObject}, cannot be <code>null</code>
* @param scopeProvider service for getting {@link IScope} for Built-In language, cannot be <code>null</code>
* @param commentProvider service for getting comments content in Built-In language, cannot be <code>null</code>
*/
@Inject @Inject
public ParametersSectionCheck(IResourceLookup resourceLookup, INamingService namingService, public ParametersSectionCheck(IResourceLookup resourceLookup, INamingService namingService,
IBmModelManager bmModelManager, IBslPreferences bslPreferences, IScopeProvider scopeProvider, IBmModelManager bmModelManager, IV8ProjectManager v8ProjectManager, IBslPreferences bslPreferences,
BslMultiLineCommentDocumentationProvider commentProvider) IScopeProvider scopeProvider, BslMultiLineCommentDocumentationProvider commentProvider)
{ {
super(resourceLookup, namingService, bmModelManager); super(resourceLookup, namingService, bmModelManager, v8ProjectManager);
this.resourceLookup = resourceLookup;
this.bslPreferences = bslPreferences; this.bslPreferences = bslPreferences;
this.scopeProvider = scopeProvider; this.scopeProvider = scopeProvider;
this.commentProvider = commentProvider; this.commentProvider = commentProvider;
@ -159,7 +173,7 @@ public class ParametersSectionCheck
DocumentationCommentProperties props = bslPreferences.getDocumentCommentProperties(project); DocumentationCommentProperties props = bslPreferences.getDocumentCommentProperties(project);
docComment = BslCommentUtils.getLinkPartCommentContent(linkPart, scopeProvider, commentProvider, docComment = BslCommentUtils.getLinkPartCommentContent(linkPart, scopeProvider, commentProvider,
props.oldCommentFormat(), object.getMethod(), typeComputationContext); props.oldCommentFormat(), object.getMethod(), v8ProjectManager, typeComputationContext);
} }
if (docComment == null) if (docComment == null)
{ {

View File

@ -13,6 +13,7 @@
package com.e1c.v8codestyle.bsl.comment.check; package com.e1c.v8codestyle.bsl.comment.check;
import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.ecore.EObject;
import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment; import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment;
import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment.ReturnSection; import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment.ReturnSection;
@ -20,6 +21,8 @@ import com._1c.g5.v8.dt.bsl.documentation.comment.IDescriptionPart;
import com._1c.g5.v8.dt.bsl.model.Procedure; import com._1c.g5.v8.dt.bsl.model.Procedure;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8Project;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com.e1c.g5.dt.core.api.naming.INamingService; import com.e1c.g5.dt.core.api.naming.INamingService;
import com.e1c.g5.dt.core.api.platform.BmOperationContext; import com.e1c.g5.dt.core.api.platform.BmOperationContext;
import com.e1c.g5.v8.dt.bsl.check.DocumentationCommentBasicDelegateCheck; import com.e1c.g5.v8.dt.bsl.check.DocumentationCommentBasicDelegateCheck;
@ -43,11 +46,19 @@ public class ProcedureReturnSectionCheck
private static final String CHECK_ID = "doc-comment-procedure-return-section"; //$NON-NLS-1$ private static final String CHECK_ID = "doc-comment-procedure-return-section"; //$NON-NLS-1$
/**
* Constructs an instance
*
* @param resourceLookup service for look up workspace resources, see {@link IResourceLookup}, cannot be <code>null</code>
* @param namingService service for getting names of EDT object and resources, cannot be <code>null</code>
* @param bmModelManager service for getting instance of Bm Model by {@link EObject}, cannot be <code>null</code>
* @param v8ProjectManager {@link IV8ProjectManager} for getting {@link IV8Project} by {@link EObject}, cannot be <code>null</code>
*/
@Inject @Inject
public ProcedureReturnSectionCheck(IResourceLookup resourceLookup, INamingService namingService, public ProcedureReturnSectionCheck(IResourceLookup resourceLookup, INamingService namingService,
IBmModelManager bmModelManager) IBmModelManager bmModelManager, IV8ProjectManager v8ProjectManager)
{ {
super(resourceLookup, namingService, bmModelManager); super(resourceLookup, namingService, bmModelManager, v8ProjectManager);
} }
@Override @Override

View File

@ -13,12 +13,15 @@
package com.e1c.v8codestyle.bsl.comment.check; package com.e1c.v8codestyle.bsl.comment.check;
import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.ecore.EObject;
import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment; import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment;
import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment.ParametersSection; import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment.ParametersSection;
import com._1c.g5.v8.dt.bsl.documentation.comment.IDescriptionPart; import com._1c.g5.v8.dt.bsl.documentation.comment.IDescriptionPart;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8Project;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com.e1c.g5.dt.core.api.naming.INamingService; import com.e1c.g5.dt.core.api.naming.INamingService;
import com.e1c.g5.dt.core.api.platform.BmOperationContext; import com.e1c.g5.dt.core.api.platform.BmOperationContext;
import com.e1c.g5.v8.dt.bsl.check.DocumentationCommentBasicDelegateCheck; import com.e1c.g5.v8.dt.bsl.check.DocumentationCommentBasicDelegateCheck;
@ -41,11 +44,19 @@ public class RedundantParametersSectionCheck
{ {
private static final String CHECK_ID = "doc-comment-redundant-parameter-section"; //$NON-NLS-1$ private static final String CHECK_ID = "doc-comment-redundant-parameter-section"; //$NON-NLS-1$
/**
* Constructs an instance
*
* @param resourceLookup service for look up workspace resources, see {@link IResourceLookup}, cannot be <code>null</code>
* @param namingService service for getting names of EDT object and resources, cannot be <code>null</code>
* @param bmModelManager service for getting instance of Bm Model by {@link EObject}, cannot be <code>null</code>
* @param v8ProjectManager {@link IV8ProjectManager} for getting {@link IV8Project} by {@link EObject}, cannot be <code>null</code>
*/
@Inject @Inject
public RedundantParametersSectionCheck(IResourceLookup resourceLookup, INamingService namingService, public RedundantParametersSectionCheck(IResourceLookup resourceLookup, INamingService namingService,
IBmModelManager bmModelManager) IBmModelManager bmModelManager, IV8ProjectManager v8ProjectManager)
{ {
super(resourceLookup, namingService, bmModelManager); super(resourceLookup, namingService, bmModelManager, v8ProjectManager);
} }
@Override @Override

View File

@ -13,6 +13,7 @@
package com.e1c.v8codestyle.bsl.comment.check; package com.e1c.v8codestyle.bsl.comment.check;
import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.scoping.IScopeProvider; import org.eclipse.xtext.scoping.IScopeProvider;
import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment; import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment;
@ -22,6 +23,8 @@ import com._1c.g5.v8.dt.bsl.documentation.comment.LinkPart;
import com._1c.g5.v8.dt.common.StringUtils; import com._1c.g5.v8.dt.common.StringUtils;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8Project;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com.e1c.g5.dt.core.api.naming.INamingService; import com.e1c.g5.dt.core.api.naming.INamingService;
import com.e1c.g5.dt.core.api.platform.BmOperationContext; import com.e1c.g5.dt.core.api.platform.BmOperationContext;
import com.e1c.g5.v8.dt.check.CheckComplexity; import com.e1c.g5.v8.dt.check.CheckComplexity;
@ -61,13 +64,17 @@ public class RefLinkPartCheck
/** /**
* Instantiates a new reference link part check. * Instantiates a new reference link part check.
* *
* @param resourceLookup service for look up workspace resources, see {@link IResourceLookup}, cannot be <code>null</code>
* @param namingService service for getting names of EDT object and resources, cannot be <code>null</code>
* @param bmModelManager service for getting instance of Bm Model by {@link EObject}, cannot be <code>null</code>
* @param v8ProjectManager {@link IV8ProjectManager} for getting {@link IV8Project} by {@link EObject}, cannot be <code>null</code>
* @param scopeProvider the scope provider service, cannot be {@code null}. * @param scopeProvider the scope provider service, cannot be {@code null}.
*/ */
@Inject @Inject
public RefLinkPartCheck(IResourceLookup resourceLookup, INamingService namingService, public RefLinkPartCheck(IResourceLookup resourceLookup, INamingService namingService,
IBmModelManager bmModelManager, IScopeProvider scopeProvider) IBmModelManager bmModelManager, IV8ProjectManager v8ProjectManager, IScopeProvider scopeProvider)
{ {
super(resourceLookup, namingService, bmModelManager); super(resourceLookup, namingService, bmModelManager, v8ProjectManager);
this.scopeProvider = scopeProvider; this.scopeProvider = scopeProvider;
} }

View File

@ -15,7 +15,9 @@ package com.e1c.v8codestyle.bsl.comment.check;
import java.text.MessageFormat; import java.text.MessageFormat;
import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.naming.IQualifiedNameConverter; import org.eclipse.xtext.naming.IQualifiedNameConverter;
import org.eclipse.xtext.naming.QualifiedName;
import org.eclipse.xtext.resource.IEObjectDescription; import org.eclipse.xtext.resource.IEObjectDescription;
import org.eclipse.xtext.scoping.IScope; import org.eclipse.xtext.scoping.IScope;
import org.eclipse.xtext.scoping.IScopeProvider; import org.eclipse.xtext.scoping.IScopeProvider;
@ -27,6 +29,8 @@ import com._1c.g5.v8.dt.bsl.documentation.comment.TypeSection.TypeDefinition;
import com._1c.g5.v8.dt.common.StringUtils; import com._1c.g5.v8.dt.common.StringUtils;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8Project;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com._1c.g5.v8.dt.mcore.McorePackage; import com._1c.g5.v8.dt.mcore.McorePackage;
import com.e1c.g5.dt.core.api.naming.INamingService; import com.e1c.g5.dt.core.api.naming.INamingService;
import com.e1c.g5.dt.core.api.platform.BmOperationContext; import com.e1c.g5.dt.core.api.platform.BmOperationContext;
@ -53,11 +57,22 @@ public class TypeDefinitionCheck
private final IQualifiedNameConverter qualifiedNameConverter; private final IQualifiedNameConverter qualifiedNameConverter;
/**
* Constructs an instance
*
* @param resourceLookup service for look up workspace resources, see {@link IResourceLookup}, cannot be <code>null</code>
* @param namingService service for getting names of EDT object and resources, cannot be <code>null</code>
* @param bmModelManager service for getting instance of Bm Model by {@link EObject}, cannot be <code>null</code>
* @param v8ProjectManager {@link IV8ProjectManager} for getting {@link IV8Project} by {@link EObject}, cannot be <code>null</code>
* @param qualifiedNameConverter service for getting {@link QualifiedName} by {@link EObject}, cannot be <code>null</code>
* @param scopeProvider service for getting {@link IScope} for Built-In language, cannot be <code>null</code>
*/
@Inject @Inject
public TypeDefinitionCheck(IResourceLookup resourceLookup, INamingService namingService, public TypeDefinitionCheck(IResourceLookup resourceLookup, INamingService namingService,
IBmModelManager bmModelManager, IQualifiedNameConverter qualifiedNameConverter, IScopeProvider scopeProvider) IBmModelManager bmModelManager, IV8ProjectManager v8ProjectManager,
IQualifiedNameConverter qualifiedNameConverter, IScopeProvider scopeProvider)
{ {
super(resourceLookup, namingService, bmModelManager); super(resourceLookup, namingService, bmModelManager, v8ProjectManager);
this.qualifiedNameConverter = qualifiedNameConverter; this.qualifiedNameConverter = qualifiedNameConverter;
this.scopeProvider = scopeProvider; this.scopeProvider = scopeProvider;
} }

View File

@ -20,6 +20,7 @@ import java.util.Set;
import java.util.TreeSet; import java.util.TreeSet;
import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.EcoreUtil2; import org.eclipse.xtext.EcoreUtil2;
import org.eclipse.xtext.naming.IQualifiedNameConverter; import org.eclipse.xtext.naming.IQualifiedNameConverter;
@ -32,6 +33,8 @@ import com._1c.g5.v8.dt.bsl.model.util.BslUtil;
import com._1c.g5.v8.dt.common.StringUtils; import com._1c.g5.v8.dt.common.StringUtils;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8Project;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com._1c.g5.v8.dt.mcore.Environmental; import com._1c.g5.v8.dt.mcore.Environmental;
import com._1c.g5.v8.dt.mcore.TypeItem; import com._1c.g5.v8.dt.mcore.TypeItem;
import com._1c.g5.v8.dt.mcore.util.Environments; import com._1c.g5.v8.dt.mcore.util.Environments;
@ -66,11 +69,15 @@ public abstract class AbstractDynamicFeatureAccessTypeCheck
* @param resourceLookup the resource lookup service, cannot be {@code null}. * @param resourceLookup the resource lookup service, cannot be {@code null}.
* @param bslPreferences the BSL preferences service, cannot be {@code null}. * @param bslPreferences the BSL preferences service, cannot be {@code null}.
* @param qualifiedNameConverter the qualified name converter service, cannot be {@code null}. * @param qualifiedNameConverter the qualified name converter service, cannot be {@code null}.
* @param namingService service for getting names of EDT object and resources, cannot be <code>null</code>
* @param bmModelManager service for getting instance of Bm Model by {@link EObject}, cannot be <code>null</code>
* @param v8ProjectManager {@link IV8ProjectManager} for getting {@link IV8Project} by {@link EObject}, cannot be <code>null</code>
*/ */
protected AbstractDynamicFeatureAccessTypeCheck(IResourceLookup resourceLookup, IBslPreferences bslPreferences, protected AbstractDynamicFeatureAccessTypeCheck(IResourceLookup resourceLookup, IBslPreferences bslPreferences,
IQualifiedNameConverter qualifiedNameConverter, INamingService namingService, IBmModelManager bmModelManager) IQualifiedNameConverter qualifiedNameConverter, INamingService namingService, IBmModelManager bmModelManager,
IV8ProjectManager v8ProjectManager)
{ {
super(resourceLookup, bslPreferences, qualifiedNameConverter, namingService, bmModelManager); super(resourceLookup, bslPreferences, qualifiedNameConverter, namingService, bmModelManager, v8ProjectManager);
} }
@Override @Override

View File

@ -55,6 +55,8 @@ import com._1c.g5.v8.dt.bsl.typesystem.util.TypeSystemUtil;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IDtProject; import com._1c.g5.v8.dt.core.platform.IDtProject;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8Project;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com._1c.g5.v8.dt.mcore.Environmental; import com._1c.g5.v8.dt.mcore.Environmental;
import com._1c.g5.v8.dt.mcore.McorePackage; import com._1c.g5.v8.dt.mcore.McorePackage;
import com._1c.g5.v8.dt.mcore.Type; import com._1c.g5.v8.dt.mcore.Type;
@ -109,6 +111,11 @@ public abstract class AbstractTypeCheck
/** The comment provider service. */ /** The comment provider service. */
protected final BslMultiLineCommentDocumentationProvider commentProvider; protected final BslMultiLineCommentDocumentationProvider commentProvider;
/**
* {@link IV8ProjectManager} for getting {@link IV8Project} by {@link EObject}
*/
protected final IV8ProjectManager v8ProjectManager;
private final InternalTypeNameRegistry internalTypeNameRegistry; private final InternalTypeNameRegistry internalTypeNameRegistry;
/** /**
@ -117,15 +124,20 @@ public abstract class AbstractTypeCheck
* @param resourceLookup the resource lookup service, cannot be {@code null}. * @param resourceLookup the resource lookup service, cannot be {@code null}.
* @param bslPreferences the BSL preferences service, cannot be {@code null}. * @param bslPreferences the BSL preferences service, cannot be {@code null}.
* @param qualifiedNameConverter the qualified name converter service, cannot be {@code null}. * @param qualifiedNameConverter the qualified name converter service, cannot be {@code null}.
* @param namingService service for getting names of EDT object and resources, cannot be <code>null</code>
* @param bmModelManager service for getting instance of Bm Model by {@link EObject}, cannot be <code>null</code>
* @param v8ProjectManager {@link IV8ProjectManager} for getting {@link IV8Project} by {@link EObject}, cannot be <code>null</code>
*/ */
protected AbstractTypeCheck(IResourceLookup resourceLookup, IBslPreferences bslPreferences, protected AbstractTypeCheck(IResourceLookup resourceLookup, IBslPreferences bslPreferences,
IQualifiedNameConverter qualifiedNameConverter, INamingService namingService, IBmModelManager bmModelManager) IQualifiedNameConverter qualifiedNameConverter, INamingService namingService, IBmModelManager bmModelManager,
IV8ProjectManager v8ProjectManager)
{ {
super(); super();
this.resourceLookup = resourceLookup; this.resourceLookup = resourceLookup;
this.namingService = namingService; this.namingService = namingService;
this.bmModelManager = bmModelManager; this.bmModelManager = bmModelManager;
this.bslPreferences = bslPreferences; this.bslPreferences = bslPreferences;
this.v8ProjectManager = v8ProjectManager;
IResourceServiceProvider rsp = IResourceServiceProvider rsp =
IResourceServiceProvider.Registry.INSTANCE.getResourceServiceProvider(URI.createURI("*.bsl")); //$NON-NLS-1$ IResourceServiceProvider.Registry.INSTANCE.getResourceServiceProvider(URI.createURI("*.bsl")); //$NON-NLS-1$
this.typeComputer = rsp.get(TypesComputer.class); this.typeComputer = rsp.get(TypesComputer.class);
@ -250,7 +262,7 @@ public abstract class AbstractTypeCheck
IProject project = resourceLookup.getProject(object); IProject project = resourceLookup.getProject(object);
boolean oldFormatComment = bslPreferences.getDocumentCommentProperties(project).oldCommentFormat(); boolean oldFormatComment = bslPreferences.getDocumentCommentProperties(project).oldCommentFormat();
return TypeSystemUtil.computeCommentTypes(object, typeScope, scopeProvider, qualifiedNameConverter, return TypeSystemUtil.computeCommentTypes(object, typeScope, scopeProvider, qualifiedNameConverter,
commentProvider, oldFormatComment, commentProvider, v8ProjectManager, oldFormatComment,
new BmOperationContext(namingService, bmModelManager, bmTransaction)); new BmOperationContext(namingService, bmModelManager, bmTransaction));
} }

View File

@ -17,12 +17,15 @@ import static com.e1c.v8codestyle.bsl.strict.check.StrictTypeAnnotationCheckExte
import java.text.MessageFormat; import java.text.MessageFormat;
import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.ecore.EObject;
import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment; import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment;
import com._1c.g5.v8.dt.bsl.documentation.comment.IDescriptionPart; import com._1c.g5.v8.dt.bsl.documentation.comment.IDescriptionPart;
import com._1c.g5.v8.dt.bsl.documentation.comment.TypeSection.FieldDefinition; import com._1c.g5.v8.dt.bsl.documentation.comment.TypeSection.FieldDefinition;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8Project;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com.e1c.g5.dt.core.api.naming.INamingService; import com.e1c.g5.dt.core.api.naming.INamingService;
import com.e1c.g5.dt.core.api.platform.BmOperationContext; import com.e1c.g5.dt.core.api.platform.BmOperationContext;
import com.e1c.g5.v8.dt.check.CheckComplexity; import com.e1c.g5.v8.dt.check.CheckComplexity;
@ -46,15 +49,18 @@ public class DocCommentFieldTypeCheck
private static final String CHECK_ID = "doc-comment-field-type-strict"; //$NON-NLS-1$ private static final String CHECK_ID = "doc-comment-field-type-strict"; //$NON-NLS-1$
/** /**
* @param resourceLookup * Constructs an instance
* @param namingService *
* @param bmModelManager * @param resourceLookup service for look up workspace resources, see {@link IResourceLookup}, cannot be <code>null</code>
* @param namingService service for getting names of EDT object and resources, cannot be <code>null</code>
* @param bmModelManager service for getting instance of Bm Model by {@link EObject}, cannot be <code>null</code>
* @param v8ProjectManager {@link IV8ProjectManager} for getting {@link IV8Project} by {@link EObject}, cannot be <code>null</code>
*/ */
@Inject @Inject
public DocCommentFieldTypeCheck(IResourceLookup resourceLookup, INamingService namingService, public DocCommentFieldTypeCheck(IResourceLookup resourceLookup, INamingService namingService,
IBmModelManager bmModelManager) IBmModelManager bmModelManager, IV8ProjectManager v8ProjectManager)
{ {
super(resourceLookup, namingService, bmModelManager); super(resourceLookup, namingService, bmModelManager, v8ProjectManager);
} }
@Override @Override

View File

@ -14,12 +14,15 @@ package com.e1c.v8codestyle.bsl.strict.check;
import java.text.MessageFormat; import java.text.MessageFormat;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.naming.IQualifiedNameConverter; import org.eclipse.xtext.naming.IQualifiedNameConverter;
import com._1c.g5.v8.dt.bsl.common.IBslPreferences; import com._1c.g5.v8.dt.bsl.common.IBslPreferences;
import com._1c.g5.v8.dt.bsl.model.DynamicFeatureAccess; import com._1c.g5.v8.dt.bsl.model.DynamicFeatureAccess;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8Project;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com.e1c.g5.dt.core.api.naming.INamingService; import com.e1c.g5.dt.core.api.naming.INamingService;
import com.google.inject.Inject; import com.google.inject.Inject;
@ -40,12 +43,16 @@ public class DynamicFeatureAccessMethodNotFoundCheck
* @param resourceLookup the resource lookup service, cannot be {@code null}. * @param resourceLookup the resource lookup service, cannot be {@code null}.
* @param bslPreferences the BSL preferences service, cannot be {@code null}. * @param bslPreferences the BSL preferences service, cannot be {@code null}.
* @param qualifiedNameConverter the qualified name converter service, cannot be {@code null}. * @param qualifiedNameConverter the qualified name converter service, cannot be {@code null}.
* @param namingService service for getting names of EDT object and resources, cannot be <code>null</code>
* @param bmModelManager service for getting instance of Bm Model by {@link EObject}, cannot be <code>null</code>
* @param v8ProjectManager {@link IV8ProjectManager} for getting {@link IV8Project} by {@link EObject}, cannot be <code>null</code>
*/ */
@Inject @Inject
public DynamicFeatureAccessMethodNotFoundCheck(IResourceLookup resourceLookup, IBslPreferences bslPreferences, public DynamicFeatureAccessMethodNotFoundCheck(IResourceLookup resourceLookup, IBslPreferences bslPreferences,
IQualifiedNameConverter qualifiedNameConverter, INamingService namingService, IBmModelManager bmModelManager) IQualifiedNameConverter qualifiedNameConverter, INamingService namingService, IBmModelManager bmModelManager,
IV8ProjectManager v8ProjectManager)
{ {
super(resourceLookup, bslPreferences, qualifiedNameConverter, namingService, bmModelManager); super(resourceLookup, bslPreferences, qualifiedNameConverter, namingService, bmModelManager, v8ProjectManager);
} }
@Override @Override

View File

@ -14,12 +14,15 @@ package com.e1c.v8codestyle.bsl.strict.check;
import java.text.MessageFormat; import java.text.MessageFormat;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.naming.IQualifiedNameConverter; import org.eclipse.xtext.naming.IQualifiedNameConverter;
import com._1c.g5.v8.dt.bsl.common.IBslPreferences; import com._1c.g5.v8.dt.bsl.common.IBslPreferences;
import com._1c.g5.v8.dt.bsl.model.DynamicFeatureAccess; import com._1c.g5.v8.dt.bsl.model.DynamicFeatureAccess;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8Project;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com.e1c.g5.dt.core.api.naming.INamingService; import com.e1c.g5.dt.core.api.naming.INamingService;
import com.google.inject.Inject; import com.google.inject.Inject;
@ -39,12 +42,16 @@ public class DynamicFeatureAccessTypeCheck
* @param resourceLookup the resource lookup service, cannot be {@code null}. * @param resourceLookup the resource lookup service, cannot be {@code null}.
* @param bslPreferences the BSL preferences service, cannot be {@code null}. * @param bslPreferences the BSL preferences service, cannot be {@code null}.
* @param qualifiedNameConverter the qualified name converter service, cannot be {@code null}. * @param qualifiedNameConverter the qualified name converter service, cannot be {@code null}.
* @param namingService service for getting names of EDT object and resources, cannot be <code>null</code>
* @param bmModelManager service for getting instance of Bm Model by {@link EObject}, cannot be <code>null</code>
* @param v8ProjectManager {@link IV8ProjectManager} for getting {@link IV8Project} by {@link EObject}, cannot be <code>null</code>
*/ */
@Inject @Inject
public DynamicFeatureAccessTypeCheck(IResourceLookup resourceLookup, IBslPreferences bslPreferences, public DynamicFeatureAccessTypeCheck(IResourceLookup resourceLookup, IBslPreferences bslPreferences,
IQualifiedNameConverter qualifiedNameConverter, INamingService namingService, IBmModelManager bmModelManager) IQualifiedNameConverter qualifiedNameConverter, INamingService namingService, IBmModelManager bmModelManager,
IV8ProjectManager v8ProjectManager)
{ {
super(resourceLookup, bslPreferences, qualifiedNameConverter, namingService, bmModelManager); super(resourceLookup, bslPreferences, qualifiedNameConverter, namingService, bmModelManager, v8ProjectManager);
} }
@Override @Override

View File

@ -29,6 +29,7 @@ import java.util.stream.StreamSupport;
import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.xtext.EcoreUtil2; import org.eclipse.xtext.EcoreUtil2;
import org.eclipse.xtext.naming.IQualifiedNameConverter; import org.eclipse.xtext.naming.IQualifiedNameConverter;
@ -96,10 +97,6 @@ public class FunctionCtorReturnSectionCheck
private final BslMultiLineCommentDocumentationProvider commentProvider; private final BslMultiLineCommentDocumentationProvider commentProvider;
private final IResourceLookup resourceLookup;
private final IV8ProjectManager v8ProjectManager;
private final IBslPreferences bslPreferences; private final IBslPreferences bslPreferences;
/** /**
@ -113,22 +110,23 @@ public class FunctionCtorReturnSectionCheck
* @param dynamicComputer the dynamic computer service, cannot be {@code null}. * @param dynamicComputer the dynamic computer service, cannot be {@code null}.
* @param scopeProvider the scope provider service, cannot be {@code null}. * @param scopeProvider the scope provider service, cannot be {@code null}.
* @param commentProvider the comment provider service, cannot be {@code null}. * @param commentProvider the comment provider service, cannot be {@code null}.
* @param namingService service for getting names of EDT object and resources, cannot be <code>null</code>
* @param bmModelManager service for getting instance of Bm Model by {@link EObject}, cannot be <code>null</code>
* @param v8ProjectManager {@link IV8ProjectManager} for getting {@link IV8Project} by {@link EObject}, cannot be <code>null</code>
*/ */
@Inject @Inject
public FunctionCtorReturnSectionCheck(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager, public FunctionCtorReturnSectionCheck(IResourceLookup resourceLookup,
IQualifiedNameConverter qualifiedNameConverter, IBslPreferences bslPreferences, TypesComputer typesComputer, IQualifiedNameConverter qualifiedNameConverter, IBslPreferences bslPreferences, TypesComputer typesComputer,
DynamicFeatureAccessComputer dynamicComputer, IScopeProvider scopeProvider, DynamicFeatureAccessComputer dynamicComputer, IScopeProvider scopeProvider,
BslMultiLineCommentDocumentationProvider commentProvider, INamingService namingService, BslMultiLineCommentDocumentationProvider commentProvider, INamingService namingService,
IBmModelManager bmModelManager) IBmModelManager bmModelManager, IV8ProjectManager v8ProjectManager)
{ {
super(resourceLookup, namingService, bmModelManager); super(resourceLookup, namingService, bmModelManager, v8ProjectManager);
this.typesComputer = typesComputer; this.typesComputer = typesComputer;
this.dynamicComputer = dynamicComputer; this.dynamicComputer = dynamicComputer;
this.scopeProvider = scopeProvider; this.scopeProvider = scopeProvider;
this.commentProvider = commentProvider; this.commentProvider = commentProvider;
this.qualifiedNameConverter = qualifiedNameConverter; this.qualifiedNameConverter = qualifiedNameConverter;
this.resourceLookup = resourceLookup;
this.v8ProjectManager = v8ProjectManager;
this.bslPreferences = bslPreferences; this.bslPreferences = bslPreferences;
} }
@ -181,7 +179,7 @@ public class FunctionCtorReturnSectionCheck
boolean oldFormat = props.oldCommentFormat(); boolean oldFormat = props.oldCommentFormat();
Collection<TypeItem> computedReturnTypes = root.computeReturnTypes(typeScope, scopeProvider, Collection<TypeItem> computedReturnTypes = root.computeReturnTypes(typeScope, scopeProvider,
qualifiedNameConverter, commentProvider, oldFormat, method, context); qualifiedNameConverter, commentProvider, v8ProjectManager, oldFormat, method, context);
Set<String> checkTypes = getCheckTypes(parameters); Set<String> checkTypes = getCheckTypes(parameters);
@ -215,6 +213,10 @@ public class FunctionCtorReturnSectionCheck
for (TypeItem returnType : returnTypes) for (TypeItem returnType : returnTypes)
{ {
if (returnType.eIsProxy())
{
continue;
}
String returnTypeName = McoreUtil.getTypeName(returnType); String returnTypeName = McoreUtil.getTypeName(returnType);
if (returnTypeName != null && computedReturnTypeNames.contains(returnTypeName)) if (returnTypeName != null && computedReturnTypeNames.contains(returnTypeName))
{ {

View File

@ -21,6 +21,8 @@ import com._1c.g5.v8.dt.bsl.common.IBslPreferences;
import com._1c.g5.v8.dt.bsl.model.BslPackage; import com._1c.g5.v8.dt.bsl.model.BslPackage;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8Project;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com._1c.g5.v8.dt.mcore.McorePackage; import com._1c.g5.v8.dt.mcore.McorePackage;
import com.e1c.g5.dt.core.api.naming.INamingService; import com.e1c.g5.dt.core.api.naming.INamingService;
import com.e1c.g5.v8.dt.check.CheckComplexity; import com.e1c.g5.v8.dt.check.CheckComplexity;
@ -46,12 +48,16 @@ public class FunctionReturnTypeCheck
* @param resourceLookup the resource lookup service, cannot be {@code null}. * @param resourceLookup the resource lookup service, cannot be {@code null}.
* @param bslPreferences the BSL preferences service, cannot be {@code null}. * @param bslPreferences the BSL preferences service, cannot be {@code null}.
* @param qualifiedNameConverter the qualified name converter service, cannot be {@code null}. * @param qualifiedNameConverter the qualified name converter service, cannot be {@code null}.
* @param namingService service for getting names of EDT object and resources, cannot be <code>null</code>
* @param bmModelManager service for getting instance of Bm Model by {@link EObject}, cannot be <code>null</code>
* @param v8ProjectManager {@link IV8ProjectManager} for getting {@link IV8Project} by {@link EObject}, cannot be <code>null</code>
*/ */
@Inject @Inject
public FunctionReturnTypeCheck(IResourceLookup resourceLookup, IBslPreferences bslPreferences, public FunctionReturnTypeCheck(IResourceLookup resourceLookup, IBslPreferences bslPreferences,
IQualifiedNameConverter qualifiedNameConverter, INamingService namingService, IBmModelManager bmModelManager) IQualifiedNameConverter qualifiedNameConverter, INamingService namingService, IBmModelManager bmModelManager,
IV8ProjectManager v8ProjectManager)
{ {
super(resourceLookup, bslPreferences, qualifiedNameConverter, namingService, bmModelManager); super(resourceLookup, bslPreferences, qualifiedNameConverter, namingService, bmModelManager, v8ProjectManager);
} }
@Override @Override

View File

@ -126,8 +126,6 @@ public class InvocationParamIntersectionCheck
//@formatter:on //@formatter:on
private final IV8ProjectManager v8ProjectManager;
private final ExportMethodTypeProvider exportMethodTypeProvider; private final ExportMethodTypeProvider exportMethodTypeProvider;
/** /**
@ -136,17 +134,18 @@ public class InvocationParamIntersectionCheck
* @param resourceLookup the resource lookup service, cannot be {@code null}. * @param resourceLookup the resource lookup service, cannot be {@code null}.
* @param bslPreferences the BSL preferences service, cannot be {@code null}. * @param bslPreferences the BSL preferences service, cannot be {@code null}.
* @param qualifiedNameConverter the qualified name converter service, cannot be {@code null}. * @param qualifiedNameConverter the qualified name converter service, cannot be {@code null}.
* @param v8ProjectManager the v 8 project manager service, cannot be {@code null}.
* @param exportMethodTypeProvider the export method type provider service, cannot be {@code null}. * @param exportMethodTypeProvider the export method type provider service, cannot be {@code null}.
* @param namingService service for getting names of EDT object and resources, cannot be <code>null</code>
* @param bmModelManager service for getting instance of Bm Model by {@link EObject}, cannot be <code>null</code>
* @param v8ProjectManager {@link IV8ProjectManager} for getting {@link IV8Project} by {@link EObject}, cannot be <code>null</code>
*/ */
@Inject @Inject
public InvocationParamIntersectionCheck(IResourceLookup resourceLookup, IBslPreferences bslPreferences, public InvocationParamIntersectionCheck(IResourceLookup resourceLookup, IBslPreferences bslPreferences,
IQualifiedNameConverter qualifiedNameConverter, IV8ProjectManager v8ProjectManager, IQualifiedNameConverter qualifiedNameConverter, ExportMethodTypeProvider exportMethodTypeProvider,
ExportMethodTypeProvider exportMethodTypeProvider, INamingService namingService, IBmModelManager bmModelManager) INamingService namingService, IBmModelManager bmModelManager, IV8ProjectManager v8ProjectManager)
{ {
super(resourceLookup, bslPreferences, qualifiedNameConverter, namingService, bmModelManager); super(resourceLookup, bslPreferences, qualifiedNameConverter, namingService, bmModelManager, v8ProjectManager);
this.exportMethodTypeProvider = exportMethodTypeProvider; this.exportMethodTypeProvider = exportMethodTypeProvider;
this.v8ProjectManager = v8ProjectManager;
} }
@Override @Override
@ -295,7 +294,7 @@ public class InvocationParamIntersectionCheck
new BmOperationContext(namingService, bmModelManager, bmTransaction); new BmOperationContext(namingService, bmModelManager, bmTransaction);
targetTypes = docComment.get() targetTypes = docComment.get()
.computeParameterTypes(parameter.getName(), typeScope, scopeProvider, qualifiedNameConverter, .computeParameterTypes(parameter.getName(), typeScope, scopeProvider, qualifiedNameConverter,
commentProvider, oldFormatComment, method, typeComputationContext); commentProvider, v8ProjectManager, oldFormatComment, method, typeComputationContext);
} }
if (targetTypes.isEmpty()) if (targetTypes.isEmpty())
@ -462,7 +461,7 @@ public class InvocationParamIntersectionCheck
// if parameter declared in doc-comment then check only declared types // if parameter declared in doc-comment then check only declared types
targetTypes = docComment.get() targetTypes = docComment.get()
.computeParameterTypes(paramName, typeScope, scopeProvider, qualifiedNameConverter, commentProvider, .computeParameterTypes(paramName, typeScope, scopeProvider, qualifiedNameConverter, commentProvider,
oldFormatComment, method, typeComputationContext); v8ProjectManager, oldFormatComment, method, typeComputationContext);
} }
else else
{ {

View File

@ -26,6 +26,8 @@ import com._1c.g5.v8.dt.bsl.common.IBslPreferences;
import com._1c.g5.v8.dt.bsl.model.FormalParam; import com._1c.g5.v8.dt.bsl.model.FormalParam;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8Project;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com.e1c.g5.dt.core.api.naming.INamingService; import com.e1c.g5.dt.core.api.naming.INamingService;
import com.e1c.g5.v8.dt.check.CheckComplexity; import com.e1c.g5.v8.dt.check.CheckComplexity;
import com.e1c.g5.v8.dt.check.ICheckParameters; import com.e1c.g5.v8.dt.check.ICheckParameters;
@ -51,12 +53,16 @@ public class MethodParamTypeCheck
* @param resourceLookup the resource lookup service, cannot be {@code null}. * @param resourceLookup the resource lookup service, cannot be {@code null}.
* @param bslPreferences the BSL preferences service, cannot be {@code null}. * @param bslPreferences the BSL preferences service, cannot be {@code null}.
* @param qualifiedNameConverter the qualified name converter service, cannot be {@code null}. * @param qualifiedNameConverter the qualified name converter service, cannot be {@code null}.
* @param namingService service for getting names of EDT object and resources, cannot be <code>null</code>
* @param bmModelManager service for getting instance of Bm Model by {@link EObject}, cannot be <code>null</code>
* @param v8ProjectManager {@link IV8ProjectManager} for getting {@link IV8Project} by {@link EObject}, cannot be <code>null</code>
*/ */
@Inject @Inject
public MethodParamTypeCheck(IResourceLookup resourceLookup, IBslPreferences bslPreferences, public MethodParamTypeCheck(IResourceLookup resourceLookup, IBslPreferences bslPreferences,
IQualifiedNameConverter qualifiedNameConverter, INamingService namingService, IBmModelManager bmModelManager) IQualifiedNameConverter qualifiedNameConverter, INamingService namingService, IBmModelManager bmModelManager,
IV8ProjectManager v8ProjectManager)
{ {
super(resourceLookup, bslPreferences, qualifiedNameConverter, namingService, bmModelManager); super(resourceLookup, bslPreferences, qualifiedNameConverter, namingService, bmModelManager, v8ProjectManager);
} }
@Override @Override

View File

@ -39,6 +39,7 @@ import com._1c.g5.v8.dt.bsl.model.StaticFeatureAccess;
import com._1c.g5.v8.dt.bsl.model.Variable; import com._1c.g5.v8.dt.bsl.model.Variable;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8Project;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager; import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com._1c.g5.v8.dt.mcore.Environmental; import com._1c.g5.v8.dt.mcore.Environmental;
import com._1c.g5.v8.dt.mcore.TypeItem; import com._1c.g5.v8.dt.mcore.TypeItem;
@ -68,23 +69,22 @@ public class SimpleStatementTypeCheck
private static final String DEFAULT_ALLOW_IMPLICIT_VAR_RESET_TO_UNDEFINED = Boolean.TRUE.toString(); private static final String DEFAULT_ALLOW_IMPLICIT_VAR_RESET_TO_UNDEFINED = Boolean.TRUE.toString();
private final IV8ProjectManager v8ProjectManager;
/** /**
* Instantiates a new simple statement change type check. * Instantiates a new simple statement change type check.
* *
* @param resourceLookup the resource lookup service, cannot be {@code null}. * @param resourceLookup the resource lookup service, cannot be {@code null}.
* @param bslPreferences the BSL preferences service, cannot be {@code null}. * @param bslPreferences the BSL preferences service, cannot be {@code null}.
* @param v8ProjectManager the v8 project manager service, cannot be {@code null}.
* @param qualifiedNameConverter the qualified name converter service, cannot be {@code null}. * @param qualifiedNameConverter the qualified name converter service, cannot be {@code null}.
* @param namingService service for getting names of EDT object and resources, cannot be <code>null</code>
* @param bmModelManager service for getting instance of Bm Model by {@link EObject}, cannot be <code>null</code>
* @param v8ProjectManager {@link IV8ProjectManager} for getting {@link IV8Project} by {@link EObject}, cannot be <code>null</code>
*/ */
@Inject @Inject
public SimpleStatementTypeCheck(IResourceLookup resourceLookup, IBslPreferences bslPreferences, public SimpleStatementTypeCheck(IResourceLookup resourceLookup, IBslPreferences bslPreferences,
IV8ProjectManager v8ProjectManager, IQualifiedNameConverter qualifiedNameConverter, IQualifiedNameConverter qualifiedNameConverter, INamingService namingService, IBmModelManager bmModelManager,
INamingService namingService, IBmModelManager bmModelManager) IV8ProjectManager v8ProjectManager)
{ {
super(resourceLookup, bslPreferences, qualifiedNameConverter, namingService, bmModelManager); super(resourceLookup, bslPreferences, qualifiedNameConverter, namingService, bmModelManager, v8ProjectManager);
this.v8ProjectManager = v8ProjectManager;
} }
@Override @Override

View File

@ -18,6 +18,7 @@ import static com._1c.g5.v8.dt.bsl.model.BslPackage.Literals.STRING_LITERAL__LIN
import java.text.MessageFormat; import java.text.MessageFormat;
import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.naming.IQualifiedNameConverter; import org.eclipse.xtext.naming.IQualifiedNameConverter;
import com._1c.g5.v8.bm.core.IBmTransaction; import com._1c.g5.v8.bm.core.IBmTransaction;
@ -28,6 +29,8 @@ import com._1c.g5.v8.dt.bsl.model.OperatorStyleCreator;
import com._1c.g5.v8.dt.bsl.model.StringLiteral; import com._1c.g5.v8.dt.bsl.model.StringLiteral;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8Project;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com._1c.g5.v8.dt.mcore.util.McoreUtil; import com._1c.g5.v8.dt.mcore.util.McoreUtil;
import com._1c.g5.v8.dt.platform.IEObjectTypeNames; import com._1c.g5.v8.dt.platform.IEObjectTypeNames;
import com.e1c.g5.dt.core.api.naming.INamingService; import com.e1c.g5.dt.core.api.naming.INamingService;
@ -55,12 +58,16 @@ public class StructureCtorValueTypeCheck
* @param resourceLookup the resource lookup service, cannot be {@code null}. * @param resourceLookup the resource lookup service, cannot be {@code null}.
* @param bslPreferences the BSL preferences service, cannot be {@code null}. * @param bslPreferences the BSL preferences service, cannot be {@code null}.
* @param qualifiedNameConverter the qualified name converter service, cannot be {@code null}. * @param qualifiedNameConverter the qualified name converter service, cannot be {@code null}.
* @param namingService service for getting names of EDT object and resources, cannot be <code>null</code>
* @param bmModelManager service for getting instance of Bm Model by {@link EObject}, cannot be <code>null</code>
* @param v8ProjectManager {@link IV8ProjectManager} for getting {@link IV8Project} by {@link EObject}, cannot be <code>null</code>
*/ */
@Inject @Inject
public StructureCtorValueTypeCheck(IResourceLookup resourceLookup, IBslPreferences bslPreferences, public StructureCtorValueTypeCheck(IResourceLookup resourceLookup, IBslPreferences bslPreferences,
IQualifiedNameConverter qualifiedNameConverter, INamingService namingService, IBmModelManager bmModelManager) IQualifiedNameConverter qualifiedNameConverter, INamingService namingService, IBmModelManager bmModelManager,
IV8ProjectManager v8ProjectManager)
{ {
super(resourceLookup, bslPreferences, qualifiedNameConverter, namingService, bmModelManager); super(resourceLookup, bslPreferences, qualifiedNameConverter, namingService, bmModelManager, v8ProjectManager);
} }
@Override @Override

View File

@ -23,6 +23,7 @@ import java.util.stream.Collectors;
import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.common.util.URI; import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.xtext.EcoreUtil2; import org.eclipse.xtext.EcoreUtil2;
import org.eclipse.xtext.naming.IQualifiedNameConverter; import org.eclipse.xtext.naming.IQualifiedNameConverter;
@ -43,6 +44,8 @@ import com._1c.g5.v8.dt.bsl.model.util.BslUtil;
import com._1c.g5.v8.dt.common.StringUtils; import com._1c.g5.v8.dt.common.StringUtils;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8Project;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com._1c.g5.v8.dt.mcore.DerivedProperty; import com._1c.g5.v8.dt.mcore.DerivedProperty;
import com._1c.g5.v8.dt.mcore.Property; import com._1c.g5.v8.dt.mcore.Property;
import com._1c.g5.v8.dt.mcore.TypeItem; import com._1c.g5.v8.dt.mcore.TypeItem;
@ -85,12 +88,23 @@ public class StructureKeyModificationCheck
private final IStaticExpressionValueComputer staticExpressionValueComputer; private final IStaticExpressionValueComputer staticExpressionValueComputer;
/**
* Instantiates a new structure constructor value type check.
*
* @param resourceLookup the resource lookup service, cannot be {@code null}.
* @param bslPreferences the BSL preferences service, cannot be {@code null}.
* @param qualifiedNameConverter the qualified name converter service, cannot be {@code null}.
* @param namingService service for getting names of EDT object and resources, cannot be <code>null</code>
* @param bmModelManager service for getting instance of Bm Model by {@link EObject}, cannot be <code>null</code>
* @param v8ProjectManager {@link IV8ProjectManager} for getting {@link IV8Project} by {@link EObject}, cannot be <code>null</code>
* @param staticExpressionValueComputer {@link IStaticExpressionValueComputer} for compute string literal type, cannot be <code>null</code>
*/
@Inject @Inject
public StructureKeyModificationCheck(IResourceLookup resourceLookup, IBslPreferences bslPreferences, public StructureKeyModificationCheck(IResourceLookup resourceLookup, IBslPreferences bslPreferences,
IQualifiedNameConverter qualifiedNameConverter, INamingService namingService, IBmModelManager bmModelManager, IQualifiedNameConverter qualifiedNameConverter, INamingService namingService, IBmModelManager bmModelManager,
IStaticExpressionValueComputer staticExpressionValueComputer) IV8ProjectManager v8ProjectManager, IStaticExpressionValueComputer staticExpressionValueComputer)
{ {
super(resourceLookup, bslPreferences, qualifiedNameConverter, namingService, bmModelManager); super(resourceLookup, bslPreferences, qualifiedNameConverter, namingService, bmModelManager, v8ProjectManager);
this.staticExpressionValueComputer = staticExpressionValueComputer; this.staticExpressionValueComputer = staticExpressionValueComputer;
} }

View File

@ -37,6 +37,8 @@ import com._1c.g5.v8.dt.bsl.model.SourceObjectLinkProvider;
import com._1c.g5.v8.dt.bsl.model.util.BslUtil; import com._1c.g5.v8.dt.bsl.model.util.BslUtil;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8Project;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com._1c.g5.v8.dt.mcore.Method; import com._1c.g5.v8.dt.mcore.Method;
import com._1c.g5.v8.dt.mcore.Type; import com._1c.g5.v8.dt.mcore.Type;
import com._1c.g5.v8.dt.mcore.TypeItem; import com._1c.g5.v8.dt.mcore.TypeItem;
@ -79,12 +81,15 @@ public class TypedValueAddingToUntypedCollectionCheck
* @param resourceLookup the resource lookup service, cannot be {@code null}. * @param resourceLookup the resource lookup service, cannot be {@code null}.
* @param bslPreferences the BSL preferences service, cannot be {@code null}. * @param bslPreferences the BSL preferences service, cannot be {@code null}.
* @param qualifiedNameConverter the qualified name converter service, cannot be {@code null}. * @param qualifiedNameConverter the qualified name converter service, cannot be {@code null}.
* @param namingService service for getting names of EDT object and resources, cannot be <code>null</code>
* @param bmModelManager service for getting instance of Bm Model by {@link EObject}, cannot be <code>null</code>
* @param v8ProjectManager {@link IV8ProjectManager} for getting {@link IV8Project} by {@link EObject}, cannot be <code>null</code>
*/ */
@Inject @Inject
public TypedValueAddingToUntypedCollectionCheck(IResourceLookup resourceLookup, IBslPreferences bslPreferences, public TypedValueAddingToUntypedCollectionCheck(IResourceLookup resourceLookup, IBslPreferences bslPreferences,
IQualifiedNameConverter qualifiedNameConverter, INamingService namingService, IBmModelManager bmModelManager) IQualifiedNameConverter qualifiedNameConverter, INamingService namingService, IBmModelManager bmModelManager, IV8ProjectManager v8ProjectManager)
{ {
super(resourceLookup, bslPreferences, qualifiedNameConverter, namingService, bmModelManager); super(resourceLookup, bslPreferences, qualifiedNameConverter, namingService, bmModelManager, v8ProjectManager);
} }
@Override @Override
@ -206,10 +211,13 @@ public class TypedValueAddingToUntypedCollectionCheck
actualTypes.addAll(collectionTypes); actualTypes.addAll(collectionTypes);
} }
else else
{
if (((Type)type).getCollectionElementTypes() != null)
{ {
actualTypes.addAll(((Type)type).getCollectionElementTypes().allTypes()); actualTypes.addAll(((Type)type).getCollectionElementTypes().allTypes());
} }
} }
}
return actualTypes; return actualTypes;
} }

View File

@ -32,6 +32,8 @@ import com._1c.g5.v8.dt.bsl.model.StaticFeatureAccess;
import com._1c.g5.v8.dt.bsl.model.Variable; import com._1c.g5.v8.dt.bsl.model.Variable;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8Project;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com._1c.g5.v8.dt.mcore.Environmental; import com._1c.g5.v8.dt.mcore.Environmental;
import com._1c.g5.v8.dt.mcore.util.Environments; import com._1c.g5.v8.dt.mcore.util.Environments;
import com.e1c.g5.dt.core.api.naming.INamingService; import com.e1c.g5.dt.core.api.naming.INamingService;
@ -59,12 +61,16 @@ public class VariableTypeCheck
* @param resourceLookup the resource lookup service, cannot be {@code null}. * @param resourceLookup the resource lookup service, cannot be {@code null}.
* @param bslPreferences the BSL preferences service, cannot be {@code null}. * @param bslPreferences the BSL preferences service, cannot be {@code null}.
* @param qualifiedNameConverter the qualified name converter service, cannot be {@code null}. * @param qualifiedNameConverter the qualified name converter service, cannot be {@code null}.
* @param namingService service for getting names of EDT object and resources, cannot be <code>null</code>
* @param bmModelManager service for getting instance of Bm Model by {@link EObject}, cannot be <code>null</code>
* @param v8ProjectManager {@link IV8ProjectManager} for getting {@link IV8Project} by {@link EObject}, cannot be <code>null</code>
*/ */
@Inject @Inject
public VariableTypeCheck(IResourceLookup resourceLookup, IBslPreferences bslPreferences, public VariableTypeCheck(IResourceLookup resourceLookup, IBslPreferences bslPreferences,
IQualifiedNameConverter qualifiedNameConverter, INamingService namingService, IBmModelManager bmModelManager) IQualifiedNameConverter qualifiedNameConverter, INamingService namingService, IBmModelManager bmModelManager,
IV8ProjectManager v8ProjectManager)
{ {
super(resourceLookup, bslPreferences, qualifiedNameConverter, namingService, bmModelManager); super(resourceLookup, bslPreferences, qualifiedNameConverter, namingService, bmModelManager, v8ProjectManager);
} }
@Override @Override

View File

@ -2,9 +2,7 @@
#Region EventHandlers #Region EventHandlers
// Enter code here. // Enter code here.
//%CURRENT_CODE% //%CURRENT_CODE%
#EndRegion #EndRegion
#Region Private #Region Private

View File

@ -6,9 +6,7 @@
#Region FormEventHandlers #Region FormEventHandlers
// Enter code here. // Enter code here.
//%CURRENT_CODE% //%CURRENT_CODE%
#EndRegion #EndRegion
#Region FormHeaderItemsEventHandlers #Region FormHeaderItemsEventHandlers
@ -17,12 +15,6 @@
#EndRegion #EndRegion
#Region FormTableItemsEventHandlers //<FromTableName>
// Enter code here.
#EndRegion
#Region FormCommandsEventHandlers #Region FormCommandsEventHandlers
// Enter code here. // Enter code here.

View File

@ -2,9 +2,7 @@
#Область ОбработчикиСобытий #Область ОбработчикиСобытий
// Код процедур и функций // Код процедур и функций
//%CURRENT_CODE% //%CURRENT_CODE%
#КонецОбласти #КонецОбласти
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции

View File

@ -6,9 +6,7 @@
#Область ОбработчикиСобытийФормы #Область ОбработчикиСобытийФормы
// Код процедур и функций // Код процедур и функций
//%CURRENT_CODE% //%CURRENT_CODE%
#КонецОбласти #КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы #Область ОбработчикиСобытийЭлементовШапкиФормы
@ -17,12 +15,6 @@
#КонецОбласти #КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормы //<ИмяТаблицыФормы>
// Код процедур и функций
#КонецОбласти
#Область ОбработчикиКомандФормы #Область ОбработчикиКомандФормы
// Код процедур и функций // Код процедур и функций

View File

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

View File

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

View File

@ -8,9 +8,9 @@ Bundle-Vendor: %providerName
Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.20.0,4.0.0)", Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.20.0,4.0.0)",
org.eclipse.emf.ecore;bundle-version="[2.23.0,3.0.0)", org.eclipse.emf.ecore;bundle-version="[2.23.0,3.0.0)",
org.eclipse.core.resources;bundle-version="[3.14.0,4.0.0)", org.eclipse.core.resources;bundle-version="[3.14.0,4.0.0)",
javax.inject;bundle-version="[1.0.0,2.0.0)", com.google.inject;bundle-version="[7.0.0,8.0.0)",
org.eclipse.xtext;bundle-version="[2.26.0,3.0.0)" org.eclipse.xtext;bundle-version="[2.26.0,3.0.0)"
Bundle-RequiredExecutionEnvironment: JavaSE-11 Bundle-RequiredExecutionEnvironment: JavaSE-17
Automatic-Module-Name: com.e1c.v8codestyle.form Automatic-Module-Name: com.e1c.v8codestyle.form
Bundle-ActivationPolicy: lazy Bundle-ActivationPolicy: lazy
Bundle-Localization: plugin Bundle-Localization: plugin
@ -24,14 +24,14 @@ Import-Package: com._1c.g5.v8.bm.core;version="[8.0.0,9.0.0)",
com._1c.g5.v8.dt.dcs.model.settings;version="[3.2.0,4.0.0)", com._1c.g5.v8.dt.dcs.model.settings;version="[3.2.0,4.0.0)",
com._1c.g5.v8.dt.form.model;version="[11.0.0,12.0.0)", com._1c.g5.v8.dt.form.model;version="[11.0.0,12.0.0)",
com._1c.g5.v8.dt.form.model.util;version="[7.2.0,8.0.0)", com._1c.g5.v8.dt.form.model.util;version="[7.2.0,8.0.0)",
com._1c.g5.v8.dt.form.service;version="[7.0.0,8.0.0)", com._1c.g5.v8.dt.form.service;version="[8.0.0,9.0.0)",
com._1c.g5.v8.dt.form.service.datasourceinfo;version="[3.0.0,4.0.0)", com._1c.g5.v8.dt.form.service.datasourceinfo;version="[3.0.0,4.0.0)",
com._1c.g5.v8.dt.mcore;version="[7.0.0,8.0.0)", com._1c.g5.v8.dt.mcore;version="[7.0.0,8.0.0)",
com._1c.g5.v8.dt.metadata;version="[5.0.0,6.0.0)", com._1c.g5.v8.dt.metadata;version="[5.0.0,6.0.0)",
com._1c.g5.v8.dt.metadata.dbview;version="[4.0.0,5.0.0)", com._1c.g5.v8.dt.metadata.dbview;version="[4.0.0,5.0.0)",
com._1c.g5.v8.dt.metadata.mdclass;version="[9.0.0,10.0.0)", com._1c.g5.v8.dt.metadata.mdclass;version="[9.0.0,10.0.0)",
com._1c.g5.v8.dt.platform.version;version="[2.14.0,3.0.0)", com._1c.g5.v8.dt.platform.version;version="[2.14.0,3.0.0)",
com._1c.g5.v8.dt.ql.model;version="[4.0.0,5.0.0)", com._1c.g5.v8.dt.ql.model;version="[5.0.0,6.0.0)",
com._1c.g5.v8.dt.ql.resource;version="[5.0.0,6.0.0)", com._1c.g5.v8.dt.ql.resource;version="[5.0.0,6.0.0)",
com._1c.g5.v8.dt.ql.typesystem;version="[6.0.0,7.0.0)", com._1c.g5.v8.dt.ql.typesystem;version="[6.0.0,7.0.0)",
com._1c.g5.wiring;version="[2.2.0,3.0.0)", com._1c.g5.wiring;version="[2.2.0,3.0.0)",
@ -40,10 +40,8 @@ Import-Package: com._1c.g5.v8.bm.core;version="[8.0.0,9.0.0)",
com.e1c.g5.v8.dt.check.components;version="[2.0.0,3.0.0)", com.e1c.g5.v8.dt.check.components;version="[2.0.0,3.0.0)",
com.e1c.g5.v8.dt.check.context;version="[2.0.0,3.0.0)", com.e1c.g5.v8.dt.check.context;version="[2.0.0,3.0.0)",
com.e1c.g5.v8.dt.check.ext;version="[1.0.0,2.0.0)", com.e1c.g5.v8.dt.check.ext;version="[1.0.0,2.0.0)",
com.e1c.g5.v8.dt.check.qfix;version="[2.0.0,3.0.0)", com.e1c.g5.v8.dt.check.qfix;version="[3.0.0,4.0.0)",
com.e1c.g5.v8.dt.check.qfix.components;version="[1.0.0,2.0.0)", com.e1c.g5.v8.dt.check.qfix.components;version="[1.0.0,2.0.0)",
com.e1c.g5.v8.dt.check.settings;version="[3.0.0,4.0.0)", com.e1c.g5.v8.dt.check.settings;version="[4.0.0,5.0.0)",
com.e1c.v8codestyle.check;version="[0.7.0,0.8.0)", com.e1c.v8codestyle.check;version="[0.7.0,0.8.0)",
com.google.common.base;version="[30.1.0,31.0.0)", com.google.common.base;version="[32.1.0,33.0.0)"
com.google.inject;version="[5.0.1,6.0.0)",
com.google.inject.binder;version="[5.0.1,6.0.0)"

View File

@ -47,7 +47,6 @@ import com.google.inject.Inject;
public class DataCompositionConditionalAppearanceUseCheck public class DataCompositionConditionalAppearanceUseCheck
extends BasicCheck extends BasicCheck
{ {
private static final String CHECK_ID = "data-composition-conditional-appearance-use"; //$NON-NLS-1$ private static final String CHECK_ID = "data-composition-conditional-appearance-use"; //$NON-NLS-1$
private final IBmModelManager bmModelManager; private final IBmModelManager bmModelManager;
@ -78,10 +77,14 @@ public class DataCompositionConditionalAppearanceUseCheck
.complexity(CheckComplexity.NORMAL) .complexity(CheckComplexity.NORMAL)
.severity(IssueSeverity.MINOR) .severity(IssueSeverity.MINOR)
.issueType(IssueType.UI_STYLE) .issueType(IssueType.UI_STYLE)
.extension(new StandardCheckExtension(710, getCheckId(), CorePlugin.PLUGIN_ID)) .extension(new StandardCheckExtension(710, getCheckId(), CorePlugin.PLUGIN_ID));
.topObject(DATA_COMPOSITION_SETTINGS)
builder.topObject(DATA_COMPOSITION_SETTINGS)
.containment(DATA_COMPOSITION_CONDITIONAL_APPEARANCE) .containment(DATA_COMPOSITION_CONDITIONAL_APPEARANCE)
.features(DATA_COMPOSITION_CONDITIONAL_APPEARANCE__ITEMS); .features(DATA_COMPOSITION_CONDITIONAL_APPEARANCE__ITEMS);
builder.topObject(DATA_COMPOSITION_CONDITIONAL_APPEARANCE)
.features(DATA_COMPOSITION_CONDITIONAL_APPEARANCE__ITEMS);
} }
@Override @Override
@ -104,7 +107,6 @@ public class DataCompositionConditionalAppearanceUseCheck
} }
EObject eObject = dcca; EObject eObject = dcca;
DynamicListExtInfo dl = manager.getOwner(eObject, DynamicListExtInfo.class); DynamicListExtInfo dl = manager.getOwner(eObject, DynamicListExtInfo.class);
if (dl != null) if (dl != null)
{ {
@ -114,9 +116,8 @@ public class DataCompositionConditionalAppearanceUseCheck
return; return;
} }
resultAcceptor.addIssue( resultAcceptor.addIssue(MessageFormat
MessageFormat.format( .format(Messages.DataCompositionConditionalAppearanceUseCheck_Form_attribute, formAttribute.getName()),
Messages.DataCompositionConditionalAppearanceUseCheck_Form_attribute, formAttribute.getName()),
dcca, DATA_COMPOSITION_CONDITIONAL_APPEARANCE__ITEMS); dcca, DATA_COMPOSITION_CONDITIONAL_APPEARANCE__ITEMS);
} }
@ -128,12 +129,8 @@ public class DataCompositionConditionalAppearanceUseCheck
return; return;
} }
resultAcceptor.addIssue( resultAcceptor.addIssue(MessageFormat.format(Messages.DataCompositionConditionalAppearanceUseCheck_Form,
MessageFormat.format( form.getMdForm().getName()), dcca, DATA_COMPOSITION_CONDITIONAL_APPEARANCE__ITEMS);
Messages.DataCompositionConditionalAppearanceUseCheck_Form, form.getMdForm().getName()), }
dcca, DATA_COMPOSITION_CONDITIONAL_APPEARANCE__ITEMS);
}
} }
} }

View File

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

View File

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

View File

@ -13,8 +13,9 @@ Require-Bundle: org.eclipse.ui;bundle-version="[3.119.0,4.0.0)",
org.eclipse.ui.forms;bundle-version="[3.11.100,4.0.0)", org.eclipse.ui.forms;bundle-version="[3.11.100,4.0.0)",
org.eclipse.emf.databinding;bundle-version="[1.5.0,2.0.0)", org.eclipse.emf.databinding;bundle-version="[1.5.0,2.0.0)",
org.eclipse.jface.databinding;bundle-version="[1.12.200,2.0.0)", org.eclipse.jface.databinding;bundle-version="[1.12.200,2.0.0)",
org.eclipse.core.databinding.property;bundle-version="[1.8.100,2.0.0)" org.eclipse.core.databinding.property;bundle-version="[1.8.100,2.0.0)",
Bundle-RequiredExecutionEnvironment: JavaSE-11 com.google.inject;bundle-version="[7.0.0,8.0.0)"
Bundle-RequiredExecutionEnvironment: JavaSE-17
Automatic-Module-Name: com.e1c.v8codestyle.md.ui Automatic-Module-Name: com.e1c.v8codestyle.md.ui
Bundle-ActivationPolicy: lazy Bundle-ActivationPolicy: lazy
Bundle-Localization: plugin Bundle-Localization: plugin
@ -27,5 +28,4 @@ Import-Package: com._1c.g5.v8.dt.common;version="[6.4.0,7.0.0)",
com._1c.g5.wiring;version="[2.2.0,3.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._1c.g5.wiring.binder;version="[1.1.0,2.0.0)",
com.e1c.v8codestyle.md;version="[0.7.0,0.8.0)", com.e1c.v8codestyle.md;version="[0.7.0,0.8.0)",
com.google.common.base;version="[30.1.0,31.0.0)", com.google.common.base;version="[32.1.0,33.0.0)"
com.google.inject;version="[5.0.1,6.0.0)"

View File

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

View File

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

View File

@ -7,8 +7,9 @@ Bundle-Activator: com.e1c.v8codestyle.internal.md.CorePlugin
Bundle-Vendor: %providerName Bundle-Vendor: %providerName
Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.18.0,4.0.0)", 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)", org.eclipse.emf.ecore;bundle-version="[2.22.0,3.0.0)",
org.eclipse.core.resources;bundle-version="[3.14.0,4.0.0)" org.eclipse.core.resources;bundle-version="[3.14.0,4.0.0)",
Bundle-RequiredExecutionEnvironment: JavaSE-11 com.google.inject;bundle-version="[7.0.0,8.0.0)"
Bundle-RequiredExecutionEnvironment: JavaSE-17
Automatic-Module-Name: com.e1c.v8codestyle.md Automatic-Module-Name: com.e1c.v8codestyle.md
Bundle-ActivationPolicy: lazy Bundle-ActivationPolicy: lazy
Bundle-Localization: plugin Bundle-Localization: plugin
@ -28,8 +29,7 @@ Import-Package: com._1c.g5.v8.bm.core;version="[8.0.0,9.0.0)",
com.e1c.g5.v8.dt.check.components;version="[2.0.0,3.0.0)", com.e1c.g5.v8.dt.check.components;version="[2.0.0,3.0.0)",
com.e1c.g5.v8.dt.check.context;version="[2.0.0,3.0.0)", com.e1c.g5.v8.dt.check.context;version="[2.0.0,3.0.0)",
com.e1c.g5.v8.dt.check.ext;version="[1.0.0,2.0.0)", com.e1c.g5.v8.dt.check.ext;version="[1.0.0,2.0.0)",
com.e1c.g5.v8.dt.check.settings;version="[3.0.0,4.0.0)", com.e1c.g5.v8.dt.check.settings;version="[4.0.0,5.0.0)",
com.e1c.v8codestyle.check;version="[0.7.0,0.8.0)", com.e1c.v8codestyle.check;version="[0.7.0,0.8.0)",
com.google.common.base;version="[30.1.0,31.0.0)", com.google.common.base;version="[32.1.0,33.0.0)"
com.google.inject;version="[5.0.1,6.0.0)"
Export-Package: com.e1c.v8codestyle.md;version="0.7.0" Export-Package: com.e1c.v8codestyle.md;version="0.7.0"

View File

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

View File

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

View File

@ -8,8 +8,9 @@ Bundle-Vendor: %providerName
Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.18.0,4.0.0)", 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)", org.eclipse.emf.ecore;bundle-version="[2.22.0,3.0.0)",
org.eclipse.xtext;bundle-version="[2.24.0,3.0.0)", org.eclipse.xtext;bundle-version="[2.24.0,3.0.0)",
org.eclipse.core.resources;bundle-version="[3.14.0,4.0.0)" org.eclipse.core.resources;bundle-version="[3.14.0,4.0.0)",
Bundle-RequiredExecutionEnvironment: JavaSE-11 com.google.inject;bundle-version="[7.0.0,8.0.0)"
Bundle-RequiredExecutionEnvironment: JavaSE-17
Automatic-Module-Name: com.e1c.v8codestyle.ql Automatic-Module-Name: com.e1c.v8codestyle.ql
Bundle-ActivationPolicy: lazy Bundle-ActivationPolicy: lazy
Bundle-Localization: plugin Bundle-Localization: plugin
@ -19,7 +20,7 @@ Import-Package: com._1c.g5.v8.bm.core;version="[8.0.0,9.0.0)",
com._1c.g5.v8.dt.mcore;version="[7.0.0,8.0.0)", com._1c.g5.v8.dt.mcore;version="[7.0.0,8.0.0)",
com._1c.g5.v8.dt.metadata.dbview;version="4.0.0", com._1c.g5.v8.dt.metadata.dbview;version="4.0.0",
com._1c.g5.v8.dt.metadata.mdclass;version="[9.0.0,10.0.0)", com._1c.g5.v8.dt.metadata.mdclass;version="[9.0.0,10.0.0)",
com._1c.g5.v8.dt.ql.model;version="[4.0.0,5.0.0)", com._1c.g5.v8.dt.ql.model;version="[5.0.0,6.0.0)",
com._1c.g5.v8.dt.ql.typesystem;version="5.0.0", com._1c.g5.v8.dt.ql.typesystem;version="5.0.0",
com._1c.g5.wiring;version="[2.2.0,3.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._1c.g5.wiring.binder;version="[1.1.0,2.0.0)",
@ -27,5 +28,4 @@ Import-Package: com._1c.g5.v8.bm.core;version="[8.0.0,9.0.0)",
com.e1c.g5.v8.dt.check.components;version="[2.0.0,3.0.0)", com.e1c.g5.v8.dt.check.components;version="[2.0.0,3.0.0)",
com.e1c.g5.v8.dt.check.settings;version="1.0.0", com.e1c.g5.v8.dt.check.settings;version="1.0.0",
com.e1c.g5.v8.dt.ql.check;version="[1.0.0,2.0.0)", com.e1c.g5.v8.dt.ql.check;version="[1.0.0,2.0.0)",
com.e1c.v8codestyle.check;version="[0.7.0,0.8.0)", com.e1c.v8codestyle.check;version="[0.7.0,0.8.0)"
com.google.inject;version="[5.0.1,6.0.0)"

View File

@ -82,7 +82,7 @@ public class TempTableHasIndex
return; return;
} }
if (selectQuery.getIndexes() == null || selectQuery.getIndexes().isEmpty()) if (selectQuery.getIndexSets().isEmpty())
{ {
AbstractQuerySchemaTable table = selectQuery.getPlacementTable(); AbstractQuerySchemaTable table = selectQuery.getPlacementTable();
String excludeTableNamePattern = parameters.getString(PARAMETER_EXCLUDE_TABLE_NAME_PATTERN); String excludeTableNamePattern = parameters.getString(PARAMETER_EXCLUDE_TABLE_NAME_PATTERN);

View File

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

View File

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

View File

@ -8,8 +8,9 @@ Bundle-Vendor: %providerName
Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.18.0,4.0.0)", 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)", org.eclipse.emf.ecore;bundle-version="[2.22.0,3.0.0)",
org.eclipse.xtext;bundle-version="[2.24.0,3.0.0)", org.eclipse.xtext;bundle-version="[2.24.0,3.0.0)",
org.eclipse.core.resources;bundle-version="[3.14.0,4.0.0)" org.eclipse.core.resources;bundle-version="[3.14.0,4.0.0)",
Bundle-RequiredExecutionEnvironment: JavaSE-11 com.google.inject;bundle-version="[7.0.0,8.0.0)"
Bundle-RequiredExecutionEnvironment: JavaSE-17
Automatic-Module-Name: com.e1c.v8codestyle.right Automatic-Module-Name: com.e1c.v8codestyle.right
Bundle-ActivationPolicy: lazy Bundle-ActivationPolicy: lazy
Bundle-Localization: plugin Bundle-Localization: plugin
@ -21,10 +22,10 @@ Import-Package: com._1c.g5.v8.bm.core;version="[8.0.0,9.0.0)",
com._1c.g5.v8.dt.common;version="[6.0.0,7.0.0)", com._1c.g5.v8.dt.common;version="[6.0.0,7.0.0)",
com._1c.g5.v8.dt.core.platform;version="[11.0.0,12.0.0)", com._1c.g5.v8.dt.core.platform;version="[11.0.0,12.0.0)",
com._1c.g5.v8.dt.mcore;version="[7.0.0,8.0.0)", com._1c.g5.v8.dt.mcore;version="[7.0.0,8.0.0)",
com._1c.g5.v8.dt.md;version="[19.0.0,20.0.0)", com._1c.g5.v8.dt.md;version="[20.0.0,21.0.0)",
com._1c.g5.v8.dt.metadata.mdclass;version="[9.0.0,10.0.0)", com._1c.g5.v8.dt.metadata.mdclass;version="[9.0.0,10.0.0)",
com._1c.g5.v8.dt.platform.version;version="[2.0.0,3.0.0)", com._1c.g5.v8.dt.platform.version;version="[2.0.0,3.0.0)",
com._1c.g5.v8.dt.rights;version="[6.1.0,7.0.0)", com._1c.g5.v8.dt.rights;version="[7.0.0,8.0.0)",
com._1c.g5.v8.dt.rights.model;version="[4.0.0,5.0.0)", com._1c.g5.v8.dt.rights.model;version="[4.0.0,5.0.0)",
com._1c.g5.v8.dt.rights.model.util;version="[6.0.0,7.0.0)", com._1c.g5.v8.dt.rights.model.util;version="[6.0.0,7.0.0)",
com._1c.g5.wiring;version="[2.2.0,3.0.0)", com._1c.g5.wiring;version="[2.2.0,3.0.0)",
@ -33,6 +34,5 @@ Import-Package: com._1c.g5.v8.bm.core;version="[8.0.0,9.0.0)",
com.e1c.g5.v8.dt.check.components;version="[2.0.0,3.0.0)", com.e1c.g5.v8.dt.check.components;version="[2.0.0,3.0.0)",
com.e1c.g5.v8.dt.check.context;version="[2.0.0,3.0.0)", com.e1c.g5.v8.dt.check.context;version="[2.0.0,3.0.0)",
com.e1c.g5.v8.dt.check.ext;version="[1.0.0,2.0.0)", com.e1c.g5.v8.dt.check.ext;version="[1.0.0,2.0.0)",
com.e1c.g5.v8.dt.check.settings;version="[3.0.0,4.0.0)", com.e1c.g5.v8.dt.check.settings;version="[4.0.0,5.0.0)",
com.e1c.v8codestyle.check;version="[0.7.0,0.8.0)", com.e1c.v8codestyle.check;version="[0.7.0,0.8.0)"
com.google.inject;version="[5.0.1,6.0.0)"

View File

@ -153,7 +153,7 @@ public class CorePlugin
{ {
try try
{ {
return Guice.createInjector(new ServiceModule(), new ExternalDependenciesModule(this)); return Guice.createInjector(new ExternalDependenciesModule(this));
} }
catch (Exception e) catch (Exception e)
{ {

View File

@ -20,7 +20,7 @@ import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IConfigurationProvider; import com._1c.g5.v8.dt.core.platform.IConfigurationProvider;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager; import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com._1c.g5.v8.dt.platform.version.IRuntimeVersionSupport; import com._1c.g5.v8.dt.rights.IRightInfosService;
import com._1c.g5.wiring.AbstractServiceAwareModule; import com._1c.g5.wiring.AbstractServiceAwareModule;
/** /**
@ -32,7 +32,6 @@ import com._1c.g5.wiring.AbstractServiceAwareModule;
public class ExternalDependenciesModule public class ExternalDependenciesModule
extends AbstractServiceAwareModule extends AbstractServiceAwareModule
{ {
/** /**
* @param plugin * @param plugin
*/ */
@ -50,9 +49,6 @@ public class ExternalDependenciesModule
bind(IBmRightsIndexManager.class).toService(); bind(IBmRightsIndexManager.class).toService();
bind(IBmEmfIndexManager.class).toService(); bind(IBmEmfIndexManager.class).toService();
bind(IConfigurationProvider.class).toService(); bind(IConfigurationProvider.class).toService();
bind(IRightInfosService.class).toService();
// XXX remove this when the IRightInfosService become OSGi service
bind(IRuntimeVersionSupport.class).toService();
} }
} }

View File

@ -1,89 +0,0 @@
/*******************************************************************************
* Copyright (C) 2022, 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.right;
import java.util.Collections;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
import com._1c.g5.v8.dt.core.platform.IConfigurationProvider;
import com._1c.g5.v8.dt.metadata.mdclass.Configuration;
import com._1c.g5.v8.dt.platform.version.IRuntimeVersionSupport;
import com._1c.g5.v8.dt.platform.version.Version;
import com._1c.g5.v8.dt.rights.IRightInfosService;
import com._1c.g5.v8.dt.rights.model.Right;
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.google.inject.Singleton;
/**
* This service is a correct wrapper of {@link IRightInfosService} to get correct data corresponding
* project runtime version.
* <br>
* FIXME Replace this service after refactoring of {@link IRightInfosService}.
*
* @author Dmitriy Marmyshev
*/
@Singleton
public class InternalRightInfosService
{
private final IRuntimeVersionSupport runtimeVersionSupport;
private final IConfigurationProvider configurationProvider;
private final Provider<IRightInfosService> rightInfosServiceProvider;
private final Map<Version, IRightInfosService> infos = new ConcurrentHashMap<>();
@Inject
public InternalRightInfosService(IRuntimeVersionSupport runtimeVersionSupport,
IConfigurationProvider configurationProvider, Provider<IRightInfosService> rightInfosServiceProvider)
{
this.runtimeVersionSupport = runtimeVersionSupport;
this.configurationProvider = configurationProvider;
this.rightInfosServiceProvider = rightInfosServiceProvider;
}
/**
* Gets the rights of some {@link EClass} of configuration metadata object that may have some rights.
*
* @param eClass the {@link EClass} of configuration metadata object that has some rights, cannot be {@code null}.
* @param context the context object of the configuration to determine platform version, cannot be {@code null}.
* @return the rights of the {@link EClass}
*/
public Set<Right> getEClassRights(EClass eClass, EObject context)
{
Version version = runtimeVersionSupport.getRuntimeVersionOrDefault(context, Version.LATEST);
IRightInfosService info = infos.computeIfAbsent(version, v -> {
IRightInfosService service = rightInfosServiceProvider.get();
Configuration configuration = configurationProvider.getConfiguration(context);
service.init(configuration);
return service;
});
if (info == null)
{
return Collections.emptySet();
}
return info.getEClassRights(eClass);
}
}

View File

@ -1,48 +0,0 @@
/*******************************************************************************
* Copyright (C) 2022, 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.right;
import com._1c.g5.v8.dt.rights.IRightInfosService;
import com.google.inject.AbstractModule;
/**
* The internal service module.
*
* @author Dmitriy Marmyshev
*/
public class ServiceModule
extends AbstractModule
{
private static final String SERVICE_CLASS = "com._1c.g5.v8.dt.internal.rights.RightsInfoService"; //$NON-NLS-1$
@SuppressWarnings("unchecked")
@Override
protected void configure()
{
// XXX remove this when the IRightInfosService become OSGi service
Class<? extends IRightInfosService> clazz = null;
try
{
clazz = (Class<? extends IRightInfosService>)Class.forName(SERVICE_CLASS, true,
IRightInfosService.class.getClassLoader());
}
catch (ClassNotFoundException e)
{
CorePlugin.logError(e);
}
// Here create new instance every time - this allows to bind it to specific platform Version
// See com.e1c.v8codestyle.internal.right.InternalRightInfosService for details.
bind(IRightInfosService.class).to(clazz);
}
}

View File

@ -19,10 +19,10 @@ import com._1c.g5.v8.dt.bm.index.rights.IBmRightsIndexManager;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager; import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com._1c.g5.v8.dt.rights.IRightInfosService;
import com._1c.g5.v8.dt.rights.model.util.RightName; import com._1c.g5.v8.dt.rights.model.util.RightName;
import com.e1c.v8codestyle.check.StandardCheckExtension; import com.e1c.v8codestyle.check.StandardCheckExtension;
import com.e1c.v8codestyle.internal.right.CorePlugin; import com.e1c.v8codestyle.internal.right.CorePlugin;
import com.e1c.v8codestyle.internal.right.InternalRightInfosService;
import com.google.inject.Inject; import com.google.inject.Inject;
/** /**
@ -46,7 +46,7 @@ public class RightActiveUsers
@Inject @Inject
public RightActiveUsers(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager, public RightActiveUsers(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager,
IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager,
IBmEmfIndexManager bmEmfIndexManager, InternalRightInfosService rightInfosService) IBmEmfIndexManager bmEmfIndexManager, IRightInfosService rightInfosService)
{ {
super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager, super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager,
rightInfosService); rightInfosService);

View File

@ -19,10 +19,10 @@ import com._1c.g5.v8.dt.bm.index.rights.IBmRightsIndexManager;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager; import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com._1c.g5.v8.dt.rights.IRightInfosService;
import com._1c.g5.v8.dt.rights.model.util.RightName; import com._1c.g5.v8.dt.rights.model.util.RightName;
import com.e1c.v8codestyle.check.StandardCheckExtension; import com.e1c.v8codestyle.check.StandardCheckExtension;
import com.e1c.v8codestyle.internal.right.CorePlugin; import com.e1c.v8codestyle.internal.right.CorePlugin;
import com.e1c.v8codestyle.internal.right.InternalRightInfosService;
import com.google.inject.Inject; import com.google.inject.Inject;
/** /**
@ -46,7 +46,7 @@ public class RightAdministration
@Inject @Inject
public RightAdministration(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager, public RightAdministration(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager,
IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager,
IBmEmfIndexManager bmEmfIndexManager, InternalRightInfosService rightInfosService) IBmEmfIndexManager bmEmfIndexManager, IRightInfosService rightInfosService)
{ {
super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager, super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager,
rightInfosService); rightInfosService);

View File

@ -19,10 +19,10 @@ import com._1c.g5.v8.dt.bm.index.rights.IBmRightsIndexManager;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager; import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com._1c.g5.v8.dt.rights.IRightInfosService;
import com._1c.g5.v8.dt.rights.model.util.RightName; import com._1c.g5.v8.dt.rights.model.util.RightName;
import com.e1c.v8codestyle.check.StandardCheckExtension; import com.e1c.v8codestyle.check.StandardCheckExtension;
import com.e1c.v8codestyle.internal.right.CorePlugin; import com.e1c.v8codestyle.internal.right.CorePlugin;
import com.e1c.v8codestyle.internal.right.InternalRightInfosService;
import com.google.inject.Inject; import com.google.inject.Inject;
/** /**
@ -46,7 +46,7 @@ public class RightAllFunctionsMode
@Inject @Inject
public RightAllFunctionsMode(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager, public RightAllFunctionsMode(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager,
IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager,
IBmEmfIndexManager bmEmfIndexManager, InternalRightInfosService rightInfosService) IBmEmfIndexManager bmEmfIndexManager, IRightInfosService rightInfosService)
{ {
super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager, super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager,
rightInfosService); rightInfosService);

View File

@ -19,10 +19,10 @@ import com._1c.g5.v8.dt.bm.index.rights.IBmRightsIndexManager;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager; import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com._1c.g5.v8.dt.rights.IRightInfosService;
import com._1c.g5.v8.dt.rights.model.util.RightName; import com._1c.g5.v8.dt.rights.model.util.RightName;
import com.e1c.v8codestyle.check.StandardCheckExtension; import com.e1c.v8codestyle.check.StandardCheckExtension;
import com.e1c.v8codestyle.internal.right.CorePlugin; import com.e1c.v8codestyle.internal.right.CorePlugin;
import com.e1c.v8codestyle.internal.right.InternalRightInfosService;
import com.google.inject.Inject; import com.google.inject.Inject;
/** /**
@ -46,7 +46,7 @@ public class RightConfigurationExtensionsAdministration
@Inject @Inject
public RightConfigurationExtensionsAdministration(IResourceLookup resourceLookup, public RightConfigurationExtensionsAdministration(IResourceLookup resourceLookup,
IV8ProjectManager v8ProjectManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager, IV8ProjectManager v8ProjectManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager,
IBmEmfIndexManager bmEmfIndexManager, InternalRightInfosService rightInfosService) IBmEmfIndexManager bmEmfIndexManager, IRightInfosService rightInfosService)
{ {
super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager, super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager,
rightInfosService); rightInfosService);

View File

@ -19,10 +19,10 @@ import com._1c.g5.v8.dt.bm.index.rights.IBmRightsIndexManager;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager; import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com._1c.g5.v8.dt.rights.IRightInfosService;
import com._1c.g5.v8.dt.rights.model.util.RightName; import com._1c.g5.v8.dt.rights.model.util.RightName;
import com.e1c.v8codestyle.check.StandardCheckExtension; import com.e1c.v8codestyle.check.StandardCheckExtension;
import com.e1c.v8codestyle.internal.right.CorePlugin; import com.e1c.v8codestyle.internal.right.CorePlugin;
import com.e1c.v8codestyle.internal.right.InternalRightInfosService;
import com.google.inject.Inject; import com.google.inject.Inject;
/** /**
@ -46,7 +46,7 @@ public class RightDataAdministration
@Inject @Inject
public RightDataAdministration(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager, public RightDataAdministration(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager,
IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager,
IBmEmfIndexManager bmEmfIndexManager, InternalRightInfosService rightInfosService) IBmEmfIndexManager bmEmfIndexManager, IRightInfosService rightInfosService)
{ {
super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager, super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager,
rightInfosService); rightInfosService);

View File

@ -19,10 +19,10 @@ import com._1c.g5.v8.dt.bm.index.rights.IBmRightsIndexManager;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager; import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com._1c.g5.v8.dt.rights.IRightInfosService;
import com._1c.g5.v8.dt.rights.model.util.RightName; import com._1c.g5.v8.dt.rights.model.util.RightName;
import com.e1c.v8codestyle.check.StandardCheckExtension; import com.e1c.v8codestyle.check.StandardCheckExtension;
import com.e1c.v8codestyle.internal.right.CorePlugin; import com.e1c.v8codestyle.internal.right.CorePlugin;
import com.e1c.v8codestyle.internal.right.InternalRightInfosService;
import com.google.inject.Inject; import com.google.inject.Inject;
/** /**
@ -46,7 +46,7 @@ public class RightDelete
@Inject @Inject
public RightDelete(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager, public RightDelete(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager,
IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager,
IBmEmfIndexManager bmEmfIndexManager, InternalRightInfosService rightInfosService) IBmEmfIndexManager bmEmfIndexManager, IRightInfosService rightInfosService)
{ {
super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager, super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager,
rightInfosService); rightInfosService);

View File

@ -19,10 +19,10 @@ import com._1c.g5.v8.dt.bm.index.rights.IBmRightsIndexManager;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager; import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com._1c.g5.v8.dt.rights.IRightInfosService;
import com._1c.g5.v8.dt.rights.model.util.RightName; import com._1c.g5.v8.dt.rights.model.util.RightName;
import com.e1c.v8codestyle.check.StandardCheckExtension; import com.e1c.v8codestyle.check.StandardCheckExtension;
import com.e1c.v8codestyle.internal.right.CorePlugin; import com.e1c.v8codestyle.internal.right.CorePlugin;
import com.e1c.v8codestyle.internal.right.InternalRightInfosService;
import com.google.inject.Inject; import com.google.inject.Inject;
/** /**
@ -48,7 +48,7 @@ public class RightExclusiveMode
@Inject @Inject
public RightExclusiveMode(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager, public RightExclusiveMode(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager,
IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager,
IBmEmfIndexManager bmEmfIndexManager, InternalRightInfosService rightInfosService) IBmEmfIndexManager bmEmfIndexManager, IRightInfosService rightInfosService)
{ {
super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager, super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager,
rightInfosService); rightInfosService);

View File

@ -18,10 +18,10 @@ import com._1c.g5.v8.dt.bm.index.rights.IBmRightsIndexManager;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager; import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com._1c.g5.v8.dt.rights.IRightInfosService;
import com._1c.g5.v8.dt.rights.model.util.RightName; import com._1c.g5.v8.dt.rights.model.util.RightName;
import com.e1c.v8codestyle.check.StandardCheckExtension; import com.e1c.v8codestyle.check.StandardCheckExtension;
import com.e1c.v8codestyle.internal.right.CorePlugin; import com.e1c.v8codestyle.internal.right.CorePlugin;
import com.e1c.v8codestyle.internal.right.InternalRightInfosService;
import com.google.inject.Inject; import com.google.inject.Inject;
/** /**
@ -42,7 +42,7 @@ public class RightInteractiveClearDeletionMarkPredefinedData
@Inject @Inject
public RightInteractiveClearDeletionMarkPredefinedData(IResourceLookup resourceLookup, public RightInteractiveClearDeletionMarkPredefinedData(IResourceLookup resourceLookup,
IV8ProjectManager v8ProjectManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager, IV8ProjectManager v8ProjectManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager,
IBmEmfIndexManager bmEmfIndexManager, InternalRightInfosService rightInfosService) IBmEmfIndexManager bmEmfIndexManager, IRightInfosService rightInfosService)
{ {
super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager, super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager,
rightInfosService); rightInfosService);

View File

@ -18,10 +18,10 @@ import com._1c.g5.v8.dt.bm.index.rights.IBmRightsIndexManager;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager; import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com._1c.g5.v8.dt.rights.IRightInfosService;
import com._1c.g5.v8.dt.rights.model.util.RightName; import com._1c.g5.v8.dt.rights.model.util.RightName;
import com.e1c.v8codestyle.check.StandardCheckExtension; import com.e1c.v8codestyle.check.StandardCheckExtension;
import com.e1c.v8codestyle.internal.right.CorePlugin; import com.e1c.v8codestyle.internal.right.CorePlugin;
import com.e1c.v8codestyle.internal.right.InternalRightInfosService;
import com.google.inject.Inject; import com.google.inject.Inject;
/** /**
@ -42,7 +42,7 @@ public class RightInteractiveDelete
@Inject @Inject
public RightInteractiveDelete(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager, public RightInteractiveDelete(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager,
IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager,
IBmEmfIndexManager bmEmfIndexManager, InternalRightInfosService rightInfosService) IBmEmfIndexManager bmEmfIndexManager, IRightInfosService rightInfosService)
{ {
super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager, super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager,
rightInfosService); rightInfosService);

View File

@ -18,10 +18,10 @@ import com._1c.g5.v8.dt.bm.index.rights.IBmRightsIndexManager;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager; import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com._1c.g5.v8.dt.rights.IRightInfosService;
import com._1c.g5.v8.dt.rights.model.util.RightName; import com._1c.g5.v8.dt.rights.model.util.RightName;
import com.e1c.v8codestyle.check.StandardCheckExtension; import com.e1c.v8codestyle.check.StandardCheckExtension;
import com.e1c.v8codestyle.internal.right.CorePlugin; import com.e1c.v8codestyle.internal.right.CorePlugin;
import com.e1c.v8codestyle.internal.right.InternalRightInfosService;
import com.google.inject.Inject; import com.google.inject.Inject;
/** /**
@ -42,7 +42,7 @@ public class RightInteractiveDeleteMarkedPredefinedData
@Inject @Inject
public RightInteractiveDeleteMarkedPredefinedData(IResourceLookup resourceLookup, public RightInteractiveDeleteMarkedPredefinedData(IResourceLookup resourceLookup,
IV8ProjectManager v8ProjectManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager, IV8ProjectManager v8ProjectManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager,
IBmEmfIndexManager bmEmfIndexManager, InternalRightInfosService rightInfosService) IBmEmfIndexManager bmEmfIndexManager, IRightInfosService rightInfosService)
{ {
super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager, super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager,
rightInfosService); rightInfosService);

View File

@ -18,10 +18,10 @@ import com._1c.g5.v8.dt.bm.index.rights.IBmRightsIndexManager;
import com._1c.g5.v8.dt.core.platform.IBmModelManager; import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IResourceLookup; import com._1c.g5.v8.dt.core.platform.IResourceLookup;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager; import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com._1c.g5.v8.dt.rights.IRightInfosService;
import com._1c.g5.v8.dt.rights.model.util.RightName; import com._1c.g5.v8.dt.rights.model.util.RightName;
import com.e1c.v8codestyle.check.StandardCheckExtension; import com.e1c.v8codestyle.check.StandardCheckExtension;
import com.e1c.v8codestyle.internal.right.CorePlugin; import com.e1c.v8codestyle.internal.right.CorePlugin;
import com.e1c.v8codestyle.internal.right.InternalRightInfosService;
import com.google.inject.Inject; import com.google.inject.Inject;
/** /**
@ -42,7 +42,7 @@ public class RightInteractiveDeletePredefinedData
@Inject @Inject
public RightInteractiveDeletePredefinedData(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager, public RightInteractiveDeletePredefinedData(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager,
IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager,
IBmEmfIndexManager bmEmfIndexManager, InternalRightInfosService rightInfosService) IBmEmfIndexManager bmEmfIndexManager, IRightInfosService rightInfosService)
{ {
super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager, super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager,
rightInfosService); rightInfosService);

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