From 4295610cd7e32671c8f083c6e8f26ff0ce60136c Mon Sep 17 00:00:00 2001 From: Dmitriy Marmyshev Date: Sat, 2 Mar 2024 18:43:00 -0800 Subject: [PATCH 1/5] Move sonar scan to JDK-17 --- .github/workflows/build.yml | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 992e84de..f6baab1a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -51,6 +51,13 @@ jobs: restore-keys: | ${{ 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 uses: actions/cache@v2 if: inputs.analyze @@ -59,19 +66,22 @@ jobs: key: ${{ runner.os }}-sonar restore-keys: ${{ runner.os }}-sonar - - name: Build with Maven + - name: Set up JDK 17 + 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 + if: inputs.analyze env: - # 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) || '' }}" GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any SONAR_TOKEN: ${{ secrets.sonar_token }} working-directory: ./ - run: | - 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 - + run: mvn compile org.sonarsource.scanner.maven:sonar-maven-plugin:sonar ${{ env.PR_NUMBER }} -Dtycho.localArtifacts=ignore -B -V + - name: Publish Test Report uses: scacap/action-surefire-report@v1 if: inputs.analyze @@ -96,7 +106,6 @@ jobs: with: name: jacoco path: | - ./**/target/jacoco.exec ./**/target/site/jacoco*/ - name: Upload test logs on failure From 6db3975ec622faeea2f1b8a786280248413d481b Mon Sep 17 00:00:00 2001 From: Dmitriy Marmyshev Date: Sat, 2 Mar 2024 11:09:09 -0800 Subject: [PATCH 2/5] =?UTF-8?q?=D0=9A=D0=BE=D0=BD=D1=82=D0=B5=D0=BA=D1=81?= =?UTF-8?q?=D1=82=D0=BD=D0=B0=D1=8F=20=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4?= =?UTF-8?q?=D0=B0=20=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=82=D0=B8=D1=80=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=B4=D0=BE=D0=BA=D1=83=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D1=82=D0=B8=D1=80=D1=83=D1=8E=D1=89=D0=B5=D0=B3?= =?UTF-8?q?=D0=BE=20=D0=BA=D0=BE=D0=BC=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=D1=80?= =?UTF-8?q?=D0=B8=D1=8F=20#1418?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + .../META-INF/MANIFEST.MF | 2 + .../plugin.properties | 2 + bundles/com.e1c.v8codestyle.bsl.ui/plugin.xml | 22 ++ .../plugin_ru.properties | 2 + .../bsl/ui/ExternalDependenciesModule.java | 4 + .../FormatDocCommentModuleEditorHandler.java | 235 ++++++++++++++++++ .../META-INF/MANIFEST.MF | 3 +- .../resources/doc-comment-format-result.bsl | 9 + .../resources/doc-comment-format.bsl | 11 + .../bsl/ui/itests/BslDocCommentViewTest.java | 19 +- ...rmatDocCommentModuleEditorHandlerTest.java | 173 +++++++++++++ 12 files changed, 478 insertions(+), 5 deletions(-) create mode 100644 bundles/com.e1c.v8codestyle.bsl.ui/src/com/e1c/v8codestyle/internal/bsl/ui/handlers/FormatDocCommentModuleEditorHandler.java create mode 100644 tests/com.e1c.v8codestyle.bsl.ui.itests/resources/doc-comment-format-result.bsl create mode 100644 tests/com.e1c.v8codestyle.bsl.ui.itests/resources/doc-comment-format.bsl create mode 100644 tests/com.e1c.v8codestyle.bsl.ui.itests/src/com/e1c/v8codestyle/bsl/ui/itests/handlers/FormatDocCommentModuleEditorHandlerTest.java diff --git a/CHANGELOG.md b/CHANGELOG.md index 3ac2c634..3829a500 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,7 @@ ### Прочие изменения +- Контекстная команда форматирования документирующего комментария в редакторе модуля #1418 ### Исправленные ошибки diff --git a/bundles/com.e1c.v8codestyle.bsl.ui/META-INF/MANIFEST.MF b/bundles/com.e1c.v8codestyle.bsl.ui/META-INF/MANIFEST.MF index 7e26d67d..d15137eb 100644 --- a/bundles/com.e1c.v8codestyle.bsl.ui/META-INF/MANIFEST.MF +++ b/bundles/com.e1c.v8codestyle.bsl.ui/META-INF/MANIFEST.MF @@ -22,6 +22,7 @@ Import-Package: com._1c.g5.ides.ui.texteditor.xtext.embedded;version="[6.0.0,7.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.documentation.comment;version="[4.0.0,5.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.services;version="[7.0.0,8.0.0)", com._1c.g5.v8.dt.bsl.ui;version="[9.0.0,10.0.0)", @@ -34,6 +35,7 @@ Import-Package: com._1c.g5.ides.ui.texteditor.xtext.embedded;version="[6.0.0,7.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.platform;version="[11.0.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.mcore;version="[7.0.0,8.0.0)", com._1c.g5.v8.dt.metadata.mdclass;version="[9.0.0,10.0.0)", diff --git a/bundles/com.e1c.v8codestyle.bsl.ui/plugin.properties b/bundles/com.e1c.v8codestyle.bsl.ui/plugin.properties index 030d1477..125741e3 100644 --- a/bundles/com.e1c.v8codestyle.bsl.ui/plugin.properties +++ b/bundles/com.e1c.v8codestyle.bsl.ui/plugin.properties @@ -15,6 +15,8 @@ command.enableStrictTypes.mnemonic = E command.enableStrictTypes.name = Enable @strict-types in modules +command.formatDocComment.mnemonic = F +command.formatDocComment.name = Format Method Documentation Comment menu.label = Source diff --git a/bundles/com.e1c.v8codestyle.bsl.ui/plugin.xml b/bundles/com.e1c.v8codestyle.bsl.ui/plugin.xml index 9f0c599b..e786d215 100644 --- a/bundles/com.e1c.v8codestyle.bsl.ui/plugin.xml +++ b/bundles/com.e1c.v8codestyle.bsl.ui/plugin.xml @@ -237,6 +237,10 @@ id="com.e1c.v8codestyle.bsl.ui.commands.addStrictTypesAnnotationCommand" name="%command.enableStrictTypes.name"> + + @@ -330,6 +334,16 @@ + + + + + + @@ -343,6 +357,14 @@ definitionId="com._1c.g5.v8.dt.bsl.Bsl.Editor.editable"> + + + + + diff --git a/bundles/com.e1c.v8codestyle.bsl.ui/plugin_ru.properties b/bundles/com.e1c.v8codestyle.bsl.ui/plugin_ru.properties index a8dc3db0..4c929945 100644 --- a/bundles/com.e1c.v8codestyle.bsl.ui/plugin_ru.properties +++ b/bundles/com.e1c.v8codestyle.bsl.ui/plugin_ru.properties @@ -14,6 +14,8 @@ command.enableStrictTypes.mnemonic = В command.enableStrictTypes.name = Включить строгую типизацию (@strict-types) в модулях +command.formatDocComment.mnemonic = Ф +command.formatDocComment.name = Форматировать документирующий комментарий метода menu.label = Исходники diff --git a/bundles/com.e1c.v8codestyle.bsl.ui/src/com/e1c/v8codestyle/internal/bsl/ui/ExternalDependenciesModule.java b/bundles/com.e1c.v8codestyle.bsl.ui/src/com/e1c/v8codestyle/internal/bsl/ui/ExternalDependenciesModule.java index 9e8deabe..6ccaedf7 100644 --- a/bundles/com.e1c.v8codestyle.bsl.ui/src/com/e1c/v8codestyle/internal/bsl/ui/ExternalDependenciesModule.java +++ b/bundles/com.e1c.v8codestyle.bsl.ui/src/com/e1c/v8codestyle/internal/bsl/ui/ExternalDependenciesModule.java @@ -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.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.model.IModelEditingSupport; import com._1c.g5.v8.dt.core.platform.IResourceLookup; 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.e1c.g5.v8.dt.check.qfix.IFixRepository; import com.e1c.v8codestyle.bsl.IModuleStructureProvider; @@ -59,6 +61,8 @@ class ExternalDependenciesModule bind(BslMultiLineCommentDocumentationProvider.class) .toProvider(() -> rsp.get(BslMultiLineCommentDocumentationProvider.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 bind(IModuleStructureProvider.class).toService(); diff --git a/bundles/com.e1c.v8codestyle.bsl.ui/src/com/e1c/v8codestyle/internal/bsl/ui/handlers/FormatDocCommentModuleEditorHandler.java b/bundles/com.e1c.v8codestyle.bsl.ui/src/com/e1c/v8codestyle/internal/bsl/ui/handlers/FormatDocCommentModuleEditorHandler.java new file mode 100644 index 00000000..de5cc242 --- /dev/null +++ b/bundles/com.e1c.v8codestyle.bsl.ui/src/com/e1c/v8codestyle/internal/bsl/ui/handlers/FormatDocCommentModuleEditorHandler.java @@ -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 content = + document.readOnly(new CancelableUnitOfWork, XtextResource>() + { + @Override + public Triple 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 getFormatedDocComment(Module module, ITextViewer viewer) + { + if (!modelEditingSupport.canEdit(module, EditingMode.DIRECT)) + { + return null; + } + + Method method = getNearestMethod(module, (viewer.getSelectedRange()).x); + if (method != null) + { + List 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, methodOffset, viewer.getDocument()); + 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()); + } + +} diff --git a/tests/com.e1c.v8codestyle.bsl.ui.itests/META-INF/MANIFEST.MF b/tests/com.e1c.v8codestyle.bsl.ui.itests/META-INF/MANIFEST.MF index c1badea2..c8d818f0 100644 --- a/tests/com.e1c.v8codestyle.bsl.ui.itests/META-INF/MANIFEST.MF +++ b/tests/com.e1c.v8codestyle.bsl.ui.itests/META-INF/MANIFEST.MF @@ -12,4 +12,5 @@ Import-Package: com._1c.g5.v8.dt.bsl.ui.editor;version="[9.0.0,10.0.0)", com._1c.g5.v8.dt.testing;version="[3.1.0,4.0.0)", com._1c.g5.v8.dt.ui.util;version="[7.0.0,8.0.0)", org.junit;version="[4.13.0,5.0.0)" -Require-Bundle: org.eclipse.ui.forms;bundle-version="[3.11.0,4.0.0)" +Require-Bundle: org.eclipse.ui.forms;bundle-version="[3.11.0,4.0.0)", + org.eclipse.core.expressions;bundle-version="[3.8.0,4.0.0)" diff --git a/tests/com.e1c.v8codestyle.bsl.ui.itests/resources/doc-comment-format-result.bsl b/tests/com.e1c.v8codestyle.bsl.ui.itests/resources/doc-comment-format-result.bsl new file mode 100644 index 00000000..bf478940 --- /dev/null +++ b/tests/com.e1c.v8codestyle.bsl.ui.itests/resources/doc-comment-format-result.bsl @@ -0,0 +1,9 @@ + +// Method description +// +// Parameters: +// Parameters - Structure - : +// * Key1 - has not type for key +Procedure Test(Parameters) Export + // empty +EndProcedure diff --git a/tests/com.e1c.v8codestyle.bsl.ui.itests/resources/doc-comment-format.bsl b/tests/com.e1c.v8codestyle.bsl.ui.itests/resources/doc-comment-format.bsl new file mode 100644 index 00000000..c4a64fd1 --- /dev/null +++ b/tests/com.e1c.v8codestyle.bsl.ui.itests/resources/doc-comment-format.bsl @@ -0,0 +1,11 @@ + +// Method description +// +// +// +// Parameters: +// Parameters - Structure: +// * Key1 - has not type for key +Procedure Test(Parameters) Export + // empty +EndProcedure diff --git a/tests/com.e1c.v8codestyle.bsl.ui.itests/src/com/e1c/v8codestyle/bsl/ui/itests/BslDocCommentViewTest.java b/tests/com.e1c.v8codestyle.bsl.ui.itests/src/com/e1c/v8codestyle/bsl/ui/itests/BslDocCommentViewTest.java index eb15b9e0..5f38af77 100644 --- a/tests/com.e1c.v8codestyle.bsl.ui.itests/src/com/e1c/v8codestyle/bsl/ui/itests/BslDocCommentViewTest.java +++ b/tests/com.e1c.v8codestyle.bsl.ui.itests/src/com/e1c/v8codestyle/bsl/ui/itests/BslDocCommentViewTest.java @@ -74,6 +74,16 @@ public class BslDocCommentViewTest @Before public void setUp() throws CoreException { + IIntroPart introPart = PlatformUI.getWorkbench().getIntroManager().getIntro(); + PlatformUI.getWorkbench().getIntroManager().closeIntro(introPart); + + boolean closed = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().closeAllEditors(false); + assertTrue(closed); + Display display = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().getDisplay(); + while (!display.isDisposed() && display.readAndDispatch()) + { + // do it + } project = testingWorkspace.getProject(PROJECT_NAME); @@ -82,16 +92,17 @@ public class BslDocCommentViewTest testingWorkspace.cleanUpWorkspace(); project = this.testingWorkspace.setUpProject(PROJECT_NAME, getClass()); } - PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().closeAllEditors(false); - - IIntroPart introPart = PlatformUI.getWorkbench().getIntroManager().getIntro(); - PlatformUI.getWorkbench().getIntroManager().closeIntro(introPart); } @After public void shutDown() { PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().closeAllEditors(false); + Display display = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().getDisplay(); + while (!display.isDisposed() && display.readAndDispatch()) + { + // do it + } } /** diff --git a/tests/com.e1c.v8codestyle.bsl.ui.itests/src/com/e1c/v8codestyle/bsl/ui/itests/handlers/FormatDocCommentModuleEditorHandlerTest.java b/tests/com.e1c.v8codestyle.bsl.ui.itests/src/com/e1c/v8codestyle/bsl/ui/itests/handlers/FormatDocCommentModuleEditorHandlerTest.java new file mode 100644 index 00000000..e1d72509 --- /dev/null +++ b/tests/com.e1c.v8codestyle.bsl.ui.itests/src/com/e1c/v8codestyle/bsl/ui/itests/handlers/FormatDocCommentModuleEditorHandlerTest.java @@ -0,0 +1,173 @@ +/******************************************************************************* + * 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.bsl.ui.itests.handlers; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +import java.io.InputStream; +import java.nio.charset.StandardCharsets; + +import org.eclipse.core.commands.Command; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.jface.text.TextSelection; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Event; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.commands.ICommandService; +import org.eclipse.ui.forms.editor.FormEditor; +import org.eclipse.ui.handlers.IHandlerService; +import org.eclipse.ui.intro.IIntroPart; +import org.junit.After; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; + +import com._1c.g5.v8.dt.bsl.ui.editor.BslXtextEditor; +import com._1c.g5.v8.dt.testing.TestingWorkspace; +import com._1c.g5.v8.dt.ui.util.OpenHelper; +import com.e1c.v8codestyle.internal.bsl.ui.handlers.FormatDocCommentModuleEditorHandler; + +/** + * Test {@link FormatDocCommentModuleEditorHandler} + * + * @author Dmitriy Marmyshev + */ +public class FormatDocCommentModuleEditorHandlerTest +{ + + private static final String COMMAND_ID = "com.e1c.v8codestyle.bsl.ui.commands.formatDocCommentCommand"; + + private static final String PROJECT_NAME = "CommonModule"; + + private static final String COMMON_MODULE_FILE_NAME = "/src/CommonModules/CommonModule/Module.bsl"; + + @Rule + public TestingWorkspace testingWorkspace = new TestingWorkspace(true, false); + + protected static final String FOLDER_RESOURCE = "/resources/"; + + private IProject project; + + private OpenHelper openHelper = new OpenHelper(); + + private ICommandService commandService; + private IHandlerService handlerService; + + @Before + public void setUp() throws CoreException + { + commandService = PlatformUI.getWorkbench().getService(ICommandService.class); + handlerService = PlatformUI.getWorkbench().getService(IHandlerService.class); + + IIntroPart introPart = PlatformUI.getWorkbench().getIntroManager().getIntro(); + PlatformUI.getWorkbench().getIntroManager().closeIntro(introPart); + + boolean closed = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().closeAllEditors(false); + assertTrue(closed); + Display display = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().getDisplay(); + while (!display.isDisposed() && display.readAndDispatch()) + { + // do it + } + + project = testingWorkspace.getProject(PROJECT_NAME); + + if (!project.exists() || !project.isAccessible()) + { + testingWorkspace.cleanUpWorkspace(); + project = this.testingWorkspace.setUpProject(PROJECT_NAME, getClass()); + } + } + + @After + public void shutDown() + { + PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().closeAllEditors(false); + Display display = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().getDisplay(); + while (!display.isDisposed() && display.readAndDispatch()) + { + // do it + } + } + + /** + * Test format of doc comment. + * + * @throws Exception the exception + */ + @Test + public void testFormatDocComment() throws Exception + { + updateModule(FOLDER_RESOURCE + "doc-comment-format.bsl"); + + IFile file = project.getFile(COMMON_MODULE_FILE_NAME); + + ISelection selection = new TextSelection(14, 1); + IEditorPart fEditor = openHelper.openEditor(file, selection); + assertTrue(fEditor instanceof FormEditor); + + IEditorPart editor = ((FormEditor)fEditor).getActiveEditor(); + assertTrue(editor instanceof BslXtextEditor); + + + PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().activate(editor); + + BslXtextEditor bslEditor = (BslXtextEditor)editor; + String expected = getResourceText(FOLDER_RESOURCE + "doc-comment-format.bsl"); + assertEquals(expected, bslEditor.getDocument().get()); + + Command command = commandService.getCommand(COMMAND_ID); + assertNotNull(command); + + ExecutionEvent executionEvent = handlerService.createExecutionEvent(command, new Event()); + assertNotNull(executionEvent); + + command.executeWithChecks(executionEvent); + + expected = getResourceText(FOLDER_RESOURCE + "doc-comment-format-result.bsl"); + assertEquals(expected, bslEditor.getDocument().get()); + } + + private String getResourceText(String pathToResource) throws Exception + { + try (InputStream in = getClass().getResourceAsStream(pathToResource)) + { + return new String(in.readAllBytes(), StandardCharsets.UTF_8); + } + } + + private void updateModule(String pathToResource) throws Exception + { + IFile file = project.getFile(COMMON_MODULE_FILE_NAME); + try (InputStream in = getClass().getResourceAsStream(pathToResource)) + { + if (file.exists()) + { + file.setContents(in, true, true, new NullProgressMonitor()); + } + else + { + file.create(in, true, new NullProgressMonitor()); + } + } + testingWorkspace.waitForBuildCompletion(); + } +} From ea51a58cf887c4c7587da799f69e0d2080aed864 Mon Sep 17 00:00:00 2001 From: Nikita Kuznetsov Date: Tue, 26 Mar 2024 14:01:37 +0300 Subject: [PATCH 3/5] =?UTF-8?q?[G5V8DT-24551]=20=D0=9D=D0=B5=D0=B2=D0=B5?= =?UTF-8?q?=D1=80=D0=BD=D0=BE=D0=B5=20=D1=84=D0=BE=D1=80=D0=BC=D0=B8=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=B7=D0=B0=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D1=81=D0=B0=20=D0=B2=20=D0=B4=D0=B8=D0=BD=D0=B0=D0=BC?= =?UTF-8?q?=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=BE=D0=BC=20=D1=81=D0=BF=D0=B8?= =?UTF-8?q?=D1=81=D0=BA=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Versioning --- bundles/com.e1c.v8codestyle.form/META-INF/MANIFEST.MF | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bundles/com.e1c.v8codestyle.form/META-INF/MANIFEST.MF b/bundles/com.e1c.v8codestyle.form/META-INF/MANIFEST.MF index 39f6e067..5277a1e9 100644 --- a/bundles/com.e1c.v8codestyle.form/META-INF/MANIFEST.MF +++ b/bundles/com.e1c.v8codestyle.form/META-INF/MANIFEST.MF @@ -24,7 +24,7 @@ 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.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.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.mcore;version="[7.0.0,8.0.0)", com._1c.g5.v8.dt.metadata;version="[5.0.0,6.0.0)", From 9166ae37a2e2c2176b867045e8d8910f3b0554f9 Mon Sep 17 00:00:00 2001 From: traggerW <143193763+traggerW@users.noreply.github.com> Date: Tue, 26 Mar 2024 19:17:16 +0300 Subject: [PATCH 4/5] =?UTF-8?q?G5V8DT-24951=20=D0=9D=D0=B5=20=D1=80=D0=B0?= =?UTF-8?q?=D0=B1=D0=BE=D1=82=D0=B0=D0=B5=D1=82=20=D0=B0=D0=B2=D1=82=D0=BE?= =?UTF-8?q?=D1=81=D0=BE=D1=80=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=B2=D0=BB=D0=BE=D0=B6=D0=B5=D0=BD=D0=BD=D1=8B=D1=85=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=B4=D1=81=D0=B8=D1=81=D1=82=D0=B5=D0=BC=20(#1434)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * G5V8DT-24951 Не работает автосортировка вложенных подсистем * G5V8DT-24951 Не работает автосортировка вложенных подсистем * G5V8DT-24951 Не работает автосортировка вложенных подсистем * G5V8DT-24951 Не работает автосортировка вложенных подсистем * G5V8DT-24951 Не работает автосортировка вложенных подсистем * G5V8DT-24951 Не работает автосортировка вложенных подсистем * G5V8DT-24951 Не работает автосортировка вложенных подсистем * G5V8DT-24951 Не работает автосортировка вложенных подсистем * G5V8DT-24951 Не работает автосортировка вложенных подсистем --------- Co-authored-by: traggerW --- CHANGELOG.md | 1 + .../internal/autosort/SortService.java | 24 ++++- .../META-INF/MANIFEST.MF | 3 +- .../autosort/itests/SortSubsystemsTest.java | 101 ++++++++++++++++++ .../workspace/SubsystemsAutoSort/.project | 18 ++++ .../com.e1c.v8codestyle.autosort.prefs | 2 + .../.settings/com.e1c.v8codestyle.prefs | 3 + .../org.eclipse.core.resources.prefs | 2 + .../SubsystemsAutoSort/DT-INF/PROJECT.PMF | 2 + .../src/Configuration/CommandInterface.cmi | 2 + .../src/Configuration/Configuration.mdo | 42 ++++++++ .../MainSectionCommandInterface.cmi | 2 + .../Subsystems/Subsystem/CommandInterface.cmi | 2 + .../src/Subsystems/Subsystem/Subsystem.mdo | 12 +++ .../Subsystem1/CommandInterface.cmi | 2 + .../Subsystems/Subsystem1/Subsystem1.mdo | 11 ++ .../Subsystem2/CommandInterface.cmi | 2 + .../Subsystems/Subsystem2/Subsystem2.mdo | 11 ++ 18 files changed, 240 insertions(+), 2 deletions(-) create mode 100644 tests/com.e1c.v8codestyle.autosort.itests/src/com/e1c/v8codestyle/autosort/itests/SortSubsystemsTest.java create mode 100644 tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/.project create mode 100644 tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/.settings/com.e1c.v8codestyle.autosort.prefs create mode 100644 tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/.settings/com.e1c.v8codestyle.prefs create mode 100644 tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/.settings/org.eclipse.core.resources.prefs create mode 100644 tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/DT-INF/PROJECT.PMF create mode 100644 tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/src/Configuration/CommandInterface.cmi create mode 100644 tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/src/Configuration/Configuration.mdo create mode 100644 tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/src/Configuration/MainSectionCommandInterface.cmi create mode 100644 tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/src/Subsystems/Subsystem/CommandInterface.cmi create mode 100644 tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/src/Subsystems/Subsystem/Subsystem.mdo create mode 100644 tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/src/Subsystems/Subsystem/Subsystems/Subsystem1/CommandInterface.cmi create mode 100644 tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/src/Subsystems/Subsystem/Subsystems/Subsystem1/Subsystem1.mdo create mode 100644 tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/src/Subsystems/Subsystem/Subsystems/Subsystem2/CommandInterface.cmi create mode 100644 tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/src/Subsystems/Subsystem/Subsystems/Subsystem2/Subsystem2.mdo diff --git a/CHANGELOG.md b/CHANGELOG.md index 3829a500..d93ce145 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -312,6 +312,7 @@ - Исправлен расчета типов возвращаемых значений функций с вызовом сервера - Испрвление проверки типа локальной переменной в variable-value-type - Проверка типов invocation-parameter-type-intersect при вызове метода, если существуют документирующие комментарии использует только декларированные типы +- Исправлена ошибка, при которой не выполнялась автосортировка вложенных подсистем при включенной автосортировке верхнеуровневых объектов метаданных ## 0.1.0 diff --git a/bundles/com.e1c.v8codestyle.autosort/src/com/e1c/v8codestyle/internal/autosort/SortService.java b/bundles/com.e1c.v8codestyle.autosort/src/com/e1c/v8codestyle/internal/autosort/SortService.java index 70e5a53c..14c54593 100644 --- a/bundles/com.e1c.v8codestyle.autosort/src/com/e1c/v8codestyle/internal/autosort/SortService.java +++ b/bundles/com.e1c.v8codestyle.autosort/src/com/e1c/v8codestyle/internal/autosort/SortService.java @@ -467,6 +467,23 @@ public class SortService } } + private void appendSubordinateSubsystems(Collection result, IBmTransaction transaction) + { + for (Iterator 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> getSubordinateListsToSort(Iterator eClassIterator, IProject project) { @@ -474,7 +491,8 @@ public class SortService while (eClassIterator.hasNext()) { 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; } @@ -516,6 +534,10 @@ public class SortService { result.add(new SortItem(CONFIGURATION_FQN, feature, sorter)); } + if (feature.equals(MdClassPackage.Literals.CONFIGURATION__SUBSYSTEMS)) + { + appendSubordinateSubsystems(result, transaction); + } } } } diff --git a/tests/com.e1c.v8codestyle.autosort.itests/META-INF/MANIFEST.MF b/tests/com.e1c.v8codestyle.autosort.itests/META-INF/MANIFEST.MF index 050d2b4e..a37bfe5a 100644 --- a/tests/com.e1c.v8codestyle.autosort.itests/META-INF/MANIFEST.MF +++ b/tests/com.e1c.v8codestyle.autosort.itests/META-INF/MANIFEST.MF @@ -8,6 +8,7 @@ Fragment-Host: com.e1c.v8codestyle.autosort;bundle-version="[0.7.0,0.8.0)" Automatic-Module-Name: com.e1c.v8codestyle.autosort.itests Bundle-RequiredExecutionEnvironment: JavaSE-11 Bundle-Localization: fragment -Import-Package: com._1c.g5.v8.dt.testing;version="[3.1.0,4.0.0)", +Import-Package: com._1c.g5.v8.dt.platform.version;version="[2.14.0,3.0.0)", + com._1c.g5.v8.dt.testing;version="[3.1.0,4.0.0)", org.junit;version="[4.13.0,5.0.0)", org.junit.runner;version="[4.13.0,5.0.0)" diff --git a/tests/com.e1c.v8codestyle.autosort.itests/src/com/e1c/v8codestyle/autosort/itests/SortSubsystemsTest.java b/tests/com.e1c.v8codestyle.autosort.itests/src/com/e1c/v8codestyle/autosort/itests/SortSubsystemsTest.java new file mode 100644 index 00000000..aed3e4d4 --- /dev/null +++ b/tests/com.e1c.v8codestyle.autosort.itests/src/com/e1c/v8codestyle/autosort/itests/SortSubsystemsTest.java @@ -0,0 +1,101 @@ +/******************************************************************************* + * 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.autosort.itests; + +import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.CONFIGURATION; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +import org.eclipse.core.resources.IProject; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.junit.ClassRule; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +import com._1c.g5.v8.bm.core.IBmObject; +import com._1c.g5.v8.bm.core.IBmTransaction; +import com._1c.g5.v8.bm.integration.AbstractBmTask; +import com._1c.g5.v8.bm.integration.IBmModel; +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.IDtProjectManager; +import com._1c.g5.v8.dt.metadata.mdclass.Configuration; +import com._1c.g5.v8.dt.platform.version.Version; +import com._1c.g5.v8.dt.testing.GuiceModules; +import com._1c.g5.v8.dt.testing.JUnitGuiceRunner; +import com._1c.g5.v8.dt.testing.TestingPlatformSupport; +import com._1c.g5.v8.dt.testing.TestingWorkspace; +import com.e1c.v8codestyle.autosort.ISortService; +import com.google.inject.Inject; + +/** + * Test ensuring subsystems are sorted properly when top metadata sorting enabled. + * + * @author Tihon Tihonin + */ +@RunWith(JUnitGuiceRunner.class) +@GuiceModules(modules = { ExternalDependenciesModule.class }) +public class SortSubsystemsTest +{ + private static final String PROJECT_NAME = "SubsystemsAutoSort"; + + @Rule + public TestingWorkspace testingWorkspace = new TestingWorkspace(true, true); + + @ClassRule + public static final TestingPlatformSupport testingPlatformSupport = new TestingPlatformSupport(Version.V8_3_19); + + @Inject + private ISortService sortService; + + @Inject + public IDtProjectManager dtProjectManager; + + @Inject + public IBmModelManager bmModelManager; + + @Test + public void testSortSubsystems() throws Exception + { + IProject project = testingWorkspace.setUpProject(PROJECT_NAME, getClass()); + assertNotNull(project); + IDtProject dtProject = dtProjectManager.getDtProject(project); + assertNotNull(dtProject); + + IBmObject object = getTopObjectByFqn(CONFIGURATION.getName(), dtProject); + Configuration configuration = (Configuration)object; + + assertEquals("Subsystem2", configuration.getSubsystems().get(0).getSubsystems().get(0).getName()); + assertEquals("Subsystem1", configuration.getSubsystems().get(0).getSubsystems().get(1).getName()); + + sortService.sortAllMetadata(dtProject, new NullProgressMonitor()); + + assertEquals("Subsystem1", configuration.getSubsystems().get(0).getSubsystems().get(0).getName()); + assertEquals("Subsystem2", configuration.getSubsystems().get(0).getSubsystems().get(1).getName()); + } + + protected IBmObject getTopObjectByFqn(final String fqn, IDtProject dtProject) + { + IBmModel model = bmModelManager.getModel(dtProject); + return model.executeReadonlyTask(new AbstractBmTask("GetObject") + { + @Override + public IBmObject execute(IBmTransaction transaction, IProgressMonitor progressMonitor) + { + return transaction.getTopObjectByFqn(fqn); + } + }); + } +} diff --git a/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/.project b/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/.project new file mode 100644 index 00000000..a04e0788 --- /dev/null +++ b/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/.project @@ -0,0 +1,18 @@ + + + SubsystemsAutoSort + + + + + + org.eclipse.xtext.ui.shared.xtextBuilder + + + + + + org.eclipse.xtext.ui.shared.xtextNature + com._1c.g5.v8.dt.core.V8ConfigurationNature + + diff --git a/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/.settings/com.e1c.v8codestyle.autosort.prefs b/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/.settings/com.e1c.v8codestyle.autosort.prefs new file mode 100644 index 00000000..23b06250 --- /dev/null +++ b/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/.settings/com.e1c.v8codestyle.autosort.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +topObjects=true diff --git a/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/.settings/com.e1c.v8codestyle.prefs b/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/.settings/com.e1c.v8codestyle.prefs new file mode 100644 index 00000000..9e9b57e5 --- /dev/null +++ b/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/.settings/com.e1c.v8codestyle.prefs @@ -0,0 +1,3 @@ +commonChecks=true +eclipse.preferences.version=1 +standardChecks=true diff --git a/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/.settings/org.eclipse.core.resources.prefs b/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000..99f26c02 --- /dev/null +++ b/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/DT-INF/PROJECT.PMF b/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/DT-INF/PROJECT.PMF new file mode 100644 index 00000000..6835f1cd --- /dev/null +++ b/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/DT-INF/PROJECT.PMF @@ -0,0 +1,2 @@ +Manifest-Version: 1.0 +Runtime-Version: 8.3.19 diff --git a/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/src/Configuration/CommandInterface.cmi b/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/src/Configuration/CommandInterface.cmi new file mode 100644 index 00000000..0cf6de8a --- /dev/null +++ b/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/src/Configuration/CommandInterface.cmi @@ -0,0 +1,2 @@ + + diff --git a/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/src/Configuration/Configuration.mdo b/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/src/Configuration/Configuration.mdo new file mode 100644 index 00000000..01bbe7a3 --- /dev/null +++ b/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/src/Configuration/Configuration.mdo @@ -0,0 +1,42 @@ + + + SubsystemsAutoSort + + en + Subsystems auto sort + + + + + + + + + 8.3.19 + ManagedApplication + PersonalComputer + + + true + + + OSBackup + true + + + Language.English + Managed + NotAutoFree + DontUse + DontUse + 8.3.19 + + English + + en + English + + en + + Subsystem.Subsystem + diff --git a/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/src/Configuration/MainSectionCommandInterface.cmi b/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/src/Configuration/MainSectionCommandInterface.cmi new file mode 100644 index 00000000..0cf6de8a --- /dev/null +++ b/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/src/Configuration/MainSectionCommandInterface.cmi @@ -0,0 +1,2 @@ + + diff --git a/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/src/Subsystems/Subsystem/CommandInterface.cmi b/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/src/Subsystems/Subsystem/CommandInterface.cmi new file mode 100644 index 00000000..0cf6de8a --- /dev/null +++ b/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/src/Subsystems/Subsystem/CommandInterface.cmi @@ -0,0 +1,2 @@ + + diff --git a/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/src/Subsystems/Subsystem/Subsystem.mdo b/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/src/Subsystems/Subsystem/Subsystem.mdo new file mode 100644 index 00000000..5e4e5d0e --- /dev/null +++ b/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/src/Subsystems/Subsystem/Subsystem.mdo @@ -0,0 +1,12 @@ + + + Subsystem + + en + Subsystem + + true + true + Subsystem2 + Subsystem1 + diff --git a/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/src/Subsystems/Subsystem/Subsystems/Subsystem1/CommandInterface.cmi b/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/src/Subsystems/Subsystem/Subsystems/Subsystem1/CommandInterface.cmi new file mode 100644 index 00000000..0cf6de8a --- /dev/null +++ b/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/src/Subsystems/Subsystem/Subsystems/Subsystem1/CommandInterface.cmi @@ -0,0 +1,2 @@ + + diff --git a/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/src/Subsystems/Subsystem/Subsystems/Subsystem1/Subsystem1.mdo b/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/src/Subsystems/Subsystem/Subsystems/Subsystem1/Subsystem1.mdo new file mode 100644 index 00000000..3c0a817d --- /dev/null +++ b/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/src/Subsystems/Subsystem/Subsystems/Subsystem1/Subsystem1.mdo @@ -0,0 +1,11 @@ + + + Subsystem1 + + en + Subsystem1 + + true + true + Subsystem.Subsystem + diff --git a/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/src/Subsystems/Subsystem/Subsystems/Subsystem2/CommandInterface.cmi b/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/src/Subsystems/Subsystem/Subsystems/Subsystem2/CommandInterface.cmi new file mode 100644 index 00000000..0cf6de8a --- /dev/null +++ b/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/src/Subsystems/Subsystem/Subsystems/Subsystem2/CommandInterface.cmi @@ -0,0 +1,2 @@ + + diff --git a/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/src/Subsystems/Subsystem/Subsystems/Subsystem2/Subsystem2.mdo b/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/src/Subsystems/Subsystem/Subsystems/Subsystem2/Subsystem2.mdo new file mode 100644 index 00000000..f68805aa --- /dev/null +++ b/tests/com.e1c.v8codestyle.autosort.itests/workspace/SubsystemsAutoSort/src/Subsystems/Subsystem/Subsystems/Subsystem2/Subsystem2.mdo @@ -0,0 +1,11 @@ + + + Subsystem2 + + en + Subsystem2 + + true + true + Subsystem.Subsystem + From 7087abc5caa32511e9cac21b15ae37ba73626e34 Mon Sep 17 00:00:00 2001 From: Dmitriy Marmyshev Date: Wed, 10 Apr 2024 00:30:22 -0700 Subject: [PATCH 5/5] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D1=85=D0=BE=D0=B4?= =?UTF-8?q?=20=D0=BD=D0=B0=20EDT=202023.3=20(#1386)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * G5V8DT-24027. Сортировка объектов и прав в ролях * G5V8DT-24027. Versions up * G5V8DT-24027. Dependence fix * G5V8DT-24189 При добавлении обработчика события или команды автоматически размещать его в соответствующей области * Fix target platform to 2023.3 * G5V8DT-24189 При добавлении обработчика события или команды автоматически размещать его в соответствующей области Copyright text change and style changes * G5V8DT-24189 При добавлении обработчика события или команды автоматически размещать его в соответствующей области Minor changes * G5V8DT-24189 При добавлении обработчика события или команды автоматически размещать его в соответствующей области * G5V8DT-24189 При добавлении обработчика события или команды автоматически размещать его в соответствующей области Rename extension point Versioning * Поднятие версий dt.validation.marker * G5V8DT-24189_variant * При добавлении обработчика события или команды автоматически размещать его в соответствующей области Another refactoring * G5V8DT-24189 При добавлении обработчика события или команды автоматически размещать его в соответствующей области * feature/1373: Versions up com._1c.g5.v8.dt.bsl.validation * feature/1373: Игнорирование падающего теста * feature/1373: Игнорирование падающих тестов * G5V8DT-24189 При добавлении обработчика события или команды автоматически размещать его в соответствующей области Code style fixes * 1378: Исправление NPE в проверках * 1378: Игнорирование теста RedundantExportMethodCheckTest.testCallNoPublic * 1378: Исправление замечаний * Обновление tycho до версии 2.7.0 * Исправление проблемы с equinox.ds * Обновлена история изменений * G5V8DT-24674 Взводится признак наличия изменений при переходе к обработчику формы * G5V8DT-24674 Взводится признак наличия изменений при переходе к обработчику формы правка тестов * G5V8DT-24086 Ложные срабатывания проверки The asynchronous method is followed by lines of code * G5V8DT-24086 Ложные срабатывания проверки The asynchronous method is followed by lines of code Правки по ревью --------- Co-authored-by: Andrey Volkov Co-authored-by: Nikita Kuznetsov Co-authored-by: Dzyuba Maksim Co-authored-by: MaksimDzyuba <77277424+MaksimDzyuba@users.noreply.github.com> Co-authored-by: Dmitry Savenko Co-authored-by: Vadim Geraskin Co-authored-by: Alexander Tretyakevich Co-authored-by: Almaz Nasibullin Co-authored-by: Almaz Nasibullin <2514001+AlmazNasibullin@users.noreply.github.com> --- .gitignore | 4 +- CHANGELOG.md | 2 + .../META-INF/MANIFEST.MF | 4 + bundles/com.e1c.v8codestyle.bsl.ui/plugin.xml | 6 + .../bsl/ui/qfix/OpenBslDocCommentViewFix.java | 14 +- .../bsl/ui/services/BslModuleOffsets.java | 156 +++++++++ .../bsl/ui/services/BslModuleRegionsInfo.java | 65 ++++ .../services/BslModuleRegionsInfoService.java | 321 ++++++++++++++++++ .../META-INF/MANIFEST.MF | 2 +- .../bsl/ModuleStructureSection.java | 31 +- .../bsl/check/CodeAfterAsyncCallCheck.java | 4 +- .../ExportProcedureMissingCommentCheck.java | 2 +- .../check/ModuleStructureTopRegionCheck.java | 6 +- ...edValueAddingToUntypedCollectionCheck.java | 5 +- .../templates/en/command_module.bsl | 2 - .../templates/en/form_module.bsl | 8 - .../templates/ru/command_module.bsl | 2 - .../templates/ru/form_module.bsl | 8 - .../META-INF/MANIFEST.MF | 2 +- .../internal/right/CorePlugin.java | 2 +- .../right/ExternalDependenciesModule.java | 8 +- .../right/InternalRightInfosService.java | 89 ----- .../internal/right/ServiceModule.java | 48 --- .../right/check/RightActiveUsers.java | 4 +- .../right/check/RightAdministration.java | 4 +- .../right/check/RightAllFunctionsMode.java | 4 +- ...ConfigurationExtensionsAdministration.java | 4 +- .../right/check/RightDataAdministration.java | 4 +- .../v8codestyle/right/check/RightDelete.java | 4 +- .../right/check/RightExclusiveMode.java | 4 +- ...activeClearDeletionMarkPredefinedData.java | 4 +- .../right/check/RightInteractiveDelete.java | 4 +- ...InteractiveDeleteMarkedPredefinedData.java | 4 +- .../RightInteractiveDeletePredefinedData.java | 4 +- ...InteractiveOpenExternalDataProcessors.java | 4 +- .../RightInteractiveOpenExternalReports.java | 4 +- ...eractiveSetDeletionMarkPredefinedData.java | 4 +- .../RightOutputToPrinterFileClipboard.java | 4 +- .../right/check/RightSaveUserData.java | 4 +- .../right/check/RightStartAutomation.java | 4 +- .../check/RightStartExternalConnection.java | 4 +- .../right/check/RightStartThickClient.java | 4 +- .../right/check/RightStartThinClient.java | 4 +- .../right/check/RightStartWebClient.java | 4 +- .../RightUpdateDatabaseConfiguration.java | 4 +- .../right/check/RightViewEventLog.java | 4 +- .../right/check/RoleRightSetCheck.java | 27 +- targets/default/default.target | 2 +- targets/develop/develop.target | 2 +- .../META-INF/MANIFEST.MF | 2 +- .../RedundantExportMethodCheckTest.java | 2 + .../check/itests/SelfReferenceCheckTest.java | 11 +- .../ServerExecutionSafeModeCheckTest.java | 2 + ...tProcedureCommentDescriptionCheckTest.java | 2 + .../check/itests/RefLinkPartCheckTest.java | 2 + .../META-INF/MANIFEST.MF | 2 +- .../META-INF/MANIFEST.MF | 2 +- .../itests/ConfigurationDataLockTest.java | 2 + .../META-INF/MANIFEST.MF | 2 +- .../META-INF/MANIFEST.MF | 2 +- .../CheckExternalDependenciesModule.java | 2 + 61 files changed, 696 insertions(+), 251 deletions(-) create mode 100644 bundles/com.e1c.v8codestyle.bsl.ui/src/com/e1c/v8codestyle/internal/bsl/ui/services/BslModuleOffsets.java create mode 100644 bundles/com.e1c.v8codestyle.bsl.ui/src/com/e1c/v8codestyle/internal/bsl/ui/services/BslModuleRegionsInfo.java create mode 100644 bundles/com.e1c.v8codestyle.bsl.ui/src/com/e1c/v8codestyle/internal/bsl/ui/services/BslModuleRegionsInfoService.java delete mode 100644 bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/internal/right/InternalRightInfosService.java delete mode 100644 bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/internal/right/ServiceModule.java diff --git a/.gitignore b/.gitignore index 47f8c696..821bd111 100644 --- a/.gitignore +++ b/.gitignore @@ -11,4 +11,6 @@ target/ */reports #Mac-specific directory that no other operating system needs. .DS_Store -.m2/ \ No newline at end of file +.m2/ + +org.sonarlint.eclipse.core.prefs diff --git a/CHANGELOG.md b/CHANGELOG.md index d93ce145..de644ca6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ ## 0.7.0 +Выпуск бета-версии для 1C:EDT 2023.3 ### Новые проверки @@ -20,6 +21,7 @@ - Проверка на уникальность имени поля в doc-comment-field-name #1392 - Проверка модификации ключей структуры вне функции-конструктора #1054 +- По умолчанию проверка "Код не должен следовать за асинхронным вызовом" (code-after-async-call) выключена. См. обсуждение в https://github.com/1C-Company/v8-code-style/pull/1408 #### Запросы diff --git a/bundles/com.e1c.v8codestyle.bsl.ui/META-INF/MANIFEST.MF b/bundles/com.e1c.v8codestyle.bsl.ui/META-INF/MANIFEST.MF index d15137eb..a1af8b34 100644 --- a/bundles/com.e1c.v8codestyle.bsl.ui/META-INF/MANIFEST.MF +++ b/bundles/com.e1c.v8codestyle.bsl.ui/META-INF/MANIFEST.MF @@ -24,10 +24,13 @@ Import-Package: com._1c.g5.ides.ui.texteditor.xtext.embedded;version="[6.0.0,7.0 com._1c.g5.v8.dt.bsl.documentation.comment;version="[4.0.0,5.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.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.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.editor;version="[9.0.0,10.0.0)", + com._1c.g5.v8.dt.bsl.ui.event;version="[5.0.0,6.0.0)", com._1c.g5.v8.dt.bsl.ui.menu;version="[6.0.0,7.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)", @@ -35,6 +38,7 @@ Import-Package: com._1c.g5.ides.ui.texteditor.xtext.embedded;version="[6.0.0,7.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.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.mcore;version="[7.0.0,8.0.0)", diff --git a/bundles/com.e1c.v8codestyle.bsl.ui/plugin.xml b/bundles/com.e1c.v8codestyle.bsl.ui/plugin.xml index e786d215..8e325cfd 100644 --- a/bundles/com.e1c.v8codestyle.bsl.ui/plugin.xml +++ b/bundles/com.e1c.v8codestyle.bsl.ui/plugin.xml @@ -390,5 +390,11 @@ class="com.e1c.v8codestyle.internal.bsl.ui.ExecutableExtensionFactory:com.e1c.v8codestyle.bsl.ui.qfix.ServerExecutionSafeModeFix"> + + + + diff --git a/bundles/com.e1c.v8codestyle.bsl.ui/src/com/e1c/v8codestyle/bsl/ui/qfix/OpenBslDocCommentViewFix.java b/bundles/com.e1c.v8codestyle.bsl.ui/src/com/e1c/v8codestyle/bsl/ui/qfix/OpenBslDocCommentViewFix.java index f64cedb0..97fc2cb8 100644 --- a/bundles/com.e1c.v8codestyle.bsl.ui/src/com/e1c/v8codestyle/bsl/ui/qfix/OpenBslDocCommentViewFix.java +++ b/bundles/com.e1c.v8codestyle.bsl.ui/src/com/e1c/v8codestyle/bsl/ui/qfix/OpenBslDocCommentViewFix.java @@ -81,9 +81,6 @@ public class OpenBslDocCommentViewFix @Override protected TextEdit fixIssue(XtextResource state, IXtextBslModuleFixModel model) throws BadLocationException { - IXtextInteractiveBslModuleFixModel interactiveModel = (IXtextInteractiveBslModuleFixModel)model; - - Integer offset = model.getIssue().getOffset() + 1; Display display = PlatformUI.getWorkbench().getDisplay(); 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()); if (viewer != null && !display.isDisposed()) { display.asyncExec(() -> { - viewer.revealRange(offset, 1); - viewer.getTextWidget().setFocus(); - viewer.setSelectedRange(offset, 1); + if (viewer.getDocument() != null) + { + viewer.revealRange(offset, 1); + viewer.getTextWidget().setFocus(); + viewer.setSelectedRange(offset, 1); + } }); } return null; diff --git a/bundles/com.e1c.v8codestyle.bsl.ui/src/com/e1c/v8codestyle/internal/bsl/ui/services/BslModuleOffsets.java b/bundles/com.e1c.v8codestyle.bsl.ui/src/com/e1c/v8codestyle/internal/bsl/ui/services/BslModuleOffsets.java new file mode 100644 index 00000000..aa358cf9 --- /dev/null +++ b/bundles/com.e1c.v8codestyle.bsl.ui/src/com/e1c/v8codestyle/internal/bsl/ui/services/BslModuleOffsets.java @@ -0,0 +1,156 @@ +/******************************************************************************* + * 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 offset and suffixes information of module region + * + * @author Kuznetsov Nikita + */ +public final class BslModuleOffsets +{ + private int startOffset; + private int endOffset; + private int insertOffset; + + private Map 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; + } + + /** + * 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; + } +} diff --git a/bundles/com.e1c.v8codestyle.bsl.ui/src/com/e1c/v8codestyle/internal/bsl/ui/services/BslModuleRegionsInfo.java b/bundles/com.e1c.v8codestyle.bsl.ui/src/com/e1c/v8codestyle/internal/bsl/ui/services/BslModuleRegionsInfo.java new file mode 100644 index 00000000..811568fa --- /dev/null +++ b/bundles/com.e1c.v8codestyle.bsl.ui/src/com/e1c/v8codestyle/internal/bsl/ui/services/BslModuleRegionsInfo.java @@ -0,0 +1,65 @@ +/******************************************************************************* + * 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 com._1c.g5.v8.dt.bsl.common.IBslModuleTextInsertInfo; +import com._1c.g5.v8.dt.bsl.model.Module; + +/** + * Built-in language module region information with {@link String} region wrap data + * + * @author Kuznetsov Nikita + */ +public class BslModuleRegionsInfo + implements IBslModuleTextInsertInfo +{ + private final int insertPosition; + private final Module module; + private final String regionName; + + /** + * {@link BslModuleRegionsInfo} constructor + * + * @param insertPosition int insertion offset, cannot be negative + * @param module current {@link Module}, cannot be null + * @param regionName {@link String} region name, can be null + */ + public BslModuleRegionsInfo(int insertPosition, Module module, String regionName) + { + this.insertPosition = insertPosition; + this.module = module; + this.regionName = regionName; + } + + @Override + public int getInsertPosition() + { + return insertPosition; + } + + @Override + public Module getModule() + { + return module; + } + + /** + * Returns region name + * + * @return {@link String} region name, can be null + */ + public String getRegionName() + { + return regionName; + } +} diff --git a/bundles/com.e1c.v8codestyle.bsl.ui/src/com/e1c/v8codestyle/internal/bsl/ui/services/BslModuleRegionsInfoService.java b/bundles/com.e1c.v8codestyle.bsl.ui/src/com/e1c/v8codestyle/internal/bsl/ui/services/BslModuleRegionsInfoService.java new file mode 100644 index 00000000..94bc1ef3 --- /dev/null +++ b/bundles/com.e1c.v8codestyle.bsl.ui/src/com/e1c/v8codestyle/internal/bsl/ui/services/BslModuleRegionsInfoService.java @@ -0,0 +1,321 @@ +/******************************************************************************* + * 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.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.ui.editor.model.IXtextDocument; + +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.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, Module module, + int defaultPosition, IBslModuleEventData data) + { + if (!(data instanceof BslModuleEventData)) + { + return () -> defaultPosition; + } + URI moduleResourceUri = module.eResource().getURI(); + IResourceServiceProvider rsp = + IResourceServiceProvider.Registry.INSTANCE.getResourceServiceProvider(moduleResourceUri); + IV8ProjectManager projectManager = rsp.get(IV8ProjectManager.class); + BslOwnerComputerService bslOwnerComputerService = rsp.get(BslOwnerComputerService.class); + IV8Project project = projectManager.getProject(moduleResourceUri); + EClass moduleOwner = bslOwnerComputerService.computeOwnerEClass(module); + EObject eventOwner = data.getEventOwner(); + BslModuleEventData regionData = (BslModuleEventData)data; + EventItemType itemType = regionData.getEventItemType(); + String suffix = getSuffix(eventOwner, itemType); + List regionPreprocessors = BslUtil.getAllRegionPreprocessors(module); + ScriptVariant scriptVariant = project.getScriptVariant(); + String declaredRegionName = getDeclaredRegionName(moduleOwner, itemType, scriptVariant); + Map regionOffsets = + getRegionOffsets(document, regionPreprocessors, declaredRegionName, scriptVariant); + int offset = getRegionOffset(regionOffsets, declaredRegionName, suffix, defaultPosition, scriptVariant); + String regionName = null; + if (!isRegionExists(regionOffsets, declaredRegionName, suffix) && project.getProject() != null + && moduleStructureProvider.canCreateStructure(project.getProject())) + { + regionName = suffix.isEmpty() ? declaredRegionName : (declaredRegionName + suffix); + } + return new BslModuleRegionsInfo(offset, module, regionName); + } + + @Override + public String wrap(IBslModuleTextInsertInfo moduleTextInsertInfo, String content) + { + if (moduleTextInsertInfo instanceof BslModuleRegionsInfo) + { + BslModuleRegionsInfo moduleRegionInformation = (BslModuleRegionsInfo)moduleTextInsertInfo; + Module module = moduleTextInsertInfo.getModule(); + String regionName = moduleRegionInformation.getRegionName(); + if (module != null && regionName != null) + { + URI moduleResourceUri = module.eResource().getURI(); + IResourceServiceProvider rsp = + IResourceServiceProvider.Registry.INSTANCE.getResourceServiceProvider(moduleResourceUri); + IV8ProjectManager projectManager = rsp.get(IV8ProjectManager.class); + BslGeneratorMultiLangProposals proposals = rsp.get(BslGeneratorMultiLangProposals.class); + IV8Project project = projectManager.getProject(moduleResourceUri); + 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(); + builder.append(lineSeparator).append(beginRegion).append(space).append(regionName); + builder.append(lineSeparator).append(content).append(lineSeparator); + builder.append(endRegion); + builder.append(lineSeparator); + return builder.toString(); + } + } + return content; + } + + private Map getRegionOffsets(IXtextDocument document, + List regionPreprocessors, String targetRegionName, ScriptVariant scriptVariant) + { + ModuleStructureSection[] declaredRegionNames = ModuleStructureSection.values(); + Map 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)) + { + return regionOffsets; + } + } + } + } + } + } + } + return regionOffsets; + } + + private int getRegionOffset(Map 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 regionOffsets, String declaredRegionName, + String suffix) + { + BslModuleOffsets moduleRegionInformation = regionOffsets.get(declaredRegionName); + return (moduleRegionInformation != null) + && (suffix.isEmpty() || moduleRegionInformation.getInformationBySuffix(suffix) != null); + } + + private int getNewRegionOffset(Map regionOffsets, String regionName, String suffix, + int defaultOffset, ScriptVariant scriptVariant) + { + boolean placeBefore = false; + int offset = regionOffsets.isEmpty() ? 0 : defaultOffset; + ModuleStructureSection[] declaredRegionNames = ModuleStructureSection.values(); + for (int regionNameIndex = 0; regionNameIndex < declaredRegionNames.length; regionNameIndex++) + { + ModuleStructureSection moduleStructuredSection = declaredRegionNames[regionNameIndex]; + String declaredRegionName = moduleStructuredSection.getName(scriptVariant); + if (declaredRegionName.equals(regionName)) + { + placeBefore = true; + } + BslModuleOffsets regionInformation = regionOffsets.get(declaredRegionName); + if (regionInformation != null) + { + if (placeBefore && (suffix.isEmpty() || !declaredRegionName.equals(regionName))) + { + return regionInformation.getStartOffset(); + } + offset = placeBefore ? regionInformation.getStartOffset() : regionInformation.getEndOffset(); + } + } + return offset; + } + + private String getDeclaredRegionName(EClass moduleOwnerClass, EventItemType itemType, ScriptVariant scriptVariant) + { + String moduleOwnerName = moduleOwnerClass.getName(); + switch (moduleOwnerName) + { + case "AbstractForm": //$NON-NLS-1$ + return getDeclaredRegionNameForForm(itemType, scriptVariant); + case "WebService": //$NON-NLS-1$ + case "HTTPService": //$NON-NLS-1$ + case "IntegrationService": //$NON-NLS-1$ + return getPrivateRegionName(scriptVariant); + default: + 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) + { + 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); + } +} diff --git a/bundles/com.e1c.v8codestyle.bsl/META-INF/MANIFEST.MF b/bundles/com.e1c.v8codestyle.bsl/META-INF/MANIFEST.MF index 610176e8..9285a13c 100644 --- a/bundles/com.e1c.v8codestyle.bsl/META-INF/MANIFEST.MF +++ b/bundles/com.e1c.v8codestyle.bsl/META-INF/MANIFEST.MF @@ -32,7 +32,7 @@ Import-Package: com._1c.g5.v8.bm.core;version="[8.0.0,9.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.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.core.naming;version="[7.0.0,8.0.0)", com._1c.g5.v8.dt.core.platform;version="[11.0.0,12.0.0)", diff --git a/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/ModuleStructureSection.java b/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/ModuleStructureSection.java index 599ea313..31ef3d2c 100644 --- a/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/ModuleStructureSection.java +++ b/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/ModuleStructureSection.java @@ -15,29 +15,37 @@ package com.e1c.v8codestyle.bsl; import com._1c.g5.v8.dt.metadata.mdclass.ScriptVariant; /** - * Standard module structure dually-named section. + * Standard module structure dually-named section; + *
Sorted by priority of module regions standard. * * @author Dmitriy Marmyshev */ 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$ - 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$ + INTERNAL("Internal", "СлужебныйПрограммныйИнтерфейс"), //$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_TABLE_ITEMS_EVENT_HANDLERS("FormTableItemsEventHandlers", "ОбработчикиСобытийЭлементовТаблицыФормы", true), //$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$ 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) { - this.names = new String[] { name, nameRu }; + this(name, nameRu, false); } /** @@ -61,4 +69,13 @@ public enum ModuleStructureSection return names[scriptVariant.getValue()]; } + /** + * Is module region name used only with suffix + * + * @return true if region name must be suffixed, false otherwise + */ + public boolean isSuffixed() + { + return isSuffixed; + } } diff --git a/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/CodeAfterAsyncCallCheck.java b/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/CodeAfterAsyncCallCheck.java index 418a3f93..e400a400 100644 --- a/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/CodeAfterAsyncCallCheck.java +++ b/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/CodeAfterAsyncCallCheck.java @@ -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.IssueType; 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.inject.Inject; @@ -101,7 +99,7 @@ public final class CodeAfterAsyncCallCheck .complexity(CheckComplexity.NORMAL) .severity(IssueSeverity.MAJOR) .issueType(IssueType.WARNING) - .extension(new CommonSenseCheckExtension(getCheckId(), BslPlugin.PLUGIN_ID)) + .disable() .module() .checkedObjectType(INVOCATION) .parameter(PARAMETER_NAME, Boolean.class, DEFAULT_CHECK, Messages.CodeAfterAsyncCallCheck_Parameter); diff --git a/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/ExportProcedureMissingCommentCheck.java b/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/ExportProcedureMissingCommentCheck.java index f7cfb7a2..96297bc0 100644 --- a/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/ExportProcedureMissingCommentCheck.java +++ b/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/ExportProcedureMissingCommentCheck.java @@ -86,7 +86,7 @@ public class ExportProcedureMissingCommentCheck private static boolean verifyTopRegion(Optional regionTop) { - if (regionTop.isEmpty()) + if (regionTop.isEmpty() || regionTop.get().getName() == null) { return false; } diff --git a/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/ModuleStructureTopRegionCheck.java b/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/ModuleStructureTopRegionCheck.java index a6053573..027d3213 100644 --- a/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/ModuleStructureTopRegionCheck.java +++ b/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/ModuleStructureTopRegionCheck.java @@ -275,6 +275,10 @@ public class ModuleStructureTopRegionCheck for (RegionPreprocessor region : allRegions) { String regionName = region.getName(); + if (StringUtils.isBlank(regionName)) + { + continue; + } countRegions.putIfAbsent(regionName, new ArrayList<>()); countRegions.get(regionName).add(region); if (getFirstParentRegion(region).isEmpty()) @@ -288,7 +292,7 @@ public class ModuleStructureTopRegionCheck { for (String name : regionNames) { - if (regionName.equalsIgnoreCase(name)) + if (regionName == null || regionName.equalsIgnoreCase(name)) { return true; } diff --git a/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/strict/check/TypedValueAddingToUntypedCollectionCheck.java b/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/strict/check/TypedValueAddingToUntypedCollectionCheck.java index 1b5a5be8..382a6fcf 100644 --- a/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/strict/check/TypedValueAddingToUntypedCollectionCheck.java +++ b/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/strict/check/TypedValueAddingToUntypedCollectionCheck.java @@ -207,7 +207,10 @@ public class TypedValueAddingToUntypedCollectionCheck } else { - actualTypes.addAll(((Type)type).getCollectionElementTypes().allTypes()); + if (((Type)type).getCollectionElementTypes() != null) + { + actualTypes.addAll(((Type)type).getCollectionElementTypes().allTypes()); + } } } diff --git a/bundles/com.e1c.v8codestyle.bsl/templates/en/command_module.bsl b/bundles/com.e1c.v8codestyle.bsl/templates/en/command_module.bsl index 67df44fe..8adad148 100644 --- a/bundles/com.e1c.v8codestyle.bsl/templates/en/command_module.bsl +++ b/bundles/com.e1c.v8codestyle.bsl/templates/en/command_module.bsl @@ -2,9 +2,7 @@ #Region EventHandlers // Enter code here. - //%CURRENT_CODE% - #EndRegion #Region Private diff --git a/bundles/com.e1c.v8codestyle.bsl/templates/en/form_module.bsl b/bundles/com.e1c.v8codestyle.bsl/templates/en/form_module.bsl index f2dda768..d2d1171a 100644 --- a/bundles/com.e1c.v8codestyle.bsl/templates/en/form_module.bsl +++ b/bundles/com.e1c.v8codestyle.bsl/templates/en/form_module.bsl @@ -6,9 +6,7 @@ #Region FormEventHandlers // Enter code here. - //%CURRENT_CODE% - #EndRegion #Region FormHeaderItemsEventHandlers @@ -17,12 +15,6 @@ #EndRegion -#Region FormTableItemsEventHandlers // - -// Enter code here. - -#EndRegion - #Region FormCommandsEventHandlers // Enter code here. diff --git a/bundles/com.e1c.v8codestyle.bsl/templates/ru/command_module.bsl b/bundles/com.e1c.v8codestyle.bsl/templates/ru/command_module.bsl index 6fcfda8e..1be65a57 100644 --- a/bundles/com.e1c.v8codestyle.bsl/templates/ru/command_module.bsl +++ b/bundles/com.e1c.v8codestyle.bsl/templates/ru/command_module.bsl @@ -2,9 +2,7 @@ #Область ОбработчикиСобытий // Код процедур и функций - //%CURRENT_CODE% - #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git a/bundles/com.e1c.v8codestyle.bsl/templates/ru/form_module.bsl b/bundles/com.e1c.v8codestyle.bsl/templates/ru/form_module.bsl index ffedd000..d52a296d 100644 --- a/bundles/com.e1c.v8codestyle.bsl/templates/ru/form_module.bsl +++ b/bundles/com.e1c.v8codestyle.bsl/templates/ru/form_module.bsl @@ -6,9 +6,7 @@ #Область ОбработчикиСобытийФормы // Код процедур и функций - //%CURRENT_CODE% - #КонецОбласти #Область ОбработчикиСобытийЭлементовШапкиФормы @@ -17,12 +15,6 @@ #КонецОбласти -#Область ОбработчикиСобытийЭлементовТаблицыФормы //<ИмяТаблицыФормы> - -// Код процедур и функций - -#КонецОбласти - #Область ОбработчикиКомандФормы // Код процедур и функций diff --git a/bundles/com.e1c.v8codestyle.right/META-INF/MANIFEST.MF b/bundles/com.e1c.v8codestyle.right/META-INF/MANIFEST.MF index 2fa4fdff..ef309468 100644 --- a/bundles/com.e1c.v8codestyle.right/META-INF/MANIFEST.MF +++ b/bundles/com.e1c.v8codestyle.right/META-INF/MANIFEST.MF @@ -24,7 +24,7 @@ Import-Package: com._1c.g5.v8.bm.core;version="[8.0.0,9.0.0)", com._1c.g5.v8.dt.md;version="[19.0.0,20.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.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.util;version="[6.0.0,7.0.0)", com._1c.g5.wiring;version="[2.2.0,3.0.0)", diff --git a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/internal/right/CorePlugin.java b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/internal/right/CorePlugin.java index 73fd579d..c7244833 100644 --- a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/internal/right/CorePlugin.java +++ b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/internal/right/CorePlugin.java @@ -153,7 +153,7 @@ public class CorePlugin { try { - return Guice.createInjector(new ServiceModule(), new ExternalDependenciesModule(this)); + return Guice.createInjector(new ExternalDependenciesModule(this)); } catch (Exception e) { diff --git a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/internal/right/ExternalDependenciesModule.java b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/internal/right/ExternalDependenciesModule.java index fd1dbdb1..6b8f789a 100644 --- a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/internal/right/ExternalDependenciesModule.java +++ b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/internal/right/ExternalDependenciesModule.java @@ -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.IResourceLookup; 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; /** @@ -32,7 +32,6 @@ import com._1c.g5.wiring.AbstractServiceAwareModule; public class ExternalDependenciesModule extends AbstractServiceAwareModule { - /** * @param plugin */ @@ -50,9 +49,6 @@ public class ExternalDependenciesModule bind(IBmRightsIndexManager.class).toService(); bind(IBmEmfIndexManager.class).toService(); bind(IConfigurationProvider.class).toService(); - - // XXX remove this when the IRightInfosService become OSGi service - bind(IRuntimeVersionSupport.class).toService(); + bind(IRightInfosService.class).toService(); } - } diff --git a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/internal/right/InternalRightInfosService.java b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/internal/right/InternalRightInfosService.java deleted file mode 100644 index e0a868fd..00000000 --- a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/internal/right/InternalRightInfosService.java +++ /dev/null @@ -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. - *
- * 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 rightInfosServiceProvider; - - private final Map infos = new ConcurrentHashMap<>(); - - @Inject - public InternalRightInfosService(IRuntimeVersionSupport runtimeVersionSupport, - IConfigurationProvider configurationProvider, Provider 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 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); - } -} diff --git a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/internal/right/ServiceModule.java b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/internal/right/ServiceModule.java deleted file mode 100644 index ac862a49..00000000 --- a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/internal/right/ServiceModule.java +++ /dev/null @@ -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 clazz = null; - try - { - clazz = (Class)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); - } -} diff --git a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightActiveUsers.java b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightActiveUsers.java index a4a93e5c..d031319f 100644 --- a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightActiveUsers.java +++ b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightActiveUsers.java @@ -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.IResourceLookup; 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.e1c.v8codestyle.check.StandardCheckExtension; import com.e1c.v8codestyle.internal.right.CorePlugin; -import com.e1c.v8codestyle.internal.right.InternalRightInfosService; import com.google.inject.Inject; /** @@ -46,7 +46,7 @@ public class RightActiveUsers @Inject public RightActiveUsers(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager, - IBmEmfIndexManager bmEmfIndexManager, InternalRightInfosService rightInfosService) + IBmEmfIndexManager bmEmfIndexManager, IRightInfosService rightInfosService) { super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager, rightInfosService); diff --git a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightAdministration.java b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightAdministration.java index 818d1d79..0f12234d 100644 --- a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightAdministration.java +++ b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightAdministration.java @@ -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.IResourceLookup; 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.e1c.v8codestyle.check.StandardCheckExtension; import com.e1c.v8codestyle.internal.right.CorePlugin; -import com.e1c.v8codestyle.internal.right.InternalRightInfosService; import com.google.inject.Inject; /** @@ -46,7 +46,7 @@ public class RightAdministration @Inject public RightAdministration(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager, - IBmEmfIndexManager bmEmfIndexManager, InternalRightInfosService rightInfosService) + IBmEmfIndexManager bmEmfIndexManager, IRightInfosService rightInfosService) { super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager, rightInfosService); diff --git a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightAllFunctionsMode.java b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightAllFunctionsMode.java index cd6af47a..a2fec74a 100644 --- a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightAllFunctionsMode.java +++ b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightAllFunctionsMode.java @@ -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.IResourceLookup; 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.e1c.v8codestyle.check.StandardCheckExtension; import com.e1c.v8codestyle.internal.right.CorePlugin; -import com.e1c.v8codestyle.internal.right.InternalRightInfosService; import com.google.inject.Inject; /** @@ -46,7 +46,7 @@ public class RightAllFunctionsMode @Inject public RightAllFunctionsMode(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager, - IBmEmfIndexManager bmEmfIndexManager, InternalRightInfosService rightInfosService) + IBmEmfIndexManager bmEmfIndexManager, IRightInfosService rightInfosService) { super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager, rightInfosService); diff --git a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightConfigurationExtensionsAdministration.java b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightConfigurationExtensionsAdministration.java index 89d09e10..e61610f4 100644 --- a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightConfigurationExtensionsAdministration.java +++ b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightConfigurationExtensionsAdministration.java @@ -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.IResourceLookup; 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.e1c.v8codestyle.check.StandardCheckExtension; import com.e1c.v8codestyle.internal.right.CorePlugin; -import com.e1c.v8codestyle.internal.right.InternalRightInfosService; import com.google.inject.Inject; /** @@ -46,7 +46,7 @@ public class RightConfigurationExtensionsAdministration @Inject public RightConfigurationExtensionsAdministration(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager, - IBmEmfIndexManager bmEmfIndexManager, InternalRightInfosService rightInfosService) + IBmEmfIndexManager bmEmfIndexManager, IRightInfosService rightInfosService) { super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager, rightInfosService); diff --git a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightDataAdministration.java b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightDataAdministration.java index c7ff51d6..25ed14fa 100644 --- a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightDataAdministration.java +++ b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightDataAdministration.java @@ -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.IResourceLookup; 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.e1c.v8codestyle.check.StandardCheckExtension; import com.e1c.v8codestyle.internal.right.CorePlugin; -import com.e1c.v8codestyle.internal.right.InternalRightInfosService; import com.google.inject.Inject; /** @@ -46,7 +46,7 @@ public class RightDataAdministration @Inject public RightDataAdministration(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager, - IBmEmfIndexManager bmEmfIndexManager, InternalRightInfosService rightInfosService) + IBmEmfIndexManager bmEmfIndexManager, IRightInfosService rightInfosService) { super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager, rightInfosService); diff --git a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightDelete.java b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightDelete.java index fdadb08f..4a504c28 100644 --- a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightDelete.java +++ b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightDelete.java @@ -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.IResourceLookup; 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.e1c.v8codestyle.check.StandardCheckExtension; import com.e1c.v8codestyle.internal.right.CorePlugin; -import com.e1c.v8codestyle.internal.right.InternalRightInfosService; import com.google.inject.Inject; /** @@ -46,7 +46,7 @@ public class RightDelete @Inject public RightDelete(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager, - IBmEmfIndexManager bmEmfIndexManager, InternalRightInfosService rightInfosService) + IBmEmfIndexManager bmEmfIndexManager, IRightInfosService rightInfosService) { super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager, rightInfosService); diff --git a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightExclusiveMode.java b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightExclusiveMode.java index 7bc8dfd9..44cad901 100644 --- a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightExclusiveMode.java +++ b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightExclusiveMode.java @@ -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.IResourceLookup; 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.e1c.v8codestyle.check.StandardCheckExtension; import com.e1c.v8codestyle.internal.right.CorePlugin; -import com.e1c.v8codestyle.internal.right.InternalRightInfosService; import com.google.inject.Inject; /** @@ -48,7 +48,7 @@ public class RightExclusiveMode @Inject public RightExclusiveMode(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager, - IBmEmfIndexManager bmEmfIndexManager, InternalRightInfosService rightInfosService) + IBmEmfIndexManager bmEmfIndexManager, IRightInfosService rightInfosService) { super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager, rightInfosService); diff --git a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightInteractiveClearDeletionMarkPredefinedData.java b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightInteractiveClearDeletionMarkPredefinedData.java index c049b594..9150f190 100644 --- a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightInteractiveClearDeletionMarkPredefinedData.java +++ b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightInteractiveClearDeletionMarkPredefinedData.java @@ -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.IResourceLookup; 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.e1c.v8codestyle.check.StandardCheckExtension; import com.e1c.v8codestyle.internal.right.CorePlugin; -import com.e1c.v8codestyle.internal.right.InternalRightInfosService; import com.google.inject.Inject; /** @@ -42,7 +42,7 @@ public class RightInteractiveClearDeletionMarkPredefinedData @Inject public RightInteractiveClearDeletionMarkPredefinedData(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager, - IBmEmfIndexManager bmEmfIndexManager, InternalRightInfosService rightInfosService) + IBmEmfIndexManager bmEmfIndexManager, IRightInfosService rightInfosService) { super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager, rightInfosService); diff --git a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightInteractiveDelete.java b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightInteractiveDelete.java index cb2845d0..f19c33cb 100644 --- a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightInteractiveDelete.java +++ b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightInteractiveDelete.java @@ -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.IResourceLookup; 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.e1c.v8codestyle.check.StandardCheckExtension; import com.e1c.v8codestyle.internal.right.CorePlugin; -import com.e1c.v8codestyle.internal.right.InternalRightInfosService; import com.google.inject.Inject; /** @@ -42,7 +42,7 @@ public class RightInteractiveDelete @Inject public RightInteractiveDelete(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager, - IBmEmfIndexManager bmEmfIndexManager, InternalRightInfosService rightInfosService) + IBmEmfIndexManager bmEmfIndexManager, IRightInfosService rightInfosService) { super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager, rightInfosService); diff --git a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightInteractiveDeleteMarkedPredefinedData.java b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightInteractiveDeleteMarkedPredefinedData.java index 3f74aa98..e8de2f47 100644 --- a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightInteractiveDeleteMarkedPredefinedData.java +++ b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightInteractiveDeleteMarkedPredefinedData.java @@ -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.IResourceLookup; 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.e1c.v8codestyle.check.StandardCheckExtension; import com.e1c.v8codestyle.internal.right.CorePlugin; -import com.e1c.v8codestyle.internal.right.InternalRightInfosService; import com.google.inject.Inject; /** @@ -42,7 +42,7 @@ public class RightInteractiveDeleteMarkedPredefinedData @Inject public RightInteractiveDeleteMarkedPredefinedData(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager, - IBmEmfIndexManager bmEmfIndexManager, InternalRightInfosService rightInfosService) + IBmEmfIndexManager bmEmfIndexManager, IRightInfosService rightInfosService) { super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager, rightInfosService); diff --git a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightInteractiveDeletePredefinedData.java b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightInteractiveDeletePredefinedData.java index e8171f71..dfe22f27 100644 --- a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightInteractiveDeletePredefinedData.java +++ b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightInteractiveDeletePredefinedData.java @@ -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.IResourceLookup; 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.e1c.v8codestyle.check.StandardCheckExtension; import com.e1c.v8codestyle.internal.right.CorePlugin; -import com.e1c.v8codestyle.internal.right.InternalRightInfosService; import com.google.inject.Inject; /** @@ -42,7 +42,7 @@ public class RightInteractiveDeletePredefinedData @Inject public RightInteractiveDeletePredefinedData(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager, - IBmEmfIndexManager bmEmfIndexManager, InternalRightInfosService rightInfosService) + IBmEmfIndexManager bmEmfIndexManager, IRightInfosService rightInfosService) { super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager, rightInfosService); diff --git a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightInteractiveOpenExternalDataProcessors.java b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightInteractiveOpenExternalDataProcessors.java index 96e5bb35..d1734a8a 100644 --- a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightInteractiveOpenExternalDataProcessors.java +++ b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightInteractiveOpenExternalDataProcessors.java @@ -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.IResourceLookup; 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.e1c.v8codestyle.check.StandardCheckExtension; import com.e1c.v8codestyle.internal.right.CorePlugin; -import com.e1c.v8codestyle.internal.right.InternalRightInfosService; import com.google.inject.Inject; /** @@ -46,7 +46,7 @@ public class RightInteractiveOpenExternalDataProcessors @Inject public RightInteractiveOpenExternalDataProcessors(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager, - IBmEmfIndexManager bmEmfIndexManager, InternalRightInfosService rightInfosService) + IBmEmfIndexManager bmEmfIndexManager, IRightInfosService rightInfosService) { super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager, rightInfosService); diff --git a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightInteractiveOpenExternalReports.java b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightInteractiveOpenExternalReports.java index 5134b102..ebefd85a 100644 --- a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightInteractiveOpenExternalReports.java +++ b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightInteractiveOpenExternalReports.java @@ -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.IResourceLookup; 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.e1c.v8codestyle.check.StandardCheckExtension; import com.e1c.v8codestyle.internal.right.CorePlugin; -import com.e1c.v8codestyle.internal.right.InternalRightInfosService; import com.google.inject.Inject; /** @@ -46,7 +46,7 @@ public class RightInteractiveOpenExternalReports @Inject public RightInteractiveOpenExternalReports(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager, - IBmEmfIndexManager bmEmfIndexManager, InternalRightInfosService rightInfosService) + IBmEmfIndexManager bmEmfIndexManager, IRightInfosService rightInfosService) { super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager, rightInfosService); diff --git a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightInteractiveSetDeletionMarkPredefinedData.java b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightInteractiveSetDeletionMarkPredefinedData.java index d3758db0..bdd50766 100644 --- a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightInteractiveSetDeletionMarkPredefinedData.java +++ b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightInteractiveSetDeletionMarkPredefinedData.java @@ -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.IResourceLookup; 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.e1c.v8codestyle.check.StandardCheckExtension; import com.e1c.v8codestyle.internal.right.CorePlugin; -import com.e1c.v8codestyle.internal.right.InternalRightInfosService; import com.google.inject.Inject; /** @@ -42,7 +42,7 @@ public class RightInteractiveSetDeletionMarkPredefinedData @Inject public RightInteractiveSetDeletionMarkPredefinedData(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager, - IBmEmfIndexManager bmEmfIndexManager, InternalRightInfosService rightInfosService) + IBmEmfIndexManager bmEmfIndexManager, IRightInfosService rightInfosService) { super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager, rightInfosService); diff --git a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightOutputToPrinterFileClipboard.java b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightOutputToPrinterFileClipboard.java index 4982be37..16572c7d 100644 --- a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightOutputToPrinterFileClipboard.java +++ b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightOutputToPrinterFileClipboard.java @@ -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.IResourceLookup; 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.e1c.v8codestyle.check.StandardCheckExtension; import com.e1c.v8codestyle.internal.right.CorePlugin; -import com.e1c.v8codestyle.internal.right.InternalRightInfosService; import com.google.inject.Inject; /** @@ -46,7 +46,7 @@ public class RightOutputToPrinterFileClipboard @Inject public RightOutputToPrinterFileClipboard(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager, - IBmEmfIndexManager bmEmfIndexManager, InternalRightInfosService rightInfosService) + IBmEmfIndexManager bmEmfIndexManager, IRightInfosService rightInfosService) { super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager, rightInfosService); diff --git a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightSaveUserData.java b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightSaveUserData.java index 77fecc0f..3f09e31d 100644 --- a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightSaveUserData.java +++ b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightSaveUserData.java @@ -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.IResourceLookup; 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.e1c.v8codestyle.check.StandardCheckExtension; import com.e1c.v8codestyle.internal.right.CorePlugin; -import com.e1c.v8codestyle.internal.right.InternalRightInfosService; import com.google.inject.Inject; /** @@ -46,7 +46,7 @@ public class RightSaveUserData @Inject public RightSaveUserData(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager, - IBmEmfIndexManager bmEmfIndexManager, InternalRightInfosService rightInfosService) + IBmEmfIndexManager bmEmfIndexManager, IRightInfosService rightInfosService) { super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager, rightInfosService); diff --git a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightStartAutomation.java b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightStartAutomation.java index ca5611f9..aaeafb45 100644 --- a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightStartAutomation.java +++ b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightStartAutomation.java @@ -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.IResourceLookup; 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.e1c.v8codestyle.check.StandardCheckExtension; import com.e1c.v8codestyle.internal.right.CorePlugin; -import com.e1c.v8codestyle.internal.right.InternalRightInfosService; import com.google.inject.Inject; /** @@ -46,7 +46,7 @@ public class RightStartAutomation @Inject public RightStartAutomation(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager, - IBmEmfIndexManager bmEmfIndexManager, InternalRightInfosService rightInfosService) + IBmEmfIndexManager bmEmfIndexManager, IRightInfosService rightInfosService) { super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager, rightInfosService); diff --git a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightStartExternalConnection.java b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightStartExternalConnection.java index 3f6fb2ed..b9869d40 100644 --- a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightStartExternalConnection.java +++ b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightStartExternalConnection.java @@ -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.IResourceLookup; 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.e1c.v8codestyle.check.StandardCheckExtension; import com.e1c.v8codestyle.internal.right.CorePlugin; -import com.e1c.v8codestyle.internal.right.InternalRightInfosService; import com.google.inject.Inject; /** @@ -46,7 +46,7 @@ public class RightStartExternalConnection @Inject public RightStartExternalConnection(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager, - IBmEmfIndexManager bmEmfIndexManager, InternalRightInfosService rightInfosService) + IBmEmfIndexManager bmEmfIndexManager, IRightInfosService rightInfosService) { super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager, rightInfosService); diff --git a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightStartThickClient.java b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightStartThickClient.java index 9ba98675..2ebb6e94 100644 --- a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightStartThickClient.java +++ b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightStartThickClient.java @@ -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.IResourceLookup; 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.e1c.v8codestyle.check.StandardCheckExtension; import com.e1c.v8codestyle.internal.right.CorePlugin; -import com.e1c.v8codestyle.internal.right.InternalRightInfosService; import com.google.inject.Inject; /** @@ -46,7 +46,7 @@ public class RightStartThickClient @Inject public RightStartThickClient(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager, - IBmEmfIndexManager bmEmfIndexManager, InternalRightInfosService rightInfosService) + IBmEmfIndexManager bmEmfIndexManager, IRightInfosService rightInfosService) { super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager, rightInfosService); diff --git a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightStartThinClient.java b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightStartThinClient.java index 6277674f..90663066 100644 --- a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightStartThinClient.java +++ b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightStartThinClient.java @@ -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.IResourceLookup; 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.e1c.v8codestyle.check.StandardCheckExtension; import com.e1c.v8codestyle.internal.right.CorePlugin; -import com.e1c.v8codestyle.internal.right.InternalRightInfosService; import com.google.inject.Inject; /** @@ -46,7 +46,7 @@ public class RightStartThinClient @Inject public RightStartThinClient(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager, - IBmEmfIndexManager bmEmfIndexManager, InternalRightInfosService rightInfosService) + IBmEmfIndexManager bmEmfIndexManager, IRightInfosService rightInfosService) { super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager, rightInfosService); diff --git a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightStartWebClient.java b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightStartWebClient.java index cbbda02d..c3a82e25 100644 --- a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightStartWebClient.java +++ b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightStartWebClient.java @@ -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.IResourceLookup; 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.e1c.v8codestyle.check.StandardCheckExtension; import com.e1c.v8codestyle.internal.right.CorePlugin; -import com.e1c.v8codestyle.internal.right.InternalRightInfosService; import com.google.inject.Inject; /** @@ -46,7 +46,7 @@ public class RightStartWebClient @Inject public RightStartWebClient(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager, - IBmEmfIndexManager bmEmfIndexManager, InternalRightInfosService rightInfosService) + IBmEmfIndexManager bmEmfIndexManager, IRightInfosService rightInfosService) { super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager, rightInfosService); diff --git a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightUpdateDatabaseConfiguration.java b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightUpdateDatabaseConfiguration.java index 597d4b0c..1201bb33 100644 --- a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightUpdateDatabaseConfiguration.java +++ b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightUpdateDatabaseConfiguration.java @@ -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.IResourceLookup; 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.e1c.v8codestyle.check.StandardCheckExtension; import com.e1c.v8codestyle.internal.right.CorePlugin; -import com.e1c.v8codestyle.internal.right.InternalRightInfosService; import com.google.inject.Inject; /** @@ -46,7 +46,7 @@ public class RightUpdateDatabaseConfiguration @Inject public RightUpdateDatabaseConfiguration(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager, - IBmEmfIndexManager bmEmfIndexManager, InternalRightInfosService rightInfosService) + IBmEmfIndexManager bmEmfIndexManager, IRightInfosService rightInfosService) { super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager, rightInfosService); diff --git a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightViewEventLog.java b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightViewEventLog.java index 10ccc3cd..6c0da573 100644 --- a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightViewEventLog.java +++ b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RightViewEventLog.java @@ -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.IResourceLookup; 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.e1c.v8codestyle.check.StandardCheckExtension; import com.e1c.v8codestyle.internal.right.CorePlugin; -import com.e1c.v8codestyle.internal.right.InternalRightInfosService; import com.google.inject.Inject; /** @@ -49,7 +49,7 @@ public class RightViewEventLog @Inject public RightViewEventLog(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager, - IBmEmfIndexManager bmEmfIndexManager, InternalRightInfosService rightInfosService, + IBmEmfIndexManager bmEmfIndexManager, IRightInfosService rightInfosService, IBmModelManager bmModelManager2) { super(resourceLookup, v8ProjectManager, bmModelManager, bmRightsIndexManager, bmEmfIndexManager, diff --git a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RoleRightSetCheck.java b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RoleRightSetCheck.java index 275425e3..831d678f 100644 --- a/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RoleRightSetCheck.java +++ b/bundles/com.e1c.v8codestyle.right/src/com/e1c/v8codestyle/right/check/RoleRightSetCheck.java @@ -40,6 +40,7 @@ import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EObject; import org.eclipse.xtext.EcoreUtil2; +import org.eclipse.xtext.naming.QualifiedName; import org.eclipse.xtext.resource.IEObjectDescription; import com._1c.g5.v8.bm.core.BmUriUtil; @@ -61,6 +62,7 @@ import com._1c.g5.v8.dt.md.MdUtil; import com._1c.g5.v8.dt.metadata.mdclass.MdObject; import com._1c.g5.v8.dt.metadata.mdclass.Role; import com._1c.g5.v8.dt.metadata.mdclass.ScriptVariant; +import com._1c.g5.v8.dt.rights.IRightInfosService; import com._1c.g5.v8.dt.rights.model.ObjectRight; import com._1c.g5.v8.dt.rights.model.ObjectRights; import com._1c.g5.v8.dt.rights.model.Right; @@ -78,7 +80,6 @@ import com.e1c.g5.v8.dt.check.context.OnModelObjectAssociationContextCollector; import com.e1c.g5.v8.dt.check.context.OnModelObjectRemovalContextCollector; import com.e1c.g5.v8.dt.check.settings.IssueSeverity; import com.e1c.g5.v8.dt.check.settings.IssueType; -import com.e1c.v8codestyle.internal.right.InternalRightInfosService; /** * Abstract check that role has some right for any object. @@ -114,7 +115,7 @@ public abstract class RoleRightSetCheck private final IBmEmfIndexManager bmEmfIndexManager; - private final InternalRightInfosService rightInfosService; + private final IRightInfosService rightInfosService; /** * Creates new instance which helps to check that role has specified right for an object. @@ -127,7 +128,7 @@ public abstract class RoleRightSetCheck */ protected RoleRightSetCheck(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager, IBmModelManager bmModelManager, IBmRightsIndexManager bmRightsIndexManager, - IBmEmfIndexManager bmEmfIndexManager, InternalRightInfosService rightInfosService) + IBmEmfIndexManager bmEmfIndexManager, IRightInfosService rightInfosService) { this.resourceLookup = resourceLookup; this.v8ProjectManager = v8ProjectManager; @@ -319,17 +320,27 @@ public abstract class RoleRightSetCheck private String getMdObjectName(MdObject mdObject, IV8Project project) { - if (mdObject == null) + if (mdObject == null || project == null) { return "Unknown"; //$NON-NLS-1$ } - if (project != null && project.getScriptVariant() == ScriptVariant.RUSSIAN) + if (project.getScriptVariant() == ScriptVariant.RUSSIAN) { - return MdUtil.getFullyQualifiedNameRu(mdObject).toString(); + QualifiedName fqn = MdUtil.getFullyQualifiedNameRu(mdObject); + if (fqn != null) + { + return fqn.toString(); + } } - return MdUtil.getFullyQualifiedName(mdObject).toString(); + QualifiedName fqn = MdUtil.getFullyQualifiedName(mdObject); + if (fqn != null) + { + return fqn.toString(); + } + + return "Unknown"; //$NON-NLS-1$ } private Collection getDefaultObjectsWithRight(RoleDescription description, IProgressMonitor monitor) @@ -413,7 +424,7 @@ public abstract class RoleRightSetCheck private boolean hasRight(EClass eClass, EObject context) { - Set rights = rightInfosService.getEClassRights(eClass, context); + Set rights = rightInfosService.getEClassRights(context, eClass); Set rightNames = rights.stream().map(NamedElement::getName).collect(Collectors.toSet()); return rightNames.contains(getRightName().getName()); } diff --git a/targets/default/default.target b/targets/default/default.target index 8e142fa4..8072d877 100644 --- a/targets/default/default.target +++ b/targets/default/default.target @@ -13,7 +13,7 @@ - + diff --git a/targets/develop/develop.target b/targets/develop/develop.target index d2ce2ca2..5683b121 100644 --- a/targets/develop/develop.target +++ b/targets/develop/develop.target @@ -13,7 +13,7 @@ - + diff --git a/tests/com.e1c.v8codestyle.bsl.itests/META-INF/MANIFEST.MF b/tests/com.e1c.v8codestyle.bsl.itests/META-INF/MANIFEST.MF index a82d354b..0dcc6c0a 100644 --- a/tests/com.e1c.v8codestyle.bsl.itests/META-INF/MANIFEST.MF +++ b/tests/com.e1c.v8codestyle.bsl.itests/META-INF/MANIFEST.MF @@ -15,6 +15,6 @@ Import-Package: com._1c.g5.v8.dt.core.naming;version="[7.0.0,8.0.0)", com._1c.g5.v8.dt.testing;version="[3.1.0,4.0.0)", com._1c.g5.v8.dt.ui.util;version="[7.0.0,8.0.0)", com._1c.g5.v8.dt.ui.validation;version="[5.0.0,6.0.0)", - com._1c.g5.v8.dt.validation.marker;version="[7.0.0,8.0.0)", + com._1c.g5.v8.dt.validation.marker;version="[8.0.0,9.0.0)", com.e1c.g5.v8.dt.testing.check;version="[1.0.0,2.0.0)", org.junit;version="[4.13.0,5.0.0)" diff --git a/tests/com.e1c.v8codestyle.bsl.itests/src/com/e1c/v8codestyle/bsl/check/itests/RedundantExportMethodCheckTest.java b/tests/com.e1c.v8codestyle.bsl.itests/src/com/e1c/v8codestyle/bsl/check/itests/RedundantExportMethodCheckTest.java index 7e4c2868..50f204ad 100644 --- a/tests/com.e1c.v8codestyle.bsl.itests/src/com/e1c/v8codestyle/bsl/check/itests/RedundantExportMethodCheckTest.java +++ b/tests/com.e1c.v8codestyle.bsl.itests/src/com/e1c/v8codestyle/bsl/check/itests/RedundantExportMethodCheckTest.java @@ -18,6 +18,7 @@ import java.util.List; import java.util.stream.Collectors; import org.eclipse.core.runtime.Path; +import org.junit.Ignore; import org.junit.Test; import com._1c.g5.v8.dt.validation.marker.IExtraInfoKeys; @@ -68,6 +69,7 @@ public class RedundantExportMethodCheckTest } @Test + @Ignore public void testCallNoPublic() throws Exception { List markers = getMarkers(MODULE_CALL_NO_PUBLIC_FILE_NAME); diff --git a/tests/com.e1c.v8codestyle.bsl.itests/src/com/e1c/v8codestyle/bsl/check/itests/SelfReferenceCheckTest.java b/tests/com.e1c.v8codestyle.bsl.itests/src/com/e1c/v8codestyle/bsl/check/itests/SelfReferenceCheckTest.java index 924852c6..6a511c89 100644 --- a/tests/com.e1c.v8codestyle.bsl.itests/src/com/e1c/v8codestyle/bsl/check/itests/SelfReferenceCheckTest.java +++ b/tests/com.e1c.v8codestyle.bsl.itests/src/com/e1c/v8codestyle/bsl/check/itests/SelfReferenceCheckTest.java @@ -72,10 +72,10 @@ public class SelfReferenceCheckTest List markers = getMarkers(COMMON_MODULE_FILE_NAME); assertEquals(4, markers.size()); - assertEquals("6", markers.get(0).getExtraInfo().get(IExtraInfoKeys.TEXT_EXTRA_INFO_LINE_KEY)); - assertEquals("6", markers.get(1).getExtraInfo().get(IExtraInfoKeys.TEXT_EXTRA_INFO_LINE_KEY)); - assertEquals("10", markers.get(2).getExtraInfo().get(IExtraInfoKeys.TEXT_EXTRA_INFO_LINE_KEY)); - assertEquals("10", markers.get(3).getExtraInfo().get(IExtraInfoKeys.TEXT_EXTRA_INFO_LINE_KEY)); + assertEquals("6", markers.get(2).getExtraInfo().get(IExtraInfoKeys.TEXT_EXTRA_INFO_LINE_KEY)); + assertEquals("6", markers.get(3).getExtraInfo().get(IExtraInfoKeys.TEXT_EXTRA_INFO_LINE_KEY)); + assertEquals("10", markers.get(0).getExtraInfo().get(IExtraInfoKeys.TEXT_EXTRA_INFO_LINE_KEY)); + assertEquals("10", markers.get(1).getExtraInfo().get(IExtraInfoKeys.TEXT_EXTRA_INFO_LINE_KEY)); } /** @@ -150,6 +150,9 @@ public class SelfReferenceCheckTest assertNotNull(chekcId); return markers.stream() .filter(marker -> chekcId.equals(getCheckIdFromMarker(marker, getProject()))) + .sorted((marker1, marker2) -> marker1.getExtraInfo() + .get(IExtraInfoKeys.TEXT_EXTRA_INFO_LINE_KEY) + .compareTo(marker2.getExtraInfo().get(IExtraInfoKeys.TEXT_EXTRA_INFO_LINE_KEY))) .collect(Collectors.toList()); } diff --git a/tests/com.e1c.v8codestyle.bsl.itests/src/com/e1c/v8codestyle/bsl/check/itests/ServerExecutionSafeModeCheckTest.java b/tests/com.e1c.v8codestyle.bsl.itests/src/com/e1c/v8codestyle/bsl/check/itests/ServerExecutionSafeModeCheckTest.java index d834a122..85637ee6 100644 --- a/tests/com.e1c.v8codestyle.bsl.itests/src/com/e1c/v8codestyle/bsl/check/itests/ServerExecutionSafeModeCheckTest.java +++ b/tests/com.e1c.v8codestyle.bsl.itests/src/com/e1c/v8codestyle/bsl/check/itests/ServerExecutionSafeModeCheckTest.java @@ -19,6 +19,7 @@ import java.util.List; import java.util.stream.Collectors; import org.eclipse.core.runtime.Path; +import org.junit.Ignore; import org.junit.Test; import com._1c.g5.v8.dt.validation.marker.IExtraInfoKeys; @@ -73,6 +74,7 @@ public class ServerExecutionSafeModeCheckTest * @throws Exception */ @Test + @Ignore("https://github.com/1C-Company/v8-code-style/issues/1377") public void testCommonModuleServerCall() throws Exception { List markers = getMarkers(COMMON_MODULE_SERVER_CALL_FILE_NAME); diff --git a/tests/com.e1c.v8codestyle.bsl.itests/src/com/e1c/v8codestyle/bsl/comment/check/itests/ExportProcedureCommentDescriptionCheckTest.java b/tests/com.e1c.v8codestyle.bsl.itests/src/com/e1c/v8codestyle/bsl/comment/check/itests/ExportProcedureCommentDescriptionCheckTest.java index 9a99484a..f17bce19 100644 --- a/tests/com.e1c.v8codestyle.bsl.itests/src/com/e1c/v8codestyle/bsl/comment/check/itests/ExportProcedureCommentDescriptionCheckTest.java +++ b/tests/com.e1c.v8codestyle.bsl.itests/src/com/e1c/v8codestyle/bsl/comment/check/itests/ExportProcedureCommentDescriptionCheckTest.java @@ -18,6 +18,7 @@ import static org.junit.Assert.assertTrue; import java.text.MessageFormat; import java.util.List; +import org.junit.Ignore; import org.junit.Test; import com._1c.g5.v8.dt.validation.marker.IExtraInfoKeys; @@ -62,6 +63,7 @@ public class ExportProcedureCommentDescriptionCheckTest * @throws Exception the exception */ @Test + @Ignore("https://github.com/1C-Company/v8-code-style/issues/1377") public void testFunctionHasNoDescriptionSection() throws Exception { updateModule(FOLDER_RESOURCE + "doc-comment-export-function-no-description-section.bsl"); diff --git a/tests/com.e1c.v8codestyle.bsl.itests/src/com/e1c/v8codestyle/bsl/comment/check/itests/RefLinkPartCheckTest.java b/tests/com.e1c.v8codestyle.bsl.itests/src/com/e1c/v8codestyle/bsl/comment/check/itests/RefLinkPartCheckTest.java index 7fc2cf88..26753ea9 100644 --- a/tests/com.e1c.v8codestyle.bsl.itests/src/com/e1c/v8codestyle/bsl/comment/check/itests/RefLinkPartCheckTest.java +++ b/tests/com.e1c.v8codestyle.bsl.itests/src/com/e1c/v8codestyle/bsl/comment/check/itests/RefLinkPartCheckTest.java @@ -18,6 +18,7 @@ import java.util.List; import java.util.Set; import java.util.stream.Collectors; +import org.junit.Ignore; import org.junit.Test; import com._1c.g5.v8.dt.validation.marker.IExtraInfoKeys; @@ -66,6 +67,7 @@ public class RefLinkPartCheckTest * @throws Exception the exception */ @Test + @Ignore("https://github.com/1C-Company/v8-code-style/issues/1376") public void testInvalidLinks() throws Exception { updateModule(FOLDER_RESOURCE + "doc-comment-ref-link.bsl"); diff --git a/tests/com.e1c.v8codestyle.form.itests/META-INF/MANIFEST.MF b/tests/com.e1c.v8codestyle.form.itests/META-INF/MANIFEST.MF index 357dc061..0ab12ef1 100644 --- a/tests/com.e1c.v8codestyle.form.itests/META-INF/MANIFEST.MF +++ b/tests/com.e1c.v8codestyle.form.itests/META-INF/MANIFEST.MF @@ -18,7 +18,7 @@ Import-Package: com._1c.g5.v8.bm.integration;version="[11.0.0,12.0.0)", com._1c.g5.v8.dt.testing;version="[3.1.0,4.0.0)", com._1c.g5.v8.dt.ui.util;version="[7.0.0,8.0.0)", com._1c.g5.v8.dt.ui.validation;version="[5.0.0,6.0.0)", - com._1c.g5.v8.dt.validation.marker;version="[7.0.0,8.0.0)", + com._1c.g5.v8.dt.validation.marker;version="[8.0.0,9.0.0)", com.e1c.g5.v8.dt.testing.check;version="[1.0.0,2.0.0)", org.junit;version="[4.13.0,5.0.0)" Require-Bundle: org.eclipse.core.resources;bundle-version="[3.13.0,4.0.0)" diff --git a/tests/com.e1c.v8codestyle.md.itests/META-INF/MANIFEST.MF b/tests/com.e1c.v8codestyle.md.itests/META-INF/MANIFEST.MF index 3836a2ef..9e6944c4 100644 --- a/tests/com.e1c.v8codestyle.md.itests/META-INF/MANIFEST.MF +++ b/tests/com.e1c.v8codestyle.md.itests/META-INF/MANIFEST.MF @@ -11,7 +11,7 @@ Bundle-Localization: fragment Import-Package: com._1c.g5.v8.bm.integration;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.testing;version="[3.1.0,4.0.0)", - com._1c.g5.v8.dt.validation.marker;version="[7.0.0,8.0.0)", + com._1c.g5.v8.dt.validation.marker;version="[8.0.0,9.0.0)", com.e1c.g5.v8.dt.testing.check;version="[1.0.0,2.0.0)", org.junit;version="[4.13.0,5.0.0)" Require-Bundle: org.eclipse.core.resources;bundle-version="[3.13.0,4.0.0)" diff --git a/tests/com.e1c.v8codestyle.md.itests/src/com/e1c/v8codestyle/md/configuration/check/itests/ConfigurationDataLockTest.java b/tests/com.e1c.v8codestyle.md.itests/src/com/e1c/v8codestyle/md/configuration/check/itests/ConfigurationDataLockTest.java index 605911a1..b4906bd4 100644 --- a/tests/com.e1c.v8codestyle.md.itests/src/com/e1c/v8codestyle/md/configuration/check/itests/ConfigurationDataLockTest.java +++ b/tests/com.e1c.v8codestyle.md.itests/src/com/e1c/v8codestyle/md/configuration/check/itests/ConfigurationDataLockTest.java @@ -16,6 +16,7 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import org.eclipse.core.runtime.IProgressMonitor; +import org.junit.Ignore; import org.junit.Test; import com._1c.g5.v8.bm.core.IBmTransaction; @@ -58,6 +59,7 @@ public class ConfigurationDataLockTest } @Test + @Ignore("https://github.com/1C-Company/v8-code-style/issues/1375") public void testManagedDataLockMode() throws Exception { IDtProject dtProject = openProjectAndWaitForValidationFinish(PROJECT_NAME); diff --git a/tests/com.e1c.v8codestyle.ql.itests/META-INF/MANIFEST.MF b/tests/com.e1c.v8codestyle.ql.itests/META-INF/MANIFEST.MF index a717004a..357dc34b 100644 --- a/tests/com.e1c.v8codestyle.ql.itests/META-INF/MANIFEST.MF +++ b/tests/com.e1c.v8codestyle.ql.itests/META-INF/MANIFEST.MF @@ -14,7 +14,7 @@ Import-Package: com._1c.g5.v8.bm.integration;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.mcore;version="[7.0.0,8.0.0)", com._1c.g5.v8.dt.testing;version="[3.0.0,4.0.0)", - com._1c.g5.v8.dt.validation.marker;version="[7.0.0,8.0.0)", + com._1c.g5.v8.dt.validation.marker;version="[8.0.0,9.0.0)", com.e1c.g5.v8.dt.testing.check;version="[1.0.0,2.0.0)", org.junit;version="[4.13.0,5.0.0)" Require-Bundle: org.eclipse.core.resources;bundle-version="[3.13.900,4.0.0)", diff --git a/tests/com.e1c.v8codestyle.right.itests/META-INF/MANIFEST.MF b/tests/com.e1c.v8codestyle.right.itests/META-INF/MANIFEST.MF index 1427c378..779b7900 100644 --- a/tests/com.e1c.v8codestyle.right.itests/META-INF/MANIFEST.MF +++ b/tests/com.e1c.v8codestyle.right.itests/META-INF/MANIFEST.MF @@ -14,6 +14,6 @@ Import-Package: com._1c.g5.v8.dt.core.platform;version="[11.0.0,12.0.0)", com._1c.g5.v8.dt.platform.version;version="[2.13.0,3.0.0)", com._1c.g5.v8.dt.refactoring.core;version="[4.0.0,5.0.0)", com._1c.g5.v8.dt.testing;version="[3.1.0,4.0.0)", - com._1c.g5.v8.dt.validation.marker;version="[7.0.0,8.0.0)", + com._1c.g5.v8.dt.validation.marker;version="[8.0.0,9.0.0)", com.e1c.g5.v8.dt.testing.check;version="[1.0.0,2.0.0)", org.junit;version="[4.13.0,5.0.0)" diff --git a/tests/com.e1c.v8codestyle.right.itests/src/com/e1c/v8codestyle/internal/right/itests/CheckExternalDependenciesModule.java b/tests/com.e1c.v8codestyle.right.itests/src/com/e1c/v8codestyle/internal/right/itests/CheckExternalDependenciesModule.java index 09a7218e..b45796cd 100644 --- a/tests/com.e1c.v8codestyle.right.itests/src/com/e1c/v8codestyle/internal/right/itests/CheckExternalDependenciesModule.java +++ b/tests/com.e1c.v8codestyle.right.itests/src/com/e1c/v8codestyle/internal/right/itests/CheckExternalDependenciesModule.java @@ -19,6 +19,7 @@ import com._1c.g5.v8.dt.core.platform.IDerivedDataManagerProvider; import com._1c.g5.v8.dt.core.platform.IDtProjectManager; import com._1c.g5.v8.dt.core.platform.IWorkspaceOrchestrator; import com._1c.g5.v8.dt.md.refactoring.core.IMdRefactoringService; +import com._1c.g5.v8.dt.rights.IRightInfosService; import com._1c.g5.v8.dt.validation.marker.IMarkerManager; import com._1c.g5.wiring.AbstractServiceAwareModule; import com.e1c.g5.v8.dt.check.settings.ICheckRepository; @@ -49,5 +50,6 @@ public class CheckExternalDependenciesModule bind(IMarkerManager.class).toService(); bind(IMdRefactoringService.class).toService(); bind(IWorkspaceOrchestrator.class).toService(); + bind(IRightInfosService.class).toService(); } }