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

Переход на EDT 2023.3 (#1386)

* 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 <avol@1c.ru>
Co-authored-by: Nikita Kuznetsov <kuzn@1c.ru>
Co-authored-by: Dzyuba Maksim <dzym@1c.ru>
Co-authored-by: MaksimDzyuba <77277424+MaksimDzyuba@users.noreply.github.com>
Co-authored-by: Dmitry Savenko <dsavenko@xored.com>
Co-authored-by: Vadim Geraskin <vadim.geraskin@xored.com>
Co-authored-by: Alexander Tretyakevich <tretyakevich@gmail.com>
Co-authored-by: Almaz Nasibullin <AlmazNasibullin@users.noreply.github.com>
Co-authored-by: Almaz Nasibullin <2514001+AlmazNasibullin@users.noreply.github.com>
This commit is contained in:
Dmitriy Marmyshev 2024-04-10 00:30:22 -07:00 committed by GitHub
parent 9166ae37a2
commit 7087abc5ca
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
61 changed files with 696 additions and 251 deletions

4
.gitignore vendored
View File

@ -11,4 +11,6 @@ target/
*/reports
#Mac-specific directory that no other operating system needs.
.DS_Store
.m2/
.m2/
org.sonarlint.eclipse.core.prefs

View File

@ -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
#### Запросы

View File

@ -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)",

View File

@ -390,5 +390,11 @@
class="com.e1c.v8codestyle.internal.bsl.ui.ExecutableExtensionFactory:com.e1c.v8codestyle.bsl.ui.qfix.ServerExecutionSafeModeFix">
</fix>
</extension>
<extension
point="com._1c.g5.v8.dt.bsl.ui.bslModuleTextInsertInfoService">
<bslModuleTextInsertInfoService
class="com.e1c.v8codestyle.internal.bsl.ui.ExecutableExtensionFactory:com.e1c.v8codestyle.internal.bsl.ui.services.BslModuleRegionsInfoService">
</bslModuleTextInsertInfoService>
</extension>
</plugin>

View File

@ -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;

View File

@ -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<String, BslModuleOffsets> suffixes;
/**
* Create and calculate module region offsets
*
* @param document actual {@link IDocument} to get offsets from, can't be {@code null}
* @param node {@link INode} to get offsets from, can't be {@code null}
* @param nodeAfter {@link INode} to get offsets from, can't be {@code null}
* @return module region information with calculated region offsets or {@code null}
*/
public static BslModuleOffsets create(IDocument document, INode node, INode nodeAfter)
{
try
{
int startLine = node.getTotalStartLine() - 1;
int startOffset = document.getLineOffset((startLine <= 1) ? 0 : startLine);
int endOffset = nodeAfter.getTotalOffset();
int insertOffset = document.getLineOffset(document.getLineOfOffset(nodeAfter.getTotalOffset()));
return new BslModuleOffsets(startOffset, endOffset, insertOffset);
}
catch (BadLocationException ex)
{
UiPlugin.log(UiPlugin.createErrorStatus("Can't create module region information", ex)); //$NON-NLS-1$
}
return null;
}
/**
* Returns start offset of module region
*
* @return offset before region declaration
*/
public int getStartOffset()
{
return startOffset;
}
/**
* Returns end offset of module region
*
* @return offset after region declaration
*/
public int getEndOffset()
{
return endOffset;
}
/**
* Returns before end offset inside module region
*
* @return offset before end of region declaration
*/
public int getBeforeEndOffset()
{
return insertOffset;
}
/**
* Add suffix of the name of this module region
*
* @param suffix to add to suffixes map of this module region
* @param document to update offsets, can't be {@code null}
* @param node to update offsets, can't be {@code null}
* @param nodeAfter to update offsets, can't be {@code null}
*/
public void addSuffix(String suffix, IDocument document, INode node, INode nodeAfter)
{
if (suffixes == null)
{
suffixes = new HashMap<>();
}
BslModuleOffsets suffixRegionInformation = create(document, node, nodeAfter);
if (suffixRegionInformation != null)
{
suffixes.put(suffix, suffixRegionInformation);
int suffixStartOffset = suffixRegionInformation.getStartOffset();
int suffixEndOffset = suffixRegionInformation.getEndOffset();
int suffixInsertOffset = suffixRegionInformation.getBeforeEndOffset();
if (insertOffset < suffixInsertOffset)
{
insertOffset = suffixInsertOffset;
endOffset = suffixEndOffset;
}
if (startOffset > suffixStartOffset)
{
startOffset = suffixStartOffset;
}
}
}
/**
* Is module region has suffixes
*
* @return {@code true} if module region has suffixes, {@code false} otherwise
*/
public boolean hasSuffixes()
{
return suffixes != null;
}
/**
* Returns module region information by suffix if exists
*
* @param suffix {@link String} suffix of declared name module region
* @return {@link BslModuleOffsets} if suffix exists, {@code null} otherwise
*/
public BslModuleOffsets getInformationBySuffix(String suffix)
{
if (hasSuffixes())
{
return suffixes.get(suffix);
}
return null;
}
private BslModuleOffsets(int startOffset, int endOffset, int insertOffset)
{
this.startOffset = startOffset;
this.endOffset = endOffset;
this.insertOffset = insertOffset;
}
}

View File

@ -0,0 +1,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 <code>int</code> insertion offset, cannot be negative
* @param module current {@link Module}, cannot be <code>null</code>
* @param regionName {@link String} region name, can be <code>null</code>
*/
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 <code>null</code>
*/
public String getRegionName()
{
return regionName;
}
}

View File

@ -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<RegionPreprocessor> regionPreprocessors = BslUtil.getAllRegionPreprocessors(module);
ScriptVariant scriptVariant = project.getScriptVariant();
String declaredRegionName = getDeclaredRegionName(moduleOwner, itemType, scriptVariant);
Map<String, BslModuleOffsets> 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<String, BslModuleOffsets> getRegionOffsets(IXtextDocument document,
List<RegionPreprocessor> regionPreprocessors, String targetRegionName, ScriptVariant scriptVariant)
{
ModuleStructureSection[] declaredRegionNames = ModuleStructureSection.values();
Map<String, BslModuleOffsets> regionOffsets = new HashMap<>(declaredRegionNames.length / 2);
for (RegionPreprocessor regionPreprocessor : regionPreprocessors)
{
INode nodeAfter = NodeModelUtils.findActualNodeFor(regionPreprocessor.getItemAfter());
if (nodeAfter != null)
{
String preprocessorRegionName = regionPreprocessor.getName();
for (int regionNameIndex = 0; regionNameIndex < declaredRegionNames.length; regionNameIndex++)
{
ModuleStructureSection moduleStructureSection = declaredRegionNames[regionNameIndex];
String declaredRegionName = moduleStructureSection.getName(scriptVariant);
if ((preprocessorRegionName != null)
&& isMatchingRegion(preprocessorRegionName, declaredRegionName))
{
INode node = NodeModelUtils.findActualNodeFor(regionPreprocessor.getItem());
if (node != null)
{
BslModuleOffsets moduleRegionInformation = null;
if (!preprocessorRegionName.equals(declaredRegionName))
{
if (!moduleStructureSection.isSuffixed())
{
continue;
}
String suffix = getSuffixOfMatchingRegion(preprocessorRegionName, declaredRegionName);
moduleRegionInformation = regionOffsets.get(declaredRegionName);
if (moduleRegionInformation == null)
{
moduleRegionInformation = BslModuleOffsets.create(document, node, nodeAfter);
if (moduleRegionInformation == null)
{
return regionOffsets;
}
}
moduleRegionInformation.addSuffix(suffix, document, node, nodeAfter);
}
if (moduleRegionInformation == null && !moduleStructureSection.isSuffixed())
{
moduleRegionInformation = BslModuleOffsets.create(document, node, nodeAfter);
}
if (moduleRegionInformation != null)
{
regionOffsets.put(declaredRegionName, moduleRegionInformation);
if ((targetRegionName != null) && targetRegionName.equals(preprocessorRegionName))
{
return regionOffsets;
}
}
}
}
}
}
}
return regionOffsets;
}
private int getRegionOffset(Map<String, BslModuleOffsets> regionOffsets, String declaredRegionName, String suffix,
int defaultOffset, ScriptVariant scriptVariant)
{
int offset = defaultOffset;
boolean createNewRegion = !isRegionExists(regionOffsets, declaredRegionName, suffix);
BslModuleOffsets regionOffset = regionOffsets.get(declaredRegionName);
if (regionOffset != null)
{
if (!suffix.isEmpty())
{
BslModuleOffsets suffixedRegionInformation = regionOffset.getInformationBySuffix(suffix);
if (suffixedRegionInformation != null)
{
return suffixedRegionInformation.getBeforeEndOffset();
}
else if (createNewRegion)
{
return getNewRegionOffset(regionOffsets, declaredRegionName, suffix, defaultOffset, scriptVariant);
}
}
return regionOffset.getBeforeEndOffset();
}
if (createNewRegion)
{
return getNewRegionOffset(regionOffsets, declaredRegionName, suffix, defaultOffset, scriptVariant);
}
return offset;
}
private boolean isRegionExists(Map<String, BslModuleOffsets> regionOffsets, String declaredRegionName,
String suffix)
{
BslModuleOffsets moduleRegionInformation = regionOffsets.get(declaredRegionName);
return (moduleRegionInformation != null)
&& (suffix.isEmpty() || moduleRegionInformation.getInformationBySuffix(suffix) != null);
}
private int getNewRegionOffset(Map<String, BslModuleOffsets> regionOffsets, String regionName, String suffix,
int defaultOffset, ScriptVariant scriptVariant)
{
boolean placeBefore = false;
int offset = regionOffsets.isEmpty() ? 0 : defaultOffset;
ModuleStructureSection[] declaredRegionNames = ModuleStructureSection.values();
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);
}
}

View File

@ -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)",

View File

@ -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;
* <br>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 <code>true</code> if region name must be suffixed, <code>false</code> otherwise
*/
public boolean isSuffixed()
{
return isSuffixed;
}
}

View File

@ -52,8 +52,6 @@ import com.e1c.g5.v8.dt.check.components.BasicCheck;
import com.e1c.g5.v8.dt.check.settings.IssueSeverity;
import com.e1c.g5.v8.dt.check.settings.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);

View File

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

View File

@ -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;
}

View File

@ -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());
}
}
}

View File

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

View File

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

View File

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

View File

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

View File

@ -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)",

View File

@ -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)
{

View File

@ -20,7 +20,7 @@ import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.IConfigurationProvider;
import com._1c.g5.v8.dt.core.platform.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();
}
}

View File

@ -1,89 +0,0 @@
/*******************************************************************************
* Copyright (C) 2022, 1C-Soft LLC and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* 1C-Soft LLC - initial API and implementation
*******************************************************************************/
package com.e1c.v8codestyle.internal.right;
import java.util.Collections;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
import com._1c.g5.v8.dt.core.platform.IConfigurationProvider;
import com._1c.g5.v8.dt.metadata.mdclass.Configuration;
import com._1c.g5.v8.dt.platform.version.IRuntimeVersionSupport;
import com._1c.g5.v8.dt.platform.version.Version;
import com._1c.g5.v8.dt.rights.IRightInfosService;
import com._1c.g5.v8.dt.rights.model.Right;
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.google.inject.Singleton;
/**
* This service is a correct wrapper of {@link IRightInfosService} to get correct data corresponding
* project runtime version.
* <br>
* FIXME Replace this service after refactoring of {@link IRightInfosService}.
*
* @author Dmitriy Marmyshev
*/
@Singleton
public class InternalRightInfosService
{
private final IRuntimeVersionSupport runtimeVersionSupport;
private final IConfigurationProvider configurationProvider;
private final Provider<IRightInfosService> rightInfosServiceProvider;
private final Map<Version, IRightInfosService> infos = new ConcurrentHashMap<>();
@Inject
public InternalRightInfosService(IRuntimeVersionSupport runtimeVersionSupport,
IConfigurationProvider configurationProvider, Provider<IRightInfosService> rightInfosServiceProvider)
{
this.runtimeVersionSupport = runtimeVersionSupport;
this.configurationProvider = configurationProvider;
this.rightInfosServiceProvider = rightInfosServiceProvider;
}
/**
* Gets the rights of some {@link EClass} of configuration metadata object that may have some rights.
*
* @param eClass the {@link EClass} of configuration metadata object that has some rights, cannot be {@code null}.
* @param context the context object of the configuration to determine platform version, cannot be {@code null}.
* @return the rights of the {@link EClass}
*/
public Set<Right> getEClassRights(EClass eClass, EObject context)
{
Version version = runtimeVersionSupport.getRuntimeVersionOrDefault(context, Version.LATEST);
IRightInfosService info = infos.computeIfAbsent(version, v -> {
IRightInfosService service = rightInfosServiceProvider.get();
Configuration configuration = configurationProvider.getConfiguration(context);
service.init(configuration);
return service;
});
if (info == null)
{
return Collections.emptySet();
}
return info.getEClassRights(eClass);
}
}

View File

@ -1,48 +0,0 @@
/*******************************************************************************
* Copyright (C) 2022, 1C-Soft LLC and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* 1C-Soft LLC - initial API and implementation
*******************************************************************************/
package com.e1c.v8codestyle.internal.right;
import com._1c.g5.v8.dt.rights.IRightInfosService;
import com.google.inject.AbstractModule;
/**
* The internal service module.
*
* @author Dmitriy Marmyshev
*/
public class ServiceModule
extends AbstractModule
{
private static final String SERVICE_CLASS = "com._1c.g5.v8.dt.internal.rights.RightsInfoService"; //$NON-NLS-1$
@SuppressWarnings("unchecked")
@Override
protected void configure()
{
// XXX remove this when the IRightInfosService become OSGi service
Class<? extends IRightInfosService> clazz = null;
try
{
clazz = (Class<? extends IRightInfosService>)Class.forName(SERVICE_CLASS, true,
IRightInfosService.class.getClassLoader());
}
catch (ClassNotFoundException e)
{
CorePlugin.logError(e);
}
// Here create new instance every time - this allows to bind it to specific platform Version
// See com.e1c.v8codestyle.internal.right.InternalRightInfosService for details.
bind(IRightInfosService.class).to(clazz);
}
}

View File

@ -19,10 +19,10 @@ import com._1c.g5.v8.dt.bm.index.rights.IBmRightsIndexManager;
import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.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);

View File

@ -19,10 +19,10 @@ import com._1c.g5.v8.dt.bm.index.rights.IBmRightsIndexManager;
import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.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);

View File

@ -19,10 +19,10 @@ import com._1c.g5.v8.dt.bm.index.rights.IBmRightsIndexManager;
import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.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);

View File

@ -19,10 +19,10 @@ import com._1c.g5.v8.dt.bm.index.rights.IBmRightsIndexManager;
import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.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);

View File

@ -19,10 +19,10 @@ import com._1c.g5.v8.dt.bm.index.rights.IBmRightsIndexManager;
import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.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);

View File

@ -19,10 +19,10 @@ import com._1c.g5.v8.dt.bm.index.rights.IBmRightsIndexManager;
import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.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);

View File

@ -19,10 +19,10 @@ import com._1c.g5.v8.dt.bm.index.rights.IBmRightsIndexManager;
import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.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);

View File

@ -18,10 +18,10 @@ import com._1c.g5.v8.dt.bm.index.rights.IBmRightsIndexManager;
import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.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);

View File

@ -18,10 +18,10 @@ import com._1c.g5.v8.dt.bm.index.rights.IBmRightsIndexManager;
import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.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);

View File

@ -18,10 +18,10 @@ import com._1c.g5.v8.dt.bm.index.rights.IBmRightsIndexManager;
import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.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);

View File

@ -18,10 +18,10 @@ import com._1c.g5.v8.dt.bm.index.rights.IBmRightsIndexManager;
import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.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);

View File

@ -19,10 +19,10 @@ import com._1c.g5.v8.dt.bm.index.rights.IBmRightsIndexManager;
import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.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);

View File

@ -19,10 +19,10 @@ import com._1c.g5.v8.dt.bm.index.rights.IBmRightsIndexManager;
import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.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);

View File

@ -18,10 +18,10 @@ import com._1c.g5.v8.dt.bm.index.rights.IBmRightsIndexManager;
import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.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);

View File

@ -19,10 +19,10 @@ import com._1c.g5.v8.dt.bm.index.rights.IBmRightsIndexManager;
import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.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);

View File

@ -19,10 +19,10 @@ import com._1c.g5.v8.dt.bm.index.rights.IBmRightsIndexManager;
import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.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);

View File

@ -19,10 +19,10 @@ import com._1c.g5.v8.dt.bm.index.rights.IBmRightsIndexManager;
import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.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);

View File

@ -19,10 +19,10 @@ import com._1c.g5.v8.dt.bm.index.rights.IBmRightsIndexManager;
import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.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);

View File

@ -19,10 +19,10 @@ import com._1c.g5.v8.dt.bm.index.rights.IBmRightsIndexManager;
import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.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);

View File

@ -19,10 +19,10 @@ import com._1c.g5.v8.dt.bm.index.rights.IBmRightsIndexManager;
import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.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);

View File

@ -19,10 +19,10 @@ import com._1c.g5.v8.dt.bm.index.rights.IBmRightsIndexManager;
import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.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);

View File

@ -19,10 +19,10 @@ import com._1c.g5.v8.dt.bm.index.rights.IBmRightsIndexManager;
import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.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);

View File

@ -19,10 +19,10 @@ import com._1c.g5.v8.dt.bm.index.rights.IBmRightsIndexManager;
import com._1c.g5.v8.dt.core.platform.IBmModelManager;
import com._1c.g5.v8.dt.core.platform.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,

View File

@ -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<MdObject> getDefaultObjectsWithRight(RoleDescription description, IProgressMonitor monitor)
@ -413,7 +424,7 @@ public abstract class RoleRightSetCheck
private boolean hasRight(EClass eClass, EObject context)
{
Set<Right> rights = rightInfosService.getEClassRights(eClass, context);
Set<Right> rights = rightInfosService.getEClassRights(context, eClass);
Set<String> rightNames = rights.stream().map(NamedElement::getName).collect(Collectors.toSet());
return rightNames.contains(getRightName().getName());
}

View File

@ -13,7 +13,7 @@
<!-- EDT -->
<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
<repository id="dt_repository" location="https://edt.1c.ru/downloads/releases/ruby/2023.2/"/>
<repository id="dt_repository" location="https://edt.1c.ru/downloads/releases/ruby/2023.3/"/>
<unit id="com._1c.g5.aef.feature.feature.group" version="0.0.0"/>
<unit id="com._1c.g5.commons.feature.group" version="0.0.0"/>
<unit id="com._1c.g5.edt.license.feature.group" version="0.0.0"/>

View File

@ -13,7 +13,7 @@
<!-- EDT -->
<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
<repository id="dt_repository" location="https://edt.1c.ru/downloads/releases/ruby/2023.2/"/>
<repository id="dt_repository" location="https://edt.1c.ru/downloads/releases/ruby/2023.3/"/>
<unit id="com._1c.g5.aef.feature.feature.group" version="0.0.0"/>
<unit id="com._1c.g5.commons.feature.group" version="0.0.0"/>
<unit id="com._1c.g5.edt.license.feature.group" version="0.0.0"/>

View File

@ -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)"

View File

@ -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<Marker> markers = getMarkers(MODULE_CALL_NO_PUBLIC_FILE_NAME);

View File

@ -72,10 +72,10 @@ public class SelfReferenceCheckTest
List<Marker> 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());
}

View File

@ -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<Marker> markers = getMarkers(COMMON_MODULE_SERVER_CALL_FILE_NAME);

View File

@ -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");

View File

@ -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");

View File

@ -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)"

View File

@ -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)"

View File

@ -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);

View File

@ -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)",

View File

@ -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)"

View File

@ -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();
}
}