1
0
mirror of https://github.com/1C-Company/v8-code-style.git synced 2026-05-21 02:19:05 +02:00

G5V8DT-24189 При добавлении обработчика события или команды автоматически размещать его в соответствующей области

This commit is contained in:
Nikita Kuznetsov
2023-11-01 11:28:42 +03:00
parent 8e2519a0f2
commit 01f7c72e71
5 changed files with 31 additions and 29 deletions
@@ -37,6 +37,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.ui.texteditor;version="[1.1.0,2.0.0)",
com._1c.g5.v8.dt.mcore;version="[7.0.0,8.0.0)",
com._1c.g5.v8.dt.metadata.mdclass;version="[9.0.0,10.0.0)",
@@ -369,10 +369,10 @@
</fix>
</extension>
<extension
point="com._1c.g5.v8.dt.bsl.ui.bslModuleInformationService">
<bslModuleInformationService
class="com.e1c.v8codestyle.internal.bsl.ui.services.BslModuleRegionsService">
</bslModuleInformationService>
point="com._1c.g5.v8.dt.bsl.ui.bslModuleTextInsertInfoService">
<bslModuleTextInsertInfoService
class="com.e1c.v8codestyle.internal.bsl.ui.services.BslModuleRegionsInfoService">
</bslModuleTextInsertInfoService>
</extension>
</plugin>
@@ -60,7 +60,7 @@ public final class BslModuleOffsets
}
/**
* Start offset of module region
* Returns start offset of module region
*
* @return offset before region declaration
*/
@@ -70,7 +70,7 @@ public final class BslModuleOffsets
}
/**
* End offset of module region
* Returns end offset of module region
*
* @return offset after region declaration
*/
@@ -80,7 +80,7 @@ public final class BslModuleOffsets
}
/**
* Before end offset inside module region
* Returns before end offset inside module region
*
* @return offset before end of region declaration
*/
@@ -133,7 +133,7 @@ public final class BslModuleOffsets
}
/**
* Get module region information by suffix if exists
* 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
@@ -3,7 +3,7 @@
*/
package com.e1c.v8codestyle.internal.bsl.ui.services;
import com._1c.g5.v8.dt.bsl.common.IBslModuleInformation;
import com._1c.g5.v8.dt.bsl.common.IBslModuleTextInsertInfo;
import com._1c.g5.v8.dt.bsl.model.Module;
/**
@@ -11,21 +11,21 @@ import com._1c.g5.v8.dt.bsl.model.Module;
*
* @author Kuznetsov Nikita
*/
public class BslModuleRegionInformation
implements IBslModuleInformation
public class BslModuleRegionsInfo
implements IBslModuleTextInsertInfo
{
private final int insertPosition;
private final Module module;
private final String regionName;
/**
* {@link BslModuleRegionInformation} constructor
* {@link BslModuleRegionsInfo} constructor
*
* @param insertPosition
* @param insertPosition <code>int</code> insertion offset, cannot be negative
* @param module current {@link Module}, cannot be <code>null</code>
* @param regionName
* @param regionName {@link String} region name, can be <code>null</code>
*/
public BslModuleRegionInformation(int insertPosition, Module module, String regionName)
public BslModuleRegionsInfo(int insertPosition, Module module, String regionName)
{
this.insertPosition = insertPosition;
this.module = module;
@@ -45,7 +45,7 @@ public class BslModuleRegionInformation
}
/**
* Get region name
* Returns region name
*
* @return {@link String} region name, can be <code>null</code>
*/
@@ -26,8 +26,8 @@ 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.IBslModuleInformation;
import com._1c.g5.v8.dt.bsl.common.IBslModuleInformationService;
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;
@@ -38,21 +38,22 @@ 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.ModuleStructureSection;
/**
* Implementation of {@link IBslModuleInformationService}
* Module regions related implementation of {@link IBslModuleTextInsertInfoService}
*
* @author Kuznetsov Nikita
*/
public class BslModuleRegionsService
implements IBslModuleInformationService
public class BslModuleRegionsInfoService
implements IBslModuleTextInsertInfoService
{
@Override
public IBslModuleInformation getInformation(IXtextDocument document, Module module, int defaultPosition,
IBslModuleEventData data)
public IBslModuleTextInsertInfo getEventHandlerTextInsertInfo(IXtextDocument document, Module module,
int defaultPosition, IBslModuleEventData data)
{
if (!(data instanceof BslModuleEventData))
{
@@ -80,16 +81,16 @@ public class BslModuleRegionsService
{
regionName = suffix.isEmpty() ? declaredRegionName : (declaredRegionName + suffix);
}
return new BslModuleRegionInformation(offset, module, regionName);
return new BslModuleRegionsInfo(offset, module, regionName);
}
@Override
public String wrap(IBslModuleInformation moduleInformation, String content)
public String wrap(IBslModuleTextInsertInfo moduleTextInsertInfo, String content)
{
if (moduleInformation instanceof BslModuleRegionInformation)
if (moduleTextInsertInfo instanceof BslModuleRegionsInfo)
{
BslModuleRegionInformation moduleRegionInformation = (BslModuleRegionInformation)moduleInformation;
Module module = moduleInformation.getModule();
BslModuleRegionsInfo moduleRegionInformation = (BslModuleRegionsInfo)moduleTextInsertInfo;
Module module = moduleTextInsertInfo.getModule();
String regionName = moduleRegionInformation.getRegionName();
if (module != null && regionName != null)
{
@@ -286,7 +287,7 @@ public class BslModuleRegionsService
{
while ((eventOwner = eventOwner.eContainer()) != null)
{
if (eventOwner instanceof NamedElement && eventOwner.eClass().getName().equals("Table")) //$NON-NLS-1$
if (eventOwner.eClass() == FormPackage.Literals.TABLE)
{
return ((NamedElement)eventOwner).getName();
}