Skip to content

Commit

Permalink
Merge pull request #6393 from troizet/navigator_php_color_inherited_m…
Browse files Browse the repository at this point in the history
…embers

PHP: In the navigator, inherited members are displayed in a different color, similar to how it is done in java
  • Loading branch information
junichi11 authored Sep 1, 2023
2 parents ca8678a + fde8abf commit 0322fce
Show file tree
Hide file tree
Showing 9 changed files with 284 additions and 92 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ public final class NavigatorScanner {

private static final Logger LOGGER = Logger.getLogger(NavigatorScanner.class.getName());
private static final String FONT_GRAY_COLOR = "<font color=\"#999999\">"; //NOI18N
private static final String FONT_INHERITED_COLOR = "<font color=\"#7D694A\">"; //NOI18N
private static final String CLOSE_FONT = "</font>"; //NOI18N
private static ImageIcon interfaceIcon = null;
private static ImageIcon traitIcon = null;
Expand Down Expand Up @@ -362,11 +363,45 @@ protected void appendUsedTraits(Collection<? extends TraitScope> usedTraits, Htm
}
}

protected void appendConstantDescription(ConstantElement constant, HtmlFormatter formatter) {
appendConstantDescription(constant, formatter, false);
}

protected void appendConstantDescription(ConstantElement constant, HtmlFormatter formatter, boolean isInherited) {
if (constant.isDeprecated()) {
formatter.deprecated(true);
}
if (isInherited) {
formatter.appendHtml(FONT_INHERITED_COLOR);
}
formatter.appendText(getName());
if (isInherited) {
formatter.appendHtml(CLOSE_FONT);
}
if (constant.isDeprecated()) {
formatter.deprecated(false);
}
String value = constant.getValue();
if (value != null) {
formatter.appendText(" "); //NOI18N
formatter.appendHtml(FONT_GRAY_COLOR);
formatter.appendText(value);
formatter.appendHtml(CLOSE_FONT);
}
}

protected void appendFunctionDescription(FunctionScope function, HtmlFormatter formatter) {
appendFunctionDescription(function, formatter, false);
}

protected void appendFunctionDescription(FunctionScope function, HtmlFormatter formatter, boolean isInherited) {
formatter.reset();
if (function == null) {
return;
}
if (isInherited) {
formatter.appendHtml(FONT_INHERITED_COLOR);
}
if (function.isDeprecated()) {
formatter.deprecated(true);
}
Expand All @@ -380,6 +415,9 @@ protected void appendFunctionDescription(FunctionScope function, HtmlFormatter f
processParameters(function, formatter, parameters);
}
formatter.appendText(")"); //NOI18N
if (isInherited) {
formatter.appendHtml(CLOSE_FONT);
}
Collection<? extends String> returnTypes = function.getReturnTypeNames();
if (!returnTypes.isEmpty()) {
processReturnTypes(function, formatter, returnTypes);
Expand Down Expand Up @@ -518,7 +556,13 @@ public String getHtml(HtmlFormatter formatter) {
if (field.isDeprecated()) {
formatter.deprecated(true);
}
if (isInherited()) {
formatter.appendHtml(FONT_INHERITED_COLOR);
}
formatter.appendText(field.getName());
if (isInherited()) {
formatter.appendHtml(CLOSE_FONT);
}
if (field.isDeprecated()) {
formatter.deprecated(false);
}
Expand Down Expand Up @@ -682,21 +726,7 @@ public ConstantElement getConstant() {
@Override
public String getHtml(HtmlFormatter formatter) {
formatter.reset();
if (getConstant().isDeprecated()) {
formatter.deprecated(true);
}
formatter.appendText(getName());
if (getConstant().isDeprecated()) {
formatter.deprecated(false);
}
final ConstantElement constant = getConstant();
String value = constant.getValue();
if (value != null) {
formatter.appendText(" "); //NOI18N
formatter.appendHtml(FONT_GRAY_COLOR); //NOI18N
formatter.appendText(value);
formatter.appendHtml(CLOSE_FONT);
}
appendConstantDescription(getConstant(), formatter);
return formatter.getText();
}

Expand Down Expand Up @@ -725,6 +755,13 @@ public ElementHandle getDeclaringElement() {
return getConstant().getInScope();
}

@Override
public String getHtml(HtmlFormatter formatter) {
formatter.reset();
appendConstantDescription(getConstant(), formatter, isInherited());
return formatter.getText();
}

}

private class PHPFunctionStructureItem extends PHPStructureItem {
Expand Down Expand Up @@ -763,7 +800,7 @@ public MethodScope getMethodScope() {
@Override
public String getHtml(HtmlFormatter formatter) {
formatter.reset();
appendFunctionDescription(getMethodScope(), formatter);
appendFunctionDescription(getMethodScope(), formatter, isInherited());
return formatter.getText();
}

Expand Down Expand Up @@ -947,7 +984,7 @@ public MethodScope getMethodScope() {
@Override
public String getHtml(HtmlFormatter formatter) {
formatter.reset();
appendFunctionDescription(getMethodScope(), formatter);
appendFunctionDescription(getMethodScope(), formatter, isInherited());
return formatter.getText();
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
|-DeprecatedFooTrait [13, 1121] : ESCAPED{DeprecatedFooTrait}
|--$publicFooTraitField [74, 93] : DEPRECATED{ESCAPED{$publicFooTraitField}}<font color="#999999">:ESCAPED{int}</font>
|--$privateFooTraitField [135, 155] : DEPRECATED{ESCAPED{$privateFooTraitField}}<font color="#999999">:ESCAPED{int}</font>
|--$protectedFooTraitField [199, 221] : DEPRECATED{ESCAPED{$protectedFooTraitField}}<font color="#999999">:ESCAPED{int}</font>
|--$publicStaticFooTraitField [270, 295] : DEPRECATED{ESCAPED{$publicStaticFooTraitField}}<font color="#999999">:ESCAPED{int}</font>
|--$privateStaticFooTraitField [344, 370] : DEPRECATED{ESCAPED{$privateStaticFooTraitField}}<font color="#999999">:ESCAPED{int}</font>
|--$protectedStaticFooTraitField [421, 449] : DEPRECATED{ESCAPED{$protectedStaticFooTraitField}}<font color="#999999">:ESCAPED{int}</font>
|--publicFooTraitMethod [495, 541] : DEPRECATED{ESCAPED{publicFooTraitMethod}}ESCAPED{(}<font color="#999999">ESCAPED{int}ESCAPED{ }</font>ESCAPED{$param}ESCAPED{)}<font color="#999999">:ESCAPED{void}</font>
|--privateFooTraitMethod [587, 651] : DEPRECATED{ESCAPED{privateFooTraitMethod}}ESCAPED{(}<font color="#999999">ESCAPED{int}ESCAPED{ }</font>ESCAPED{$param1}ESCAPED{, }<font color="#999999">ESCAPED{string}ESCAPED{ }</font>ESCAPED{$param2}ESCAPED{)}<font color="#999999">:ESCAPED{void}</font>
|--protectedFooTraitMethod [699, 765] : DEPRECATED{ESCAPED{protectedFooTraitMethod}}ESCAPED{(}<font color="#999999">ESCAPED{int}ESCAPED{ }</font>ESCAPED{$param1}ESCAPED{, }<font color="#999999">ESCAPED{string}ESCAPED{ }</font>ESCAPED{$param2}ESCAPED{)}<font color="#999999">:ESCAPED{void}</font>
|--publicStaticFooTraitMethod [817, 869] : DEPRECATED{ESCAPED{publicStaticFooTraitMethod}}ESCAPED{(}<font color="#999999">ESCAPED{int}ESCAPED{ }</font>ESCAPED{$param}ESCAPED{)}<font color="#999999">:ESCAPED{void}</font>
|--privateStaticFooTraitMethod [922, 992] : DEPRECATED{ESCAPED{privateStaticFooTraitMethod}}ESCAPED{(}<font color="#999999">ESCAPED{int}ESCAPED{ }</font>ESCAPED{$param1}ESCAPED{, }<font color="#999999">ESCAPED{string}ESCAPED{ }</font>ESCAPED{$param2}ESCAPED{)}<font color="#999999">:ESCAPED{void}</font>
|--protectedStaticFooTraitMethod [1047, 1119] : DEPRECATED{ESCAPED{protectedStaticFooTraitMethod}}ESCAPED{(}<font color="#999999">ESCAPED{int}ESCAPED{ }</font>ESCAPED{$param1}ESCAPED{, }<font color="#999999">ESCAPED{string}ESCAPED{ }</font>ESCAPED{$param2}ESCAPED{)}<font color="#999999">:ESCAPED{void}</font>
|-DeprecatedParentClass [1129, 2574] : ESCAPED{DeprecatedParentClass}
|--IMPLICIT_PUBLIC_PARENT_CONST [1186, 1214] : DEPRECATED{ESCAPED{IMPLICIT_PUBLIC_PARENT_CONST}}ESCAPED{ }<font color="#999999">ESCAPED{"parent"}</font>
|--PUBLIC_PARENT_CONST [1267, 1286] : DEPRECATED{ESCAPED{PUBLIC_PARENT_CONST}}ESCAPED{ }<font color="#999999">ESCAPED{"parent"}</font>
|--PRIVATE_PARENT_CONST [1340, 1360] : DEPRECATED{ESCAPED{PRIVATE_PARENT_CONST}}ESCAPED{ }<font color="#999999">ESCAPED{"parent"}</font>
|--PROTECTED_PARENT_CONST [1416, 1438] : DEPRECATED{ESCAPED{PROTECTED_PARENT_CONST}}ESCAPED{ }<font color="#999999">ESCAPED{"parent"}</font>
|--$publicParentClassField [1491, 1513] : DEPRECATED{ESCAPED{$publicParentClassField}}<font color="#999999">:ESCAPED{int}</font>
|--$privateParentClassField [1555, 1578] : DEPRECATED{ESCAPED{$privateParentClassField}}<font color="#999999">:ESCAPED{int}</font>
|--$protectedParentClassField [1622, 1647] : DEPRECATED{ESCAPED{$protectedParentClassField}}<font color="#999999">:ESCAPED{int}</font>
|--$publicStaticParentClassField [1696, 1724] : DEPRECATED{ESCAPED{$publicStaticParentClassField}}<font color="#999999">:ESCAPED{int}</font>
|--$privateStaticParentClassField [1773, 1802] : DEPRECATED{ESCAPED{$privateStaticParentClassField}}<font color="#999999">:ESCAPED{int}</font>
|--$protectedStaticParentClassField [1853, 1884] : DEPRECATED{ESCAPED{$protectedStaticParentClassField}}<font color="#999999">:ESCAPED{int}</font>
|--publicParentClassMethod [1930, 1979] : DEPRECATED{ESCAPED{publicParentClassMethod}}ESCAPED{(}<font color="#999999">ESCAPED{int}ESCAPED{ }</font>ESCAPED{$param}ESCAPED{)}<font color="#999999">:ESCAPED{void}</font>
|--privateParentClassMethod [2025, 2092] : DEPRECATED{ESCAPED{privateParentClassMethod}}ESCAPED{(}<font color="#999999">ESCAPED{int}ESCAPED{ }</font>ESCAPED{$param1}ESCAPED{, }<font color="#999999">ESCAPED{string}ESCAPED{ }</font>ESCAPED{$param2}ESCAPED{)}<font color="#999999">:ESCAPED{void}</font>
|--protectedParentClassMethod [2140, 2209] : DEPRECATED{ESCAPED{protectedParentClassMethod}}ESCAPED{(}<font color="#999999">ESCAPED{int}ESCAPED{ }</font>ESCAPED{$param1}ESCAPED{, }<font color="#999999">ESCAPED{string}ESCAPED{ }</font>ESCAPED{$param2}ESCAPED{)}<font color="#999999">:ESCAPED{void}</font>
|--publicStaticParentClassMethod [2261, 2316] : DEPRECATED{ESCAPED{publicStaticParentClassMethod}}ESCAPED{(}<font color="#999999">ESCAPED{int}ESCAPED{ }</font>ESCAPED{$param}ESCAPED{)}<font color="#999999">:ESCAPED{void}</font>
|--privateStaticParentClassMethod [2369, 2442] : DEPRECATED{ESCAPED{privateStaticParentClassMethod}}ESCAPED{(}<font color="#999999">ESCAPED{int}ESCAPED{ }</font>ESCAPED{$param1}ESCAPED{, }<font color="#999999">ESCAPED{string}ESCAPED{ }</font>ESCAPED{$param2}ESCAPED{)}<font color="#999999">:ESCAPED{void}</font>
|--protectedStaticParentClassMethod [2497, 2572] : DEPRECATED{ESCAPED{protectedStaticParentClassMethod}}ESCAPED{(}<font color="#999999">ESCAPED{int}ESCAPED{ }</font>ESCAPED{$param1}ESCAPED{, }<font color="#999999">ESCAPED{string}ESCAPED{ }</font>ESCAPED{$param2}ESCAPED{)}<font color="#999999">:ESCAPED{void}</font>
|-ChildClass [2583, 2655] : ESCAPED{ChildClass}<font color="#999999">::ESCAPED{DeprecatedParentClass}</font><font color="#999999">#ESCAPED{DeprecatedFooTrait}</font>
|--(Inherited) $publicFooTraitField [74, 94] : DEPRECATED{<font color="#7D694A">ESCAPED{$publicFooTraitField}</font>}<font color="#999999">:ESCAPED{int}</font>
|--(Inherited) $privateFooTraitField [135, 156] : DEPRECATED{<font color="#7D694A">ESCAPED{$privateFooTraitField}</font>}<font color="#999999">:ESCAPED{int}</font>
|--(Inherited) $protectedFooTraitField [199, 222] : DEPRECATED{<font color="#7D694A">ESCAPED{$protectedFooTraitField}</font>}<font color="#999999">:ESCAPED{int}</font>
|--(Inherited) $publicStaticFooTraitField [270, 296] : DEPRECATED{<font color="#7D694A">ESCAPED{$publicStaticFooTraitField}</font>}<font color="#999999">:ESCAPED{int}</font>
|--(Inherited) $privateStaticFooTraitField [344, 371] : DEPRECATED{<font color="#7D694A">ESCAPED{$privateStaticFooTraitField}</font>}<font color="#999999">:ESCAPED{int}</font>
|--(Inherited) $protectedStaticFooTraitField [421, 450] : DEPRECATED{<font color="#7D694A">ESCAPED{$protectedStaticFooTraitField}</font>}<font color="#999999">:ESCAPED{int}</font>
|--(Inherited) publicFooTraitMethod [495, 515] : <font color="#7D694A">DEPRECATED{ESCAPED{publicFooTraitMethod}}ESCAPED{(}<font color="#999999">ESCAPED{int}ESCAPED{ }</font>ESCAPED{$param}ESCAPED{)}</font><font color="#999999">:ESCAPED{void}</font>
|--(Inherited) privateFooTraitMethod [587, 608] : <font color="#7D694A">DEPRECATED{ESCAPED{privateFooTraitMethod}}ESCAPED{(}<font color="#999999">ESCAPED{int}ESCAPED{ }</font>ESCAPED{$param1}ESCAPED{, }<font color="#999999">ESCAPED{string}ESCAPED{ }</font>ESCAPED{$param2}ESCAPED{)}</font><font color="#999999">:ESCAPED{void}</font>
|--(Inherited) protectedFooTraitMethod [699, 722] : <font color="#7D694A">DEPRECATED{ESCAPED{protectedFooTraitMethod}}ESCAPED{(}<font color="#999999">ESCAPED{int}ESCAPED{ }</font>ESCAPED{$param1}ESCAPED{, }<font color="#999999">ESCAPED{string}ESCAPED{ }</font>ESCAPED{$param2}ESCAPED{)}</font><font color="#999999">:ESCAPED{void}</font>
|--(Inherited) publicStaticFooTraitMethod [817, 843] : <font color="#7D694A">DEPRECATED{ESCAPED{publicStaticFooTraitMethod}}ESCAPED{(}<font color="#999999">ESCAPED{int}ESCAPED{ }</font>ESCAPED{$param}ESCAPED{)}</font><font color="#999999">:ESCAPED{void}</font>
|--(Inherited) privateStaticFooTraitMethod [922, 949] : <font color="#7D694A">DEPRECATED{ESCAPED{privateStaticFooTraitMethod}}ESCAPED{(}<font color="#999999">ESCAPED{int}ESCAPED{ }</font>ESCAPED{$param1}ESCAPED{, }<font color="#999999">ESCAPED{string}ESCAPED{ }</font>ESCAPED{$param2}ESCAPED{)}</font><font color="#999999">:ESCAPED{void}</font>
|--(Inherited) protectedStaticFooTraitMethod [1047, 1076] : <font color="#7D694A">DEPRECATED{ESCAPED{protectedStaticFooTraitMethod}}ESCAPED{(}<font color="#999999">ESCAPED{int}ESCAPED{ }</font>ESCAPED{$param1}ESCAPED{, }<font color="#999999">ESCAPED{string}ESCAPED{ }</font>ESCAPED{$param2}ESCAPED{)}</font><font color="#999999">:ESCAPED{void}</font>
|--(Inherited) IMPLICIT_PUBLIC_PARENT_CONST [1186, 1214] : DEPRECATED{<font color="#7D694A">ESCAPED{IMPLICIT_PUBLIC_PARENT_CONST}</font>}ESCAPED{ }<font color="#999999">ESCAPED{"parent"}</font>
|--(Inherited) PUBLIC_PARENT_CONST [1267, 1286] : DEPRECATED{<font color="#7D694A">ESCAPED{PUBLIC_PARENT_CONST}</font>}ESCAPED{ }<font color="#999999">ESCAPED{"parent"}</font>
|--(Inherited) PROTECTED_PARENT_CONST [1416, 1438] : DEPRECATED{<font color="#7D694A">ESCAPED{PROTECTED_PARENT_CONST}</font>}ESCAPED{ }<font color="#999999">ESCAPED{"parent"}</font>
|--(Inherited) $publicParentClassField [1491, 1514] : DEPRECATED{<font color="#7D694A">ESCAPED{$publicParentClassField}</font>}<font color="#999999">:ESCAPED{int}</font>
|--(Inherited) $protectedParentClassField [1622, 1648] : DEPRECATED{<font color="#7D694A">ESCAPED{$protectedParentClassField}</font>}<font color="#999999">:ESCAPED{int}</font>
|--(Inherited) $publicStaticParentClassField [1696, 1725] : DEPRECATED{<font color="#7D694A">ESCAPED{$publicStaticParentClassField}</font>}<font color="#999999">:ESCAPED{int}</font>
|--(Inherited) $protectedStaticParentClassField [1853, 1885] : DEPRECATED{<font color="#7D694A">ESCAPED{$protectedStaticParentClassField}</font>}<font color="#999999">:ESCAPED{int}</font>
|--(Inherited) publicParentClassMethod [1930, 1953] : <font color="#7D694A">DEPRECATED{ESCAPED{publicParentClassMethod}}ESCAPED{(}<font color="#999999">ESCAPED{int}ESCAPED{ }</font>ESCAPED{$param}ESCAPED{)}</font><font color="#999999">:ESCAPED{void}</font>
|--(Inherited) protectedParentClassMethod [2140, 2166] : <font color="#7D694A">DEPRECATED{ESCAPED{protectedParentClassMethod}}ESCAPED{(}<font color="#999999">ESCAPED{int}ESCAPED{ }</font>ESCAPED{$param1}ESCAPED{, }<font color="#999999">ESCAPED{string}ESCAPED{ }</font>ESCAPED{$param2}ESCAPED{)}</font><font color="#999999">:ESCAPED{void}</font>
|--(Inherited) publicStaticParentClassMethod [2261, 2290] : <font color="#7D694A">DEPRECATED{ESCAPED{publicStaticParentClassMethod}}ESCAPED{(}<font color="#999999">ESCAPED{int}ESCAPED{ }</font>ESCAPED{$param}ESCAPED{)}</font><font color="#999999">:ESCAPED{void}</font>
|--(Inherited) protectedStaticParentClassMethod [2497, 2529] : <font color="#7D694A">DEPRECATED{ESCAPED{protectedStaticParentClassMethod}}ESCAPED{(}<font color="#999999">ESCAPED{int}ESCAPED{ }</font>ESCAPED{$param1}ESCAPED{, }<font color="#999999">ESCAPED{string}ESCAPED{ }</font>ESCAPED{$param2}ESCAPED{)}</font><font color="#999999">:ESCAPED{void}</font>
Loading

0 comments on commit 0322fce

Please sign in to comment.