mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
Bug 546981: Treat pragma region like pragma mark in outline view
Treats #pragma region and #pragma endregion similarly to how #pragma mark is treated in outline view. With region and endregion they are always surrounded by divider lines if there is text after region/endregion, else just a divider line is inserted. Change-Id: Idb8bebe94363731e59412a7f31af3b54d53a2c8e
This commit is contained in:
parent
b6a8f778f9
commit
b2c33dfb13
5 changed files with 48 additions and 4 deletions
|
@ -188,6 +188,35 @@ public class CModelElementsTests extends BaseTestCase {
|
|||
assertEquals(false, pragma.getPragmaMarkInfo().get().isDividerAfterMark());
|
||||
assertEquals("", pragma.getPragmaMarkInfo().get().getMarkName());
|
||||
}
|
||||
{
|
||||
// region no name
|
||||
IPragma pragma = (IPragma) pragmas.get(line++);
|
||||
assertEquals("region", pragma.getElementName());
|
||||
assertEquals(true, pragma.getPragmaMarkInfo().get().isDividerBeforeMark());
|
||||
assertEquals(false, pragma.getPragmaMarkInfo().get().isDividerAfterMark());
|
||||
assertEquals("", pragma.getPragmaMarkInfo().get().getMarkName());
|
||||
}
|
||||
{
|
||||
IPragma pragma = (IPragma) pragmas.get(line++);
|
||||
assertEquals("region named", pragma.getElementName());
|
||||
assertEquals(true, pragma.getPragmaMarkInfo().get().isDividerBeforeMark());
|
||||
assertEquals(true, pragma.getPragmaMarkInfo().get().isDividerAfterMark());
|
||||
assertEquals("named", pragma.getPragmaMarkInfo().get().getMarkName());
|
||||
}
|
||||
{
|
||||
IPragma pragma = (IPragma) pragmas.get(line++);
|
||||
assertEquals("endregion", pragma.getElementName());
|
||||
assertEquals(true, pragma.getPragmaMarkInfo().get().isDividerBeforeMark());
|
||||
assertEquals(false, pragma.getPragmaMarkInfo().get().isDividerAfterMark());
|
||||
assertEquals("", pragma.getPragmaMarkInfo().get().getMarkName());
|
||||
}
|
||||
{
|
||||
IPragma pragma = (IPragma) pragmas.get(line++);
|
||||
assertEquals("endregion endnamed", pragma.getElementName());
|
||||
assertEquals(true, pragma.getPragmaMarkInfo().get().isDividerBeforeMark());
|
||||
assertEquals(true, pragma.getPragmaMarkInfo().get().isDividerAfterMark());
|
||||
assertEquals("endnamed", pragma.getPragmaMarkInfo().get().getMarkName());
|
||||
}
|
||||
{
|
||||
IPragma pragma = (IPragma) pragmas.get(line++);
|
||||
assertEquals("ms_struct on", pragma.getElementName());
|
||||
|
|
|
@ -152,6 +152,9 @@ namespace {
|
|||
#pragma mark neither
|
||||
#pragma mark -// blank1
|
||||
#pragma mark // blank2
|
||||
#pragma region // no name
|
||||
#pragma region named
|
||||
#pragma endregion // no name
|
||||
#pragma endregion endnamed
|
||||
#pragma ms_struct on
|
||||
_Pragma("once")
|
||||
|
||||
|
|
|
@ -56,6 +56,18 @@ public class Pragma extends SourceManipulation implements IPragma {
|
|||
markName = restOfLine.trim();
|
||||
}
|
||||
break;
|
||||
case "region": //$NON-NLS-1$
|
||||
case "endregion": { //$NON-NLS-1$
|
||||
if (restOfLine.isEmpty()) {
|
||||
dividerBeforeMark = true;
|
||||
dividerAfterMark = false;
|
||||
} else {
|
||||
dividerBeforeMark = true;
|
||||
dividerAfterMark = true;
|
||||
markName = restOfLine;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -78,8 +78,8 @@ MacroGroupingAction_tooltip= Group macro definitions
|
|||
MacroGroupingAction_description= Group macro definitions
|
||||
|
||||
HidePragmaMarks_label=Hide Dividers
|
||||
HidePragmaMarks_tooltip=Hide Dividers (#pragma mark)
|
||||
HidePragmaMarks_description=Hide Dividers (#pragma mark)
|
||||
HidePragmaMarks_tooltip=Hide Dividers (#pragma mark or #pragma region/endregion)
|
||||
HidePragmaMarks_description=Hide Dividers (#pragma mark or #pragma region/endregion)
|
||||
|
||||
COutlineInformationControl_viewMenu_sort_label=Sort
|
||||
|
||||
|
|
|
@ -188,7 +188,7 @@ AppearancePreferencePage_outlineGroupNamespaces_label= Group namespaces in the O
|
|||
AppearancePreferencePage_note=Note:
|
||||
AppearancePreferencePage_preferenceOnlyForNewViews=These two preferences do not affect open views
|
||||
AppearancePreferencePage_outlineGroupMacros_label=Group macro definitions in the Outline view
|
||||
AppearancePreferencePage_HidePragmaMarks_label=Hide Dividers (#pragma mark) in the Outline view
|
||||
AppearancePreferencePage_HidePragmaMarks_label=Hide Dividers (#pragma mark or #pragma region/endregion) in the Outline view
|
||||
AppearancePreferencePage_showSourceRootsAtTopOfProject_label=Show source roots at top of project
|
||||
|
||||
#Build Logging
|
||||
|
|
Loading…
Add table
Reference in a new issue