1
0
mirror of https://github.com/1C-Company/v8-code-style.git synced 2025-02-01 22:00:08 +02:00

Merge pull request #1011 from 1C-Company/bugfix/1010-xtext-serivce-refactoring

#1010 Исправление и рефакторинг инжектинга сервисов Xtext
This commit is contained in:
Dmitriy Marmyshev 2022-03-22 16:53:51 +03:00 committed by GitHub
commit e246d4d04e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with 132 additions and 114 deletions

View File

@ -66,7 +66,7 @@
</check>
<check
category="com.e1c.v8codestyle.bsl"
class="com.e1c.v8codestyle.bsl.check.EmptyExceptStatementCheck">
class="com.e1c.v8codestyle.internal.bsl.ExecutableExtensionFactory:com.e1c.v8codestyle.bsl.check.EmptyExceptStatementCheck">
</check>
<check
category="com.e1c.v8codestyle.bsl"
@ -210,7 +210,7 @@
</check>
<check
category="com.e1c.v8codestyle.bsl"
class="com.e1c.v8codestyle.bsl.check.IsInRoleCheck">
class="com.e1c.v8codestyle.internal.bsl.ExecutableExtensionFactory:com.e1c.v8codestyle.bsl.check.IsInRoleCheck">
</check>
<!-- Temporary disabling checks
<check category="com.e1c.v8codestyle.bsl"
@ -225,11 +225,11 @@
-->
<check
category="com.e1c.v8codestyle.bsl"
class="com.e1c.v8codestyle.bsl.check.InvocationFormEventHandlerCheck">
class="com.e1c.v8codestyle.internal.bsl.ExecutableExtensionFactory:com.e1c.v8codestyle.bsl.check.InvocationFormEventHandlerCheck">
</check>
<check
category="com.e1c.v8codestyle.bsl"
class="com.e1c.v8codestyle.bsl.check.NewColorCheck">
class="com.e1c.v8codestyle.internal.bsl.ExecutableExtensionFactory:com.e1c.v8codestyle.bsl.check.NewColorCheck">
</check>
<check
category="com.e1c.v8codestyle.bsl"

View File

@ -23,10 +23,8 @@ import java.util.Set;
import java.util.TreeSet;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.EcoreUtil2;
import org.eclipse.xtext.resource.IResourceServiceProvider;
import com._1c.g5.v8.dt.bsl.contextdef.IBslModuleContextDefService;
import com._1c.g5.v8.dt.bsl.model.BinaryExpression;
@ -83,24 +81,24 @@ public class EventHandlerBooleanParamCheck
private static final Set<String> DEFAULT_PARAMS_TO_FALSE = Set.of("StandardProcessing", "Perform"); //$NON-NLS-1$ //$NON-NLS-2$
private BslEventsService bslEventsService;
private final BslEventsService bslEventsService;
private IBslModuleContextDefService contextDefService;
private final IBslModuleContextDefService contextDefService;
/**
* Instantiates a new event handler boolean parameter check.
*
* @param contextDefService the context definition service, cannot be {@code null}.
* @param bslEventsService the BSL events service service, cannot be {@code null}.
*/
@Inject
public EventHandlerBooleanParamCheck(IBslModuleContextDefService contextDefService)
public EventHandlerBooleanParamCheck(IBslModuleContextDefService contextDefService,
BslEventsService bslEventsService)
{
super();
this.contextDefService = contextDefService;
IResourceServiceProvider rsp =
IResourceServiceProvider.Registry.INSTANCE.getResourceServiceProvider(URI.createURI("*.bsl")); //$NON-NLS-1$
this.bslEventsService = rsp.get(BslEventsService.class);
this.bslEventsService = bslEventsService;
}
@Override

View File

@ -18,10 +18,8 @@ import java.util.List;
import java.util.Objects;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.EcoreUtil2;
import org.eclipse.xtext.resource.IResourceServiceProvider;
import com._1c.g5.v8.dt.bsl.contextdef.IBslModuleContextDefService;
import com._1c.g5.v8.dt.bsl.model.DynamicFeatureAccess;
@ -67,16 +65,22 @@ public final class LockOutOfTryCheck
private BslEventsService bslEventsService;
private IBslModuleContextDefService contextDefService;
/**
* Instantiates a new lock out of try check.
*
* @param contextDefService the context def service, cannot be {@code null}
* @param typesComputer the types computer service, cannot be {@code null}
* @param bslEventsService the BSL events service, cannot be {@code null}
*/
@Inject
public LockOutOfTryCheck(IBslModuleContextDefService contextDefService)
public LockOutOfTryCheck(IBslModuleContextDefService contextDefService, TypesComputer typesComputer,
BslEventsService bslEventsService)
{
super();
this.contextDefService = contextDefService;
IResourceServiceProvider rsp =
IResourceServiceProvider.Registry.INSTANCE.getResourceServiceProvider(URI.createURI("*.bsl")); //$NON-NLS-1$
this.typesComputer = rsp.get(TypesComputer.class);
this.bslEventsService = rsp.get(BslEventsService.class);
this.bslEventsService = bslEventsService;
this.typesComputer = typesComputer;
}
@Override

View File

@ -20,11 +20,9 @@ import java.util.Map;
import java.util.stream.Collectors;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.EcoreUtil2;
import org.eclipse.xtext.nodemodel.INode;
import org.eclipse.xtext.resource.IResourceServiceProvider;
import com._1c.g5.v8.dt.bsl.common.VariableProcessor;
import com._1c.g5.v8.dt.bsl.model.Block;
@ -49,6 +47,7 @@ import com.e1c.g5.v8.dt.check.settings.IssueType;
import com.e1c.v8codestyle.check.CommonSenseCheckExtension;
import com.e1c.v8codestyle.internal.bsl.BslPlugin;
import com.google.common.collect.Lists;
import com.google.inject.Inject;
/**
* Unused module local variable check.
@ -66,15 +65,18 @@ public final class ModuleUnusedLocalVariableCheck
/**
* Instantiates a new module unused local variable check.
*
* @param dynamicComputer the dynamic computer service, cannot be {@code null}
* @param ownerService the owner service service, cannot be {@code null}
*/
public ModuleUnusedLocalVariableCheck()
@Inject
public ModuleUnusedLocalVariableCheck(DynamicFeatureAccessComputer dynamicComputer,
IBslOwnerComputerService ownerService)
{
super();
IResourceServiceProvider serviceProvider =
IResourceServiceProvider.Registry.INSTANCE.getResourceServiceProvider(URI.createURI("*.bsl")); //$NON-NLS-1$
dynamicComputer = serviceProvider.get(DynamicFeatureAccessComputer.class);
ownerService = serviceProvider.get(IBslOwnerComputerService.class);
this.dynamicComputer = dynamicComputer;
this.ownerService = ownerService;
}
@Override

View File

@ -23,7 +23,6 @@ import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.xtext.EcoreUtil2;
import org.eclipse.xtext.resource.IResourceServiceProvider;
import com._1c.g5.v8.dt.bsl.model.DynamicFeatureAccess;
import com._1c.g5.v8.dt.bsl.model.Expression;
@ -50,6 +49,7 @@ import com.e1c.g5.v8.dt.check.settings.IssueSeverity;
import com.e1c.g5.v8.dt.check.settings.IssueType;
import com.e1c.v8codestyle.check.CommonSenseCheckExtension;
import com.e1c.v8codestyle.internal.bsl.BslPlugin;
import com.google.inject.Inject;
/**
* Check that notify description procedure is exist and available at the client.
@ -78,16 +78,17 @@ public class NotifyDescriptionToServerProcedureCheck
/**
* Instantiates a new notify description to server procedure check.
*
* @param dynamicFeatureAccessComputer the dynamic feature access computer service, cannot be {@code null}
* @param exportMethodProvider the export method provider service, cannot be {@code null}
*/
public NotifyDescriptionToServerProcedureCheck()
@Inject
public NotifyDescriptionToServerProcedureCheck(DynamicFeatureAccessComputer dynamicFeatureAccessComputer,
ExportMethodProvider exportMethodProvider)
{
super();
IResourceServiceProvider rsp =
IResourceServiceProvider.Registry.INSTANCE.getResourceServiceProvider(URI.createURI("*.bsl")); //$NON-NLS-1$
this.dynamicFeatureAccessComputer = rsp.get(DynamicFeatureAccessComputer.class);
this.exportMethodProvider = rsp.get(ExportMethodProvider.class);
this.dynamicFeatureAccessComputer = dynamicFeatureAccessComputer;
this.exportMethodProvider = exportMethodProvider;
}
@Override

View File

@ -27,13 +27,11 @@ import java.util.TreeSet;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.xtext.EcoreUtil2;
import org.eclipse.xtext.nodemodel.ICompositeNode;
import org.eclipse.xtext.nodemodel.util.NodeModelUtils;
import org.eclipse.xtext.resource.IResourceServiceProvider;
import com._1c.g5.v8.dt.bsl.model.BooleanLiteral;
import com._1c.g5.v8.dt.bsl.model.DynamicFeatureAccess;
@ -89,17 +87,17 @@ public class QueryInLoopCheck
private final IRuntimeVersionSupport versionSupport;
/**
* Instantiates a new query in loop check.
*
* @param versionSupport - Version support for 1C:Enterprise projects service, cannot be {@code null}
* @param typesComputer the types computer service, cannot be {@code null}
*/
@Inject
public QueryInLoopCheck(IRuntimeVersionSupport versionSupport)
public QueryInLoopCheck(IRuntimeVersionSupport versionSupport, TypesComputer typesComputer)
{
super();
IResourceServiceProvider rsp =
IResourceServiceProvider.Registry.INSTANCE.getResourceServiceProvider(URI.createURI("*.bsl")); //$NON-NLS-1$
typesComputer = rsp.get(TypesComputer.class);
this.typesComputer = typesComputer;
this.versionSupport = versionSupport;
}

View File

@ -16,8 +16,6 @@ import static com._1c.g5.v8.dt.mcore.McorePackage.Literals.NAMED_ELEMENT__NAME;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.common.util.URI;
import org.eclipse.xtext.resource.IResourceServiceProvider;
import org.eclipse.xtext.scoping.IScopeProvider;
import com._1c.g5.v8.dt.bsl.comment.DocumentationCommentProperties;
@ -62,16 +60,17 @@ public class ExportFunctionReturnSectionCheck
*
* @param resourceLookup the resource lookup service, cannot be {@code null}.
* @param bslPreferences the BSL preferences service, cannot be {@code null}.
* @param commentProvider the comment provider service, cannot be {@code null}.
* @param scopeProvider the scope provider service, cannot be {@code null}.
*/
@Inject
public ExportFunctionReturnSectionCheck(IResourceLookup resourceLookup, IBslPreferences bslPreferences)
public ExportFunctionReturnSectionCheck(IResourceLookup resourceLookup, IBslPreferences bslPreferences,
BslMultiLineCommentDocumentationProvider commentProvider, IScopeProvider scopeProvider)
{
this.resourceLookup = resourceLookup;
this.bslPreferences = bslPreferences;
IResourceServiceProvider rsp =
IResourceServiceProvider.Registry.INSTANCE.getResourceServiceProvider(URI.createURI("*.bsl")); //$NON-NLS-1$
this.commentProvider = rsp.get(BslMultiLineCommentDocumentationProvider.class);
this.scopeProvider = rsp.get(IScopeProvider.class);
this.commentProvider = commentProvider;
this.scopeProvider = scopeProvider;
}
@Override

View File

@ -18,9 +18,7 @@ import java.util.Set;
import java.util.TreeSet;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.resource.IResourceServiceProvider;
import org.eclipse.xtext.scoping.IScopeProvider;
import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment;
@ -37,6 +35,7 @@ import com.e1c.g5.v8.dt.check.settings.IssueSeverity;
import com.e1c.g5.v8.dt.check.settings.IssueType;
import com.e1c.v8codestyle.check.CommonSenseCheckExtension;
import com.e1c.v8codestyle.internal.bsl.BslPlugin;
import com.google.inject.Inject;
/**
* Check field that it has definition of complex type and also reference to constructor function instead of just only
@ -77,12 +76,13 @@ public class FieldDefinitionTypeWithLinkRefCheck
/**
* Instantiates a new field definition type with link reference to constructor function check.
*
* @param scopeProvider the scope provider service, cannot be {@code null}.
*/
public FieldDefinitionTypeWithLinkRefCheck()
@Inject
public FieldDefinitionTypeWithLinkRefCheck(IScopeProvider scopeProvider)
{
IResourceServiceProvider rsp =
IResourceServiceProvider.Registry.INSTANCE.getResourceServiceProvider(URI.createURI("*.bsl")); //$NON-NLS-1$
this.scopeProvider = rsp.get(IScopeProvider.class);
this.scopeProvider = scopeProvider;
}
@Override

View File

@ -16,10 +16,8 @@ import java.util.Collection;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.naming.IQualifiedNameConverter;
import org.eclipse.xtext.resource.IResourceServiceProvider;
import org.eclipse.xtext.scoping.IScope;
import org.eclipse.xtext.scoping.IScopeProvider;
@ -65,16 +63,14 @@ public class FunctionReturnSectionCheck
@Inject
public FunctionReturnSectionCheck(IResourceLookup resourceLookup, IBslPreferences bslPreferences,
IQualifiedNameConverter qualifiedNameConverter)
IQualifiedNameConverter qualifiedNameConverter, IScopeProvider scopeProvider,
BslMultiLineCommentDocumentationProvider commentProvider)
{
this.resourceLookup = resourceLookup;
this.bslPreferences = bslPreferences;
this.qualifiedNameConverter = qualifiedNameConverter;
IResourceServiceProvider rsp =
IResourceServiceProvider.Registry.INSTANCE.getResourceServiceProvider(URI.createURI("*.bsl")); //$NON-NLS-1$
this.scopeProvider = rsp.get(IScopeProvider.class);
this.commentProvider = rsp.get(BslMultiLineCommentDocumentationProvider.class);
this.scopeProvider = scopeProvider;
this.commentProvider = commentProvider;
}
@Override

View File

@ -13,8 +13,6 @@
package com.e1c.v8codestyle.bsl.comment.check;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.common.util.URI;
import org.eclipse.xtext.resource.IResourceServiceProvider;
import org.eclipse.xtext.scoping.IScopeProvider;
import com._1c.g5.v8.dt.bsl.documentation.comment.BslDocumentationComment;
@ -28,6 +26,7 @@ import com.e1c.g5.v8.dt.check.settings.IssueSeverity;
import com.e1c.g5.v8.dt.check.settings.IssueType;
import com.e1c.v8codestyle.check.CommonSenseCheckExtension;
import com.e1c.v8codestyle.internal.bsl.BslPlugin;
import com.google.inject.Inject;
/**
* Validates {@link LinkPart} of documentation comment that it referenced to an existing object.
@ -57,12 +56,13 @@ public class RefLinkPartCheck
/**
* Instantiates a new reference link part check.
*
* @param scopeProvider the scope provider service, cannot be {@code null}.
*/
public RefLinkPartCheck()
@Inject
public RefLinkPartCheck(IScopeProvider scopeProvider)
{
IResourceServiceProvider rsp =
IResourceServiceProvider.Registry.INSTANCE.getResourceServiceProvider(URI.createURI("*.bsl")); //$NON-NLS-1$
this.scopeProvider = rsp.get(IScopeProvider.class);
this.scopeProvider = scopeProvider;
}
@Override

View File

@ -15,10 +15,8 @@ package com.e1c.v8codestyle.bsl.comment.check;
import java.text.MessageFormat;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.common.util.URI;
import org.eclipse.xtext.naming.IQualifiedNameConverter;
import org.eclipse.xtext.resource.IEObjectDescription;
import org.eclipse.xtext.resource.IResourceServiceProvider;
import org.eclipse.xtext.scoping.IScope;
import org.eclipse.xtext.scoping.IScopeProvider;
@ -52,12 +50,10 @@ public class TypeDefinitionCheck
private final IQualifiedNameConverter qualifiedNameConverter;
@Inject
public TypeDefinitionCheck(IQualifiedNameConverter qualifiedNameConverter)
public TypeDefinitionCheck(IQualifiedNameConverter qualifiedNameConverter, IScopeProvider scopeProvider)
{
this.qualifiedNameConverter = qualifiedNameConverter;
IResourceServiceProvider resourceServiceProvider =
IResourceServiceProvider.Registry.INSTANCE.getResourceServiceProvider(URI.createURI("*.bsl")); //$NON-NLS-1$
this.scopeProvider = resourceServiceProvider.get(IScopeProvider.class);
this.scopeProvider = scopeProvider;
}
@Override

View File

@ -25,10 +25,8 @@ import java.util.stream.Collectors;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.xtext.naming.IQualifiedNameConverter;
import org.eclipse.xtext.resource.IResourceServiceProvider;
import org.eclipse.xtext.scoping.IScope;
import org.eclipse.xtext.scoping.IScopeProvider;
import org.eclipse.xtext.util.Pair;
@ -103,23 +101,26 @@ public class FunctionCtorReturnSectionCheck
* @param v8ProjectManager the v8 project manager service, cannot be {@code null}.
* @param qualifiedNameConverter the qualified name converter service, cannot be {@code null}.
* @param bslPreferences the BSL preferences service, cannot be {@code null}.
* @param typesComputer the types computer service, cannot be {@code null}.
* @param dynamicComputer the dynamic computer service, cannot be {@code null}.
* @param scopeProvider the scope provider service, cannot be {@code null}.
* @param commentProvider the comment provider service, cannot be {@code null}.
*/
@Inject
public FunctionCtorReturnSectionCheck(IResourceLookup resourceLookup, IV8ProjectManager v8ProjectManager,
IQualifiedNameConverter qualifiedNameConverter, IBslPreferences bslPreferences)
IQualifiedNameConverter qualifiedNameConverter, IBslPreferences bslPreferences, TypesComputer typesComputer,
DynamicFeatureAccessComputer dynamicComputer, IScopeProvider scopeProvider,
BslMultiLineCommentDocumentationProvider commentProvider)
{
super();
IResourceServiceProvider rsp =
IResourceServiceProvider.Registry.INSTANCE.getResourceServiceProvider(URI.createURI("*.bsl")); //$NON-NLS-1$
this.typesComputer = rsp.get(TypesComputer.class);
this.dynamicComputer = rsp.get(DynamicFeatureAccessComputer.class);
this.scopeProvider = rsp.get(IScopeProvider.class);
this.commentProvider = rsp.get(BslMultiLineCommentDocumentationProvider.class);
this.typesComputer = typesComputer;
this.dynamicComputer = dynamicComputer;
this.scopeProvider = scopeProvider;
this.commentProvider = commentProvider;
this.qualifiedNameConverter = qualifiedNameConverter;
this.resourceLookup = resourceLookup;
this.v8ProjectManager = v8ProjectManager;
this.bslPreferences = bslPreferences;
}
@Override

View File

@ -29,14 +29,12 @@ import java.util.stream.Collectors;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EcoreFactory;
import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.xtext.EcoreUtil2;
import org.eclipse.xtext.naming.IQualifiedNameConverter;
import org.eclipse.xtext.resource.IResourceServiceProvider;
import org.eclipse.xtext.scoping.IScope;
import org.eclipse.xtext.util.Triple;
import org.eclipse.xtext.util.Tuples;
@ -136,16 +134,15 @@ public class InvocationParamIntersectionCheck
* @param bslPreferences the BSL preferences service, cannot be {@code null}.
* @param qualifiedNameConverter the qualified name converter service, cannot be {@code null}.
* @param v8ProjectManager the v 8 project manager service, cannot be {@code null}.
* @param exportMethodTypeProvider the export method type provider service, cannot be {@code null}.
*/
@Inject
public InvocationParamIntersectionCheck(IResourceLookup resourceLookup, IBslPreferences bslPreferences,
IQualifiedNameConverter qualifiedNameConverter, IV8ProjectManager v8ProjectManager)
IQualifiedNameConverter qualifiedNameConverter, IV8ProjectManager v8ProjectManager,
ExportMethodTypeProvider exportMethodTypeProvider)
{
super(resourceLookup, bslPreferences, qualifiedNameConverter);
IResourceServiceProvider rsp =
IResourceServiceProvider.Registry.INSTANCE.getResourceServiceProvider(URI.createURI("*.bsl")); //$NON-NLS-1$
this.exportMethodTypeProvider = rsp.get(ExportMethodTypeProvider.class);
this.exportMethodTypeProvider = exportMethodTypeProvider;
this.v8ProjectManager = v8ProjectManager;
}

View File

@ -15,11 +15,8 @@ package com.e1c.v8codestyle.internal.bsl;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Plugin;
import org.eclipse.core.runtime.Status;
import org.eclipse.xtext.ui.shared.SharedStateModule;
import org.eclipse.xtext.util.Modules2;
import org.osgi.framework.BundleContext;
import com._1c.g5.v8.dt.bsl.BslRuntimeModule;
import com._1c.g5.v8.dt.bsl.model.BslPackage;
import com._1c.g5.wiring.InjectorAwareServiceRegistrator;
import com._1c.g5.wiring.ServiceInitialization;
@ -27,7 +24,6 @@ import com.e1c.v8codestyle.bsl.IModuleStructureProvider;
import com.e1c.v8codestyle.bsl.qfix.external.BslCheckFixBoostrap;
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.Module;
/**
* The bundle activator to support plug-in life-cycle
@ -186,15 +182,7 @@ public class BslPlugin
{
try
{
Module internalServiceModule = new ServiceModule();
Module bslExternalServicesModule = new com._1c.g5.v8.dt.bsl.ExternalServicesModule(this);
Module sharedStateModule = new SharedStateModule();
Module externalDepModule = new ExternalDependenciesModule(this);
Module bslRuntimeModule = new BslRuntimeModule();
Module mergedModule = Modules2.mixin(internalServiceModule, bslExternalServicesModule, sharedStateModule,
bslRuntimeModule, externalDepModule);
return Guice.createInjector(mergedModule);
return Guice.createInjector(new ServiceModule(), new ExternalDependenciesModule(this));
}
catch (Exception e)
{

View File

@ -14,19 +14,30 @@
package com.e1c.v8codestyle.internal.bsl;
import org.eclipse.core.runtime.Plugin;
import org.eclipse.emf.common.util.URI;
import org.eclipse.xtext.naming.IQualifiedNameConverter;
import org.eclipse.xtext.naming.IQualifiedNameProvider;
import org.eclipse.xtext.resource.IResourceDescription;
import org.eclipse.xtext.resource.IResourceServiceProvider;
import org.eclipse.xtext.scoping.IScopeProvider;
import org.eclipse.xtext.ui.editor.IURIEditorOpener;
import com._1c.g5.v8.dt.bsl.common.IBslPreferences;
import com._1c.g5.v8.dt.bsl.contextdef.IBslModuleContextDefService;
import com._1c.g5.v8.dt.bsl.documentation.comment.BslMultiLineCommentDocumentationProvider;
import com._1c.g5.v8.dt.bsl.model.resource.owner.IBslOwnerComputerService;
import com._1c.g5.v8.dt.bsl.resource.BslEventsService;
import com._1c.g5.v8.dt.bsl.resource.DynamicFeatureAccessComputer;
import com._1c.g5.v8.dt.bsl.resource.ExportMethodProvider;
import com._1c.g5.v8.dt.bsl.resource.TypesComputer;
import com._1c.g5.v8.dt.bsl.services.BslGrammarAccess;
import com._1c.g5.v8.dt.bsl.typesystem.ExportMethodTypeProvider;
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.wiring.AbstractServiceAwareModule;
import com.e1c.g5.v8.dt.check.qfix.IFixRepository;
import com.e1c.g5.v8.dt.check.settings.ICheckRepository;
import com.e1c.v8codestyle.bsl.qfix.external.IXtextBslModuleFixProvider;
import com.e1c.v8codestyle.bsl.qfix.external.XtextBslModuleFixProvider;
/**
* The external dependencies for plugin
@ -55,6 +66,24 @@ class ExternalDependenciesModule
bind(ICheckRepository.class).toService();
bind(IFixRepository.class).toService();
bind(IXtextBslModuleFixProvider.class).to(XtextBslModuleFixProvider.class);
URI uri = URI.createURI("*.bsl"); //$NON-NLS-1$
final IResourceServiceProvider rsp = IResourceServiceProvider.Registry.INSTANCE.getResourceServiceProvider(uri);
bind(IResourceDescription.Manager.class).toProvider(() -> rsp.get(IResourceDescription.Manager.class));
bind(BslEventsService.class).toProvider(() -> rsp.get(BslEventsService.class));
bind(TypesComputer.class).toProvider(() -> rsp.get(TypesComputer.class));
bind(DynamicFeatureAccessComputer.class).toProvider(() -> rsp.get(DynamicFeatureAccessComputer.class));
bind(ExportMethodProvider.class).toProvider(() -> rsp.get(ExportMethodProvider.class));
bind(ExportMethodTypeProvider.class).toProvider(() -> rsp.get(ExportMethodTypeProvider.class));
bind(BslMultiLineCommentDocumentationProvider.class)
.toProvider(() -> rsp.get(BslMultiLineCommentDocumentationProvider.class));
bind(IBslOwnerComputerService.class).toProvider(() -> rsp.get(IBslOwnerComputerService.class));
bind(IScopeProvider.class).toProvider(() -> rsp.get(IScopeProvider.class));
// Remove this after 2021.1
bind(BslGrammarAccess.class).toProvider(() -> rsp.get(BslGrammarAccess.class));
bind(IURIEditorOpener.class).toProvider(() -> rsp.get(IURIEditorOpener.class));
}
}

View File

@ -13,6 +13,8 @@
package com.e1c.v8codestyle.internal.bsl;
import com.e1c.v8codestyle.bsl.IModuleStructureProvider;
import com.e1c.v8codestyle.bsl.qfix.external.IXtextBslModuleFixProvider;
import com.e1c.v8codestyle.bsl.qfix.external.XtextBslModuleFixProvider;
import com.google.inject.AbstractModule;
import com.google.inject.Singleton;
@ -30,6 +32,8 @@ public class ServiceModule
{
bind(IModuleStructureProvider.class).to(ModuleStructureProvider.class).in(Singleton.class);
// Remove this after 2022.1
bind(IXtextBslModuleFixProvider.class).to(XtextBslModuleFixProvider.class).in(Singleton.class);
}
}

View File

@ -13,9 +13,12 @@
package com.e1c.v8codestyle.internal.ql;
import org.eclipse.core.runtime.Plugin;
import org.eclipse.emf.common.util.URI;
import org.eclipse.xtext.resource.IResourceServiceProvider;
import com._1c.g5.v8.dt.core.platform.IConfigurationProvider;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com._1c.g5.v8.dt.ql.typesystem.IDynamicDbViewFieldComputer;
import com._1c.g5.wiring.AbstractServiceAwareModule;
/**
@ -41,6 +44,11 @@ public class ExternalDependenciesModule
{
bind(IConfigurationProvider.class).toService();
bind(IV8ProjectManager.class).toService();
URI uri = URI.createURI("*.qldcs"); //$NON-NLS-1$
final IResourceServiceProvider rsp = IResourceServiceProvider.Registry.INSTANCE.getResourceServiceProvider(uri);
bind(IDynamicDbViewFieldComputer.class).toProvider(() -> rsp.get(IDynamicDbViewFieldComputer.class));
}
}

View File

@ -20,10 +20,8 @@ import java.util.List;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.common.util.TreeIterator;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.EcoreUtil2;
import org.eclipse.xtext.resource.IResourceServiceProvider;
import com._1c.g5.v8.dt.metadata.dbview.DbViewElement;
import com._1c.g5.v8.dt.metadata.dbview.DbViewSelectDef;
@ -42,6 +40,7 @@ import com.e1c.g5.v8.dt.check.settings.IssueType;
import com.e1c.g5.v8.dt.ql.check.QlBasicDelegateCheck;
import com.e1c.v8codestyle.check.StandardCheckExtension;
import com.e1c.v8codestyle.internal.ql.CorePlugin;
import com.google.inject.Inject;
/**
* Checks that all dimensions of virtual table placed in parameters instead of filter.
@ -55,13 +54,11 @@ public class VirtualTableFiltersCheck
private final IDynamicDbViewFieldComputer dynamicDbViewFieldComputer;
public VirtualTableFiltersCheck()
@Inject
public VirtualTableFiltersCheck(IDynamicDbViewFieldComputer dynamicDbViewFieldComputer)
{
super();
IResourceServiceProvider rsp =
IResourceServiceProvider.Registry.INSTANCE.getResourceServiceProvider(URI.createURI("*.qldcs")); //$NON-NLS-1$
this.dynamicDbViewFieldComputer = rsp.get(IDynamicDbViewFieldComputer.class);
this.dynamicDbViewFieldComputer = dynamicDbViewFieldComputer;
}
@Override