Файли
openidea/src/features/code-insight/UsagesView.module.css
T
Ning YuanLin 6456f0e404 feat(java): add read/write filters for Java field usages (#569)
Find Usages mixed reads and writes of a Java field, including Lombok getter and setter calls, because jdtls has no read/write classification in its references. The usages popup and Find window now have Read and Write toggles. Read-write accesses stay visible in either mode and unclassified results are kept.

Classification comes from a jdtls extension in `plugins/java-usages`, embedded as a jar and installed beside the other bundles. The checked-in jar was rebuilt from source with ECJ and matches byte for byte. Any extension failure falls back to standard references, so a jdtls upgrade can lose the filter but not Find Usages; rebuilding the jar on an upgrade is manual and described in the plugin README. Older installed jars are removed. Other languages keep their plain result count.

Co-authored-by: NingYuanLin <[email protected]>
2026-11-01 09:09:15 +08:00

158 рядки
2.8 KiB
CSS

.view {
height: 100%;
display: flex;
min-height: 0;
}
.tabs {
min-width: 0;
border: 0;
background: none;
}
.toolbar {
flex: none;
width: 32px;
display: flex;
flex-direction: column;
align-items: center;
gap: 2px;
padding: 4px 0;
border-right: 1px solid var(--border);
}
.toolbarSep {
width: 16px;
height: 1px;
margin: 3px 0;
background: var(--border);
}
.summary {
height: 26px;
flex: none;
display: flex;
align-items: center;
gap: 6px;
padding: 0 10px;
font-size: var(--fs-ui);
color: var(--fg-subtle);
white-space: nowrap;
}
.groupLabel {
color: var(--fg);
}
.error {
color: var(--danger);
}
.body {
flex: 1;
min-width: 0;
min-height: 0;
display: flex;
flex-direction: column;
}
.body > * {
flex: 1;
min-height: 0;
}
.body > [role="toolbar"] {
flex: 0 0 auto;
}
.row {
display: flex;
align-items: center;
gap: 6px;
min-width: 0;
flex: 1;
white-space: nowrap;
}
.icon {
flex: none;
}
.file {
color: var(--fg);
}
.muted,
.count {
flex: none;
color: var(--fg-subtle);
}
.line {
flex: none;
min-width: 3ch;
text-align: right;
font-family: var(--font-mono);
font-size: var(--fs-ui);
color: var(--fg-line-number);
}
.preview {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
font-family: var(--font-mono);
font-size: var(--fs-ui);
color: var(--fg);
}
.match {
background: var(--bg-search-match);
color: var(--fg-search-match, inherit);
border-radius: 2px;
}
/* Lezer classHighlighter tokens of usage lines (same colours as Find in Files results). */
.preview :global(.tok-keyword),
.preview :global(.tok-modifier),
.preview :global(.tok-controlKeyword),
.preview :global(.tok-operatorKeyword) {
color: var(--syn-keyword);
}
.preview :global(.tok-string),
.preview :global(.tok-string2) {
color: var(--syn-string);
}
.preview :global(.tok-number),
.preview :global(.tok-bool),
.preview :global(.tok-atom) {
color: var(--syn-number);
}
.preview :global(.tok-typeName),
.preview :global(.tok-className),
.preview :global(.tok-namespace) {
color: var(--syn-type);
}
.preview :global(.tok-comment) {
color: var(--syn-comment);
}
.preview :global(.tok-meta),
.preview :global(.tok-macroName) {
color: var(--syn-annotation);
}
.preview :global(.tok-propertyName) {
color: var(--syn-property);
}
.preview :global(.tok-variableName.tok-definition) {
color: var(--syn-function);
}
.note {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-size: var(--fs-small);
font-style: italic;
color: var(--fg-subtle);
}
.excluded .preview,
.excluded .file,
.excluded .line {
opacity: 0.5;
text-decoration: line-through;
}
.panel {
display: flex;
flex-direction: column;
min-width: 0;
min-height: 0;
}
.panel > * {
flex: 1;
min-height: 0;
}