Java 类org.eclipse.lsp4j.DocumentHighlightKind 实例源码

项目:eclipse.jdt.ls    文件:DocumentHighlightHandler.java   
private DocumentHighlight convertToHighlight(ITypeRoot unit, OccurrenceLocation occurrence)
        throws JavaModelException {
    DocumentHighlight h = new DocumentHighlight();
    if ((occurrence.getFlags() | IOccurrencesFinder.F_WRITE_OCCURRENCE) == IOccurrencesFinder.F_WRITE_OCCURRENCE) {
        h.setKind(DocumentHighlightKind.Write);
    } else if ((occurrence.getFlags()
            | IOccurrencesFinder.F_READ_OCCURRENCE) == IOccurrencesFinder.F_READ_OCCURRENCE) {
        h.setKind(DocumentHighlightKind.Read);
    }
    int[] loc = JsonRpcHelpers.toLine(unit.getBuffer(), occurrence.getOffset());
    int[] endLoc = JsonRpcHelpers.toLine(unit.getBuffer(), occurrence.getOffset() + occurrence.getLength());

    h.setRange(new Range(
            new Position(loc[0], loc[1]),
            new Position(endLoc[0],endLoc[1])
            ));
    return h;
}
项目:xtext-core    文件:DocumentHighlightComparatorTest.java   
@Test
public void withNull() {
  final List<? extends DocumentHighlight> input = this.sort(CollectionLiterals.<DocumentHighlight>newArrayList(null, this.newHighlight(DocumentHighlightKind.Text, this.newRange(1, 1, 1, 1)), 
    this.newHighlight(DocumentHighlightKind.Write, this.newRange(1, 1, 1, 1)), this.newHighlight(DocumentHighlightKind.Read, this.newRange(1, 1, 1, 1))));
  Assert.assertEquals(1, input.get(0).getRange().getStart().getLine());
  Assert.assertEquals(1, input.get(0).getRange().getStart().getCharacter());
  Assert.assertEquals(1, input.get(0).getRange().getEnd().getLine());
  Assert.assertEquals(1, input.get(0).getRange().getEnd().getCharacter());
  Assert.assertEquals(DocumentHighlightKind.Text, input.get(0).getKind());
  Assert.assertEquals(1, input.get(1).getRange().getStart().getLine());
  Assert.assertEquals(1, input.get(1).getRange().getStart().getCharacter());
  Assert.assertEquals(1, input.get(1).getRange().getEnd().getLine());
  Assert.assertEquals(1, input.get(1).getRange().getEnd().getCharacter());
  Assert.assertEquals(DocumentHighlightKind.Read, input.get(1).getKind());
  Assert.assertEquals(1, input.get(2).getRange().getStart().getLine());
  Assert.assertEquals(1, input.get(2).getRange().getStart().getCharacter());
  Assert.assertEquals(1, input.get(2).getRange().getEnd().getLine());
  Assert.assertEquals(1, input.get(2).getRange().getEnd().getCharacter());
  Assert.assertEquals(DocumentHighlightKind.Write, input.get(2).getKind());
  Assert.assertNull(IterableExtensions.last(input));
}
项目:eclipse.jdt.ls    文件:DocumentHighlightHandlerTest.java   
@Test
public void testDocumentHighlightHandler() throws Exception {
    String uri = ClassFileUtil.getURI(project, "org.sample.Highlight");
    TextDocumentIdentifier identifier = new TextDocumentIdentifier(uri);
    TextDocumentPositionParams params = new TextDocumentPositionParams(identifier, new Position(5, 10));

    List<? extends DocumentHighlight> highlights = handler.documentHighlight(params, monitor);
    assertEquals(4, highlights.size());
    assertHighlight(highlights.get(0), 5, 9, 15, DocumentHighlightKind.Write);
    assertHighlight(highlights.get(1), 6, 2, 8, DocumentHighlightKind.Read);
    assertHighlight(highlights.get(2), 7, 2, 8, DocumentHighlightKind.Write);
    assertHighlight(highlights.get(3), 8, 2, 8, DocumentHighlightKind.Read);
}
项目:xtext-core    文件:DocumentHighlightComparatorTest.java   
@Test
public void withoutNull() {
  final List<? extends DocumentHighlight> input = this.sort(CollectionLiterals.<DocumentHighlight>newArrayList(this.newHighlight(DocumentHighlightKind.Text, this.newRange(2, 2, 2, 2)), this.newHighlight(DocumentHighlightKind.Text, this.newRange(1, 1, 1, 1)), 
    this.newHighlight(DocumentHighlightKind.Write, this.newRange(2, 2, 2, 2)), this.newHighlight(DocumentHighlightKind.Write, this.newRange(1, 1, 1, 1)), 
    this.newHighlight(DocumentHighlightKind.Read, this.newRange(2, 2, 2, 2)), this.newHighlight(DocumentHighlightKind.Read, this.newRange(1, 1, 1, 1))));
  Assert.assertEquals(1, input.get(0).getRange().getStart().getLine());
  Assert.assertEquals(1, input.get(0).getRange().getStart().getCharacter());
  Assert.assertEquals(1, input.get(0).getRange().getEnd().getLine());
  Assert.assertEquals(1, input.get(0).getRange().getEnd().getCharacter());
  Assert.assertEquals(DocumentHighlightKind.Text, input.get(0).getKind());
  Assert.assertEquals(1, input.get(1).getRange().getStart().getLine());
  Assert.assertEquals(1, input.get(1).getRange().getStart().getCharacter());
  Assert.assertEquals(1, input.get(1).getRange().getEnd().getLine());
  Assert.assertEquals(1, input.get(1).getRange().getEnd().getCharacter());
  Assert.assertEquals(DocumentHighlightKind.Read, input.get(1).getKind());
  Assert.assertEquals(1, input.get(2).getRange().getStart().getLine());
  Assert.assertEquals(1, input.get(2).getRange().getStart().getCharacter());
  Assert.assertEquals(1, input.get(2).getRange().getEnd().getLine());
  Assert.assertEquals(1, input.get(2).getRange().getEnd().getCharacter());
  Assert.assertEquals(DocumentHighlightKind.Write, input.get(2).getKind());
  Assert.assertEquals(2, input.get(3).getRange().getStart().getLine());
  Assert.assertEquals(2, input.get(3).getRange().getStart().getCharacter());
  Assert.assertEquals(2, input.get(3).getRange().getEnd().getLine());
  Assert.assertEquals(2, input.get(3).getRange().getEnd().getCharacter());
  Assert.assertEquals(DocumentHighlightKind.Text, input.get(3).getKind());
  Assert.assertEquals(2, input.get(4).getRange().getStart().getLine());
  Assert.assertEquals(2, input.get(4).getRange().getStart().getCharacter());
  Assert.assertEquals(2, input.get(4).getRange().getEnd().getLine());
  Assert.assertEquals(2, input.get(4).getRange().getEnd().getCharacter());
  Assert.assertEquals(DocumentHighlightKind.Read, input.get(4).getKind());
  Assert.assertEquals(2, input.get(5).getRange().getStart().getLine());
  Assert.assertEquals(2, input.get(5).getRange().getStart().getCharacter());
  Assert.assertEquals(2, input.get(5).getRange().getEnd().getLine());
  Assert.assertEquals(2, input.get(5).getRange().getEnd().getCharacter());
  Assert.assertEquals(DocumentHighlightKind.Write, input.get(5).getKind());
}
项目:xtext-core    文件:AbstractLanguageServerTest.java   
protected String _toExpectation(final DocumentHighlight it) {
  String _xblockexpression = null;
  {
    StringConcatenation _builder = new StringConcatenation();
    {
      Range _range = it.getRange();
      boolean _tripleEquals = (_range == null);
      if (_tripleEquals) {
        _builder.append("[NaN, NaN]:[NaN, NaN]");
      } else {
        String _expectation = this.toExpectation(it.getRange());
        _builder.append(_expectation);
      }
    }
    final String rangeString = _builder.toString();
    StringConcatenation _builder_1 = new StringConcatenation();
    {
      DocumentHighlightKind _kind = it.getKind();
      boolean _tripleEquals_1 = (_kind == null);
      if (_tripleEquals_1) {
        _builder_1.append("NaN");
      } else {
        String _expectation_1 = this.toExpectation(it.getKind());
        _builder_1.append(_expectation_1);
      }
    }
    _builder_1.append(" ");
    _builder_1.append(rangeString);
    _xblockexpression = _builder_1.toString();
  }
  return _xblockexpression;
}
项目:xtext-core    文件:ITextRegionTransformer.java   
@Override
public DocumentHighlight apply(final Document document, final ITextRegion region,
        final DocumentHighlightKind kind) {

    Preconditions.checkNotNull(document, "document");
    Preconditions.checkNotNull(region, "region");
    Preconditions.checkNotNull(kind, "kind");

    final int offset = region.getOffset();
    final Position start = document.getPosition(offset);
    final Position end = document.getPosition(offset + region.getLength());

    return new DocumentHighlight(new Range(start, end), kind);
}
项目:SOMns-vscode    文件:DocumentHighlight.java   
public DocumentHighlight(@NonNull final Range range, final DocumentHighlightKind kind) {
  this(range);
  this.kind = kind;
}
项目:SOMns-vscode    文件:DocumentHighlight.java   
/**
 * The highlight kind, default is {@link DocumentHighlightKind#Text}.
 */
@Pure
public DocumentHighlightKind getKind() {
  return this.kind;
}
项目:SOMns-vscode    文件:DocumentHighlight.java   
/**
 * The highlight kind, default is {@link DocumentHighlightKind#Text}.
 */
public void setKind(final DocumentHighlightKind kind) {
  this.kind = kind;
}
项目:eclipse.jdt.ls    文件:DocumentHighlightHandlerTest.java   
private void assertHighlight(DocumentHighlight highlight, int expectedLine, int expectedStart, int expectedEnd, DocumentHighlightKind expectedKind) {
    Lsp4jAssertions.assertRange(expectedLine, expectedStart, expectedEnd, highlight.getRange());
    assertEquals(expectedKind, highlight.getKind());
}
项目:xtext-core    文件:DocumentHighlightComparatorTest.java   
private DocumentHighlight newHighlight(final DocumentHighlightKind kind, final Range range) {
  return new DocumentHighlight(range, kind);
}
项目:xtext-core    文件:AbstractLanguageServerTest.java   
protected String _toExpectation(final DocumentHighlightKind kind) {
  return kind.toString().substring(0, 1).toUpperCase();
}
项目:lsp4j    文件:DocumentHighlight.java   
public DocumentHighlight(@NonNull final Range range, final DocumentHighlightKind kind) {
  this(range);
  this.kind = kind;
}
项目:lsp4j    文件:DocumentHighlight.java   
/**
 * The highlight kind, default is {@link DocumentHighlightKind#Text}.
 */
@Pure
public DocumentHighlightKind getKind() {
  return this.kind;
}
项目:lsp4j    文件:DocumentHighlight.java   
/**
 * The highlight kind, default is {@link DocumentHighlightKind#Text}.
 */
public void setKind(final DocumentHighlightKind kind) {
  this.kind = kind;
}
项目:xtext-core    文件:AbstractLanguageServerTest.java   
protected String toExpectation(final Object it) {
  if (it instanceof Integer) {
    return _toExpectation((Integer)it);
  } else if (it instanceof List) {
    return _toExpectation((List<?>)it);
  } else if (it instanceof DocumentHighlightKind) {
    return _toExpectation((DocumentHighlightKind)it);
  } else if (it instanceof String) {
    return _toExpectation((String)it);
  } else if (it == null) {
    return _toExpectation((Void)null);
  } else if (it instanceof Map) {
    return _toExpectation((Map<Object, Object>)it);
  } else if (it instanceof CodeLens) {
    return _toExpectation((CodeLens)it);
  } else if (it instanceof ColoringInformation) {
    return _toExpectation((ColoringInformation)it);
  } else if (it instanceof Command) {
    return _toExpectation((Command)it);
  } else if (it instanceof CompletionItem) {
    return _toExpectation((CompletionItem)it);
  } else if (it instanceof DocumentHighlight) {
    return _toExpectation((DocumentHighlight)it);
  } else if (it instanceof Hover) {
    return _toExpectation((Hover)it);
  } else if (it instanceof Location) {
    return _toExpectation((Location)it);
  } else if (it instanceof Position) {
    return _toExpectation((Position)it);
  } else if (it instanceof Range) {
    return _toExpectation((Range)it);
  } else if (it instanceof SignatureHelp) {
    return _toExpectation((SignatureHelp)it);
  } else if (it instanceof SymbolInformation) {
    return _toExpectation((SymbolInformation)it);
  } else if (it instanceof TextEdit) {
    return _toExpectation((TextEdit)it);
  } else if (it instanceof WorkspaceEdit) {
    return _toExpectation((WorkspaceEdit)it);
  } else if (it instanceof Either) {
    return _toExpectation((Either<?, ?>)it);
  } else {
    throw new IllegalArgumentException("Unhandled parameter types: " +
      Arrays.<Object>asList(it).toString());
  }
}
项目:xtext-core    文件:ITextRegionTransformer.java   
/**
 * Transforms the {@link ITextRegion text region} argument into a
 * {@link DocumentHighlight document highlight} instance by calculating the
 * proper position from the document. The given kind will be used to
 * distinguish between {@link DocumentHighlightKind#Read read},
 * {@link DocumentHighlightKind#Write write} and ordinary
 * {@link DocumentHighlightKind#Text text} occurrences.
 * 
 * <p>
 * This conversion is required to transform the Xtext specific document
 * relative offsets into language server specific line relative offsets.
 * 
 * @param document
 *            the document that contains the text content. Cannot be
 *            {@code null}.
 * @param region
 *            the text region that has to be converted. Cannot be
 *            {@code null}.
 * @param kind
 *            the document highlight kind. Cannot be {@code null}.
 * 
 * @return
 *            with a new transformed {@link DocumentHighlight document
 *            highlight} instance.
 */
DocumentHighlight apply(final Document document, final ITextRegion region, final DocumentHighlightKind kind);