Skip to content

Commit

Permalink
Merge pull request #1397 from 1C-Company/G5V8DT-24674
Browse files Browse the repository at this point in the history
G5V8DT-24674 Взводится признак наличия изменений при переходе к обработчику формы
  • Loading branch information
AlmazNasibullin authored Jan 22, 2024
2 parents ab51c43 + 061a4a8 commit a7f80d8
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 8 deletions.
2 changes: 1 addition & 1 deletion bundles/com.e1c.v8codestyle.bsl.ui/plugin.xml
Original file line number Diff line number Diff line change
Expand Up @@ -371,7 +371,7 @@
<extension
point="com._1c.g5.v8.dt.bsl.ui.bslModuleTextInsertInfoService">
<bslModuleTextInsertInfoService
class="com.e1c.v8codestyle.internal.bsl.ui.services.BslModuleRegionsInfoService">
class="com.e1c.v8codestyle.internal.bsl.ui.ExecutableExtensionFactory:com.e1c.v8codestyle.internal.bsl.ui.services.BslModuleRegionsInfoService">
</bslModuleTextInsertInfoService>
</extension>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,9 @@
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}
Expand All @@ -51,6 +53,9 @@
public class BslModuleRegionsInfoService
implements IBslModuleTextInsertInfoService
{
@Inject
private IModuleStructureProvider moduleStructureProvider;

@Override
public IBslModuleTextInsertInfo getEventHandlerTextInsertInfo(IXtextDocument document, Module module,
int defaultPosition, IBslModuleEventData data)
Expand All @@ -77,7 +82,8 @@ public IBslModuleTextInsertInfo getEventHandlerTextInsertInfo(IXtextDocument doc
getRegionOffsets(document, regionPreprocessors, declaredRegionName, scriptVariant);
int offset = getRegionOffset(regionOffsets, declaredRegionName, suffix, defaultPosition, scriptVariant);
String regionName = null;
if (!isRegionExists(regionOffsets, declaredRegionName, suffix))
if (!isRegionExists(regionOffsets, declaredRegionName, suffix) && project.getProject() != null
&& moduleStructureProvider.canCreateStructure(project.getProject()))
{
regionName = suffix.isEmpty() ? declaredRegionName : (declaredRegionName + suffix);
}
Expand Down Expand Up @@ -285,13 +291,17 @@ private String getSuffix(EObject eventOwner, EventItemType itemType)
{
if (itemType.equals(EventItemType.TABLE))
{
EObject container;
while ((container = eventOwner.eContainer()) != null)
EObject container = eventOwner;
while (container != null)
{
if (container.eClass() == FormPackage.Literals.TABLE)
{
return ((NamedElement)container).getName();
}
else
{
container = container.eContainer();
}
}
}
return StringUtils.EMPTY;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,10 +72,10 @@ public void testCommonModule() throws Exception
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));
}

/**
Expand Down Expand Up @@ -150,6 +150,9 @@ private List<Marker> getMarkers(String moduleFileName)
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());
}

Expand Down

0 comments on commit a7f80d8

Please sign in to comment.