From dc2d1b2b9f7d80f36f3d6700a95861f8240e0509 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Mon, 23 Sep 2013 16:19:24 +0400 Subject: [PATCH] notnull --- .../org/intellij/lang/regexp/RegExpLexer.java | 3 ++- .../java/JavaSyntaxHighlighterFactory.java | 2 +- .../impl/search/JavaIndexPatternBuilder.java | 5 +++-- .../impl/search/JspIndexPatternBuilder.java | 7 ++++--- .../search/LexerEditorHighlighterLexer.java | 6 ++++-- .../lang/java/lexer/JavaDocLexer.java | 3 ++- .../intellij/lang/java/lexer/JavaLexer.java | 3 ++- .../lang/manifest/parser/ManifestLexer.java | 4 +++- .../src/com/intellij/lexer/DelegateLexer.java | 6 ++++-- .../com/intellij/lexer/DocCommentLexer.java | 4 +++- .../src/com/intellij/lexer/FlexAdapter.java | 6 ++++-- .../src/com/intellij/lexer/LayeredLexer.java | 8 +++++--- .../src/com/intellij/lexer/Lexer.java | 15 ++++++++++----- .../src/com/intellij/lexer/LexerBase.java | 7 +++++-- .../lexer/MergingLexerAdapterBase.java | 8 +++++--- .../custom/AbstractCustomLexer.java | 6 ++++-- .../psi/impl/cache/impl/BaseFilterLexer.java | 5 +++-- .../com/intellij/lexer/CompositeLexer.java | 6 ++++-- .../src/com/intellij/lexer/FilterLexer.java | 8 +++++--- .../intellij/lexer/StoppableLexerAdapter.java | 6 ++++-- .../intellij/lexer/StringLiteralLexer.java | 6 ++++-- .../CustomFileTypeHighlighterProvider.java | 5 +++-- .../lexer/PrefixSuffixStripperLexer.java | 6 ++++-- .../TemplateBlackAndWhiteLexer.java | 9 ++++++--- .../com/intellij/lexer/LookAheadLexer.java | 9 ++++++--- .../LanguageFileTypeHighlighterProvider.java | 5 +++-- .../EditorHighlighterFactoryImpl.java | 19 +++++++++++++------ .../intellij/lang/PsiBuilderQuickTest.java | 8 +++----- .../highlighter/GroovySlashyStringLexer.java | 6 ++++-- .../lang/groovydoc/lexer/GroovyDocLexer.java | 6 ++++-- .../util/GroovyIndexPatternBuilder.java | 7 ++++--- .../intellij/lexer/HtmlHighlightingLexer.java | 5 +++-- .../lexer/CompactSyntaxLexerAdapter.java | 4 +++- .../src/com/intellij/lexer/BaseHtmlLexer.java | 5 +++-- .../src/com/intellij/lexer/HtmlLexer.java | 5 +++-- .../src/com/intellij/lexer/_XmlLexer.java | 6 ++++-- .../impl/source/parsing/xml/DtdParsing.java | 5 +++-- 37 files changed, 150 insertions(+), 84 deletions(-) diff --git a/RegExpSupport/src/org/intellij/lang/regexp/RegExpLexer.java b/RegExpSupport/src/org/intellij/lang/regexp/RegExpLexer.java index c37f576a885b..09ee6a5bd471 100644 --- a/RegExpSupport/src/org/intellij/lang/regexp/RegExpLexer.java +++ b/RegExpSupport/src/org/intellij/lang/regexp/RegExpLexer.java @@ -16,6 +16,7 @@ package org.intellij.lang.regexp; import com.intellij.lexer.FlexAdapter; +import org.jetbrains.annotations.NotNull; import java.util.EnumSet; @@ -29,7 +30,7 @@ public class RegExpLexer extends FlexAdapter { myCapabilities = capabilities; } - public void start(CharSequence buffer, int startOffset, int endOffset, int initialState) { + public void start(@NotNull CharSequence buffer, int startOffset, int endOffset, int initialState) { getFlex().commentMode = (initialState & COMMENT_MODE) != 0 || myCapabilities.contains(RegExpCapability.COMMENT_MODE); super.start(buffer, startOffset, endOffset, initialState & ~COMMENT_MODE); } diff --git a/java/java-impl/src/com/intellij/lang/java/JavaSyntaxHighlighterFactory.java b/java/java-impl/src/com/intellij/lang/java/JavaSyntaxHighlighterFactory.java index 918b8ff92098..7ee3d7bb35ca 100644 --- a/java/java-impl/src/com/intellij/lang/java/JavaSyntaxHighlighterFactory.java +++ b/java/java-impl/src/com/intellij/lang/java/JavaSyntaxHighlighterFactory.java @@ -45,7 +45,7 @@ public class JavaSyntaxHighlighterFactory extends SyntaxHighlighterFactory imple */ @Nullable @Override - public SyntaxHighlighter create(FileType fileType, @Nullable Project project, @Nullable VirtualFile file) { + public SyntaxHighlighter create(@NotNull FileType fileType, @Nullable Project project, @Nullable VirtualFile file) { if (project != null && file != null) { PsiFile psiFile = PsiManager.getInstance(project).findFile(file); if (psiFile instanceof ClsFileImpl) { diff --git a/java/java-impl/src/com/intellij/psi/impl/search/JavaIndexPatternBuilder.java b/java/java-impl/src/com/intellij/psi/impl/search/JavaIndexPatternBuilder.java index 379486347cb9..f404c401ae6f 100644 --- a/java/java-impl/src/com/intellij/psi/impl/search/JavaIndexPatternBuilder.java +++ b/java/java-impl/src/com/intellij/psi/impl/search/JavaIndexPatternBuilder.java @@ -24,6 +24,7 @@ import com.intellij.psi.tree.IElementType; import com.intellij.psi.tree.TokenSet; import com.intellij.psi.xml.XmlElementType; import com.intellij.psi.xml.XmlTokenType; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; /** @@ -35,7 +36,7 @@ public class JavaIndexPatternBuilder implements IndexPatternBuilder { @Override @Nullable - public Lexer getIndexingLexer(final PsiFile file) { + public Lexer getIndexingLexer(@NotNull final PsiFile file) { if (file instanceof PsiJavaFile && !(file instanceof JspFile)) { return JavaParserDefinition.createLexer(((PsiJavaFile)file).getLanguageLevel()); } @@ -44,7 +45,7 @@ public class JavaIndexPatternBuilder implements IndexPatternBuilder { @Override @Nullable - public TokenSet getCommentTokenSet(final PsiFile file) { + public TokenSet getCommentTokenSet(@NotNull final PsiFile file) { if (file instanceof PsiJavaFile && !(file instanceof ServerPageFile)) { return TokenSet.orSet(StdTokenSets.COMMENT_BIT_SET, XML_COMMENT_BIT_SET, JavaDocTokenType.ALL_JAVADOC_TOKENS, XML_DATA_CHARS); } diff --git a/java/java-impl/src/com/intellij/psi/impl/search/JspIndexPatternBuilder.java b/java/java-impl/src/com/intellij/psi/impl/search/JspIndexPatternBuilder.java index 6011081b0051..57539ae07de0 100644 --- a/java/java-impl/src/com/intellij/psi/impl/search/JspIndexPatternBuilder.java +++ b/java/java-impl/src/com/intellij/psi/impl/search/JspIndexPatternBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2011 JetBrains s.r.o. + * Copyright 2000-2013 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -32,13 +32,14 @@ import com.intellij.psi.jsp.JspFile; import com.intellij.psi.jsp.JspTokenType; import com.intellij.psi.tree.IElementType; import com.intellij.psi.tree.TokenSet; +import org.jetbrains.annotations.NotNull; /** * @author yole */ public class JspIndexPatternBuilder implements IndexPatternBuilder { @Override - public Lexer getIndexingLexer(final PsiFile file) { + public Lexer getIndexingLexer(@NotNull final PsiFile file) { if (JspPsiUtil.isInJspFile(file)) { EditorHighlighter highlighter = null; @@ -67,7 +68,7 @@ public class JspIndexPatternBuilder implements IndexPatternBuilder { } @Override - public TokenSet getCommentTokenSet(final PsiFile file) { + public TokenSet getCommentTokenSet(@NotNull final PsiFile file) { final JspFile jspFile = JspPsiUtil.getJspFile(file); TokenSet commentTokens = TokenSet.orSet(JavaIndexPatternBuilder.XML_COMMENT_BIT_SET, StdTokenSets.COMMENT_BIT_SET); final ParserDefinition parserDefinition = diff --git a/java/java-impl/src/com/intellij/psi/impl/search/LexerEditorHighlighterLexer.java b/java/java-impl/src/com/intellij/psi/impl/search/LexerEditorHighlighterLexer.java index 92068c2c0d9a..894b88b5d11e 100644 --- a/java/java-impl/src/com/intellij/psi/impl/search/LexerEditorHighlighterLexer.java +++ b/java/java-impl/src/com/intellij/psi/impl/search/LexerEditorHighlighterLexer.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2010 JetBrains s.r.o. + * Copyright 2000-2013 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,6 +20,7 @@ import com.intellij.openapi.editor.highlighter.EditorHighlighter; import com.intellij.openapi.editor.highlighter.HighlighterIterator; import com.intellij.psi.tree.IElementType; import com.intellij.util.text.CharSequenceSubSequence; +import org.jetbrains.annotations.NotNull; /** * @author Sergey Evdokimov @@ -38,7 +39,7 @@ public class LexerEditorHighlighterLexer extends LexerBase { } @Override - public void start(CharSequence buffer, int startOffset, int endOffset, int state) { + public void start(@NotNull CharSequence buffer, int startOffset, int endOffset, int state) { if (myAlreadyInitializedHighlighter) { this.buffer = buffer; start = startOffset; @@ -75,6 +76,7 @@ public class LexerEditorHighlighterLexer extends LexerBase { iterator.advance(); } + @NotNull @Override public CharSequence getBufferSequence() { return buffer; diff --git a/java/java-psi-impl/src/com/intellij/lang/java/lexer/JavaDocLexer.java b/java/java-psi-impl/src/com/intellij/lang/java/lexer/JavaDocLexer.java index de1e03f30d6d..0592f9e916d8 100644 --- a/java/java-psi-impl/src/com/intellij/lang/java/lexer/JavaDocLexer.java +++ b/java/java-psi-impl/src/com/intellij/lang/java/lexer/JavaDocLexer.java @@ -54,7 +54,7 @@ public class JavaDocLexer extends MergingLexerAdapter { } @Override - public final void start(CharSequence buffer, int startOffset, int endOffset, int initialState) { + public final void start(@NotNull CharSequence buffer, int startOffset, int endOffset, int initialState) { myBuffer = buffer; myBufferIndex = startOffset; myBufferEndOffset = endOffset; @@ -68,6 +68,7 @@ public class JavaDocLexer extends MergingLexerAdapter { return myState; } + @NotNull @Override public CharSequence getBufferSequence() { return myBuffer; diff --git a/java/java-psi-impl/src/com/intellij/lang/java/lexer/JavaLexer.java b/java/java-psi-impl/src/com/intellij/lang/java/lexer/JavaLexer.java index db6e5e21aa25..f1c6c19453bb 100644 --- a/java/java-psi-impl/src/com/intellij/lang/java/lexer/JavaLexer.java +++ b/java/java-psi-impl/src/com/intellij/lang/java/lexer/JavaLexer.java @@ -175,7 +175,7 @@ public class JavaLexer extends LexerBase { } @Override - public final void start(CharSequence buffer, int startOffset, int endOffset, int initialState) { + public final void start(@NotNull CharSequence buffer, int startOffset, int endOffset, int initialState) { myBuffer = buffer; myBufferArray = CharArrayUtil.fromSequenceWithoutCopying(buffer); myBufferIndex = startOffset; @@ -417,6 +417,7 @@ public class JavaLexer extends LexerBase { return pos; } + @NotNull @Override public CharSequence getBufferSequence() { return myBuffer; diff --git a/java/manifest/src/org/jetbrains/lang/manifest/parser/ManifestLexer.java b/java/manifest/src/org/jetbrains/lang/manifest/parser/ManifestLexer.java index 26741c2d4d60..13727688ef3a 100644 --- a/java/manifest/src/org/jetbrains/lang/manifest/parser/ManifestLexer.java +++ b/java/manifest/src/org/jetbrains/lang/manifest/parser/ManifestLexer.java @@ -27,6 +27,7 @@ package org.jetbrains.lang.manifest.parser; import com.intellij.lexer.LexerBase; import com.intellij.psi.TokenType; import com.intellij.psi.tree.IElementType; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.lang.manifest.psi.ManifestTokenType; @@ -63,7 +64,7 @@ public class ManifestLexer extends LexerBase { private IElementType myTokenType; @Override - public void start(CharSequence buffer, int startOffset, int endOffset, int initialState) { + public void start(@NotNull CharSequence buffer, int startOffset, int endOffset, int initialState) { this.myBuffer = buffer; this.myEndOffset = endOffset; myCurrentState = State.values()[initialState]; @@ -104,6 +105,7 @@ public class ManifestLexer extends LexerBase { return myEndOffset; } + @NotNull @Override public CharSequence getBufferSequence() { return myBuffer; diff --git a/platform/core-api/src/com/intellij/lexer/DelegateLexer.java b/platform/core-api/src/com/intellij/lexer/DelegateLexer.java index 4b95562b6189..ce8bbbc18748 100644 --- a/platform/core-api/src/com/intellij/lexer/DelegateLexer.java +++ b/platform/core-api/src/com/intellij/lexer/DelegateLexer.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2013 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,6 +20,7 @@ package com.intellij.lexer; import com.intellij.psi.tree.IElementType; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public class DelegateLexer extends LexerBase { @@ -34,7 +35,7 @@ public class DelegateLexer extends LexerBase { } @Override - public void start(CharSequence buffer, int startOffset, int endOffset, int initialState) { + public void start(@NotNull CharSequence buffer, int startOffset, int endOffset, int initialState) { myDelegate.start(buffer, startOffset, endOffset, initialState); } @@ -64,6 +65,7 @@ public class DelegateLexer extends LexerBase { myDelegate.advance(); } + @NotNull @Override public final CharSequence getBufferSequence() { return myDelegate.getBufferSequence(); diff --git a/platform/core-api/src/com/intellij/lexer/DocCommentLexer.java b/platform/core-api/src/com/intellij/lexer/DocCommentLexer.java index bb121f9e2ecf..7ea6da53b105 100644 --- a/platform/core-api/src/com/intellij/lexer/DocCommentLexer.java +++ b/platform/core-api/src/com/intellij/lexer/DocCommentLexer.java @@ -17,6 +17,7 @@ package com.intellij.lexer; import com.intellij.psi.tree.IElementType; import com.intellij.util.text.CharArrayUtil; +import org.jetbrains.annotations.NotNull; import java.io.IOException; @@ -45,7 +46,7 @@ public class DocCommentLexer extends MergingLexerAdapter { } @Override - public final void start(CharSequence buffer, int startOffset, int endOffset, int initialState) { + public final void start(@NotNull CharSequence buffer, int startOffset, int endOffset, int initialState) { myBuffer = buffer; myBufferIndex = startOffset; myBufferEndOffset = endOffset; @@ -59,6 +60,7 @@ public class DocCommentLexer extends MergingLexerAdapter { return myState; } + @NotNull @Override public CharSequence getBufferSequence() { return myBuffer; diff --git a/platform/core-api/src/com/intellij/lexer/FlexAdapter.java b/platform/core-api/src/com/intellij/lexer/FlexAdapter.java index cd9ccaf0a996..593f68c7477d 100644 --- a/platform/core-api/src/com/intellij/lexer/FlexAdapter.java +++ b/platform/core-api/src/com/intellij/lexer/FlexAdapter.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2013 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,6 +16,7 @@ package com.intellij.lexer; import com.intellij.psi.tree.IElementType; +import org.jetbrains.annotations.NotNull; import java.io.IOException; @@ -39,7 +40,7 @@ public class FlexAdapter extends LexerBase { } @Override - public void start(final CharSequence buffer, int startOffset, int endOffset, final int initialState) { + public void start(@NotNull final CharSequence buffer, int startOffset, int endOffset, final int initialState) { myText = buffer; myEnd = endOffset; myFlex.reset(myText, startOffset, endOffset, initialState); @@ -76,6 +77,7 @@ public class FlexAdapter extends LexerBase { myTokenType = null; } + @NotNull @Override public CharSequence getBufferSequence() { return myText; diff --git a/platform/core-api/src/com/intellij/lexer/LayeredLexer.java b/platform/core-api/src/com/intellij/lexer/LayeredLexer.java index eabb3555c462..1080337fb188 100644 --- a/platform/core-api/src/com/intellij/lexer/LayeredLexer.java +++ b/platform/core-api/src/com/intellij/lexer/LayeredLexer.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2013 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,6 +18,7 @@ package com.intellij.lexer; import com.intellij.openapi.diagnostic.Logger; import com.intellij.psi.tree.IElementType; import com.intellij.util.containers.HashMap; +import org.jetbrains.annotations.NotNull; import java.util.HashSet; import java.util.Map; @@ -75,7 +76,7 @@ public class LayeredLexer extends DelegateLexer { } @Override - public void start(CharSequence buffer, int startOffset, int endOffset, int initialState) { + public void start(@NotNull CharSequence buffer, int startOffset, int endOffset, int initialState) { LOG.assertTrue(initialState != IN_LAYER_STATE, "Restoring to layer is not supported."); myState = initialState; myCurrentLayerLexer = null; @@ -157,13 +158,14 @@ public class LayeredLexer extends DelegateLexer { myState = isLayerActive() ? IN_LAYER_STATE : super.getState(); } + @NotNull @Override public LexerPosition getCurrentPosition() { return new LexerPositionImpl(getTokenStart(), getState()); } @Override - public void restore(LexerPosition position) { + public void restore(@NotNull LexerPosition position) { start(getBufferSequence(), position.getOffset(), getBufferEnd(), position.getState()); } diff --git a/platform/core-api/src/com/intellij/lexer/Lexer.java b/platform/core-api/src/com/intellij/lexer/Lexer.java index 58b4dd3a6ff1..1ccfd472044b 100644 --- a/platform/core-api/src/com/intellij/lexer/Lexer.java +++ b/platform/core-api/src/com/intellij/lexer/Lexer.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2013 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,6 +16,7 @@ package com.intellij.lexer; import com.intellij.psi.tree.IElementType; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; /** @@ -35,20 +36,22 @@ public abstract class Lexer { * @param initialState the initial state of the lexer. * @since IDEA 7 */ - public abstract void start(CharSequence buffer, int startOffset, int endOffset, int initialState); + public abstract void start(@NotNull CharSequence buffer, int startOffset, int endOffset, int initialState); - public final void start(CharSequence buf, int start, int end) { + public final void start(@NotNull CharSequence buf, int start, int end) { start(buf, start, end, 0); } - public final void start(CharSequence buf) { + public final void start(@NotNull CharSequence buf) { start(buf, 0, buf.length(), 0); } + @NotNull public CharSequence getTokenSequence() { return getBufferSequence().subSequence(getTokenStart(), getTokenEnd()); } + @NotNull public String getTokenText() { return getTokenSequence().toString(); } @@ -93,6 +96,7 @@ public abstract class Lexer { * * @return the lexer position and state. */ + @NotNull public abstract LexerPosition getCurrentPosition(); /** @@ -100,7 +104,7 @@ public abstract class Lexer { * * @param position the state and position to restore to. */ - public abstract void restore(LexerPosition position); + public abstract void restore(@NotNull LexerPosition position); /** * Returns the buffer sequence over which the lexer is running. This method should return the @@ -108,6 +112,7 @@ public abstract class Lexer { * @return the lexer buffer. * @since IDEA 7 */ + @NotNull public abstract CharSequence getBufferSequence(); /** diff --git a/platform/core-api/src/com/intellij/lexer/LexerBase.java b/platform/core-api/src/com/intellij/lexer/LexerBase.java index c166bed402e0..b7a69b8df9dd 100644 --- a/platform/core-api/src/com/intellij/lexer/LexerBase.java +++ b/platform/core-api/src/com/intellij/lexer/LexerBase.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2011 JetBrains s.r.o. + * Copyright 2000-2013 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,7 +15,10 @@ */ package com.intellij.lexer; +import org.jetbrains.annotations.NotNull; + public abstract class LexerBase extends Lexer { + @NotNull @Override public LexerPosition getCurrentPosition() { final int offset = getTokenStart(); @@ -24,7 +27,7 @@ public abstract class LexerBase extends Lexer { } @Override - public void restore(LexerPosition position) { + public void restore(@NotNull LexerPosition position) { start(getBufferSequence(), position.getOffset(), getBufferEnd(), position.getState()); } } diff --git a/platform/core-api/src/com/intellij/lexer/MergingLexerAdapterBase.java b/platform/core-api/src/com/intellij/lexer/MergingLexerAdapterBase.java index bbaace8cd95f..2d55098ac51f 100644 --- a/platform/core-api/src/com/intellij/lexer/MergingLexerAdapterBase.java +++ b/platform/core-api/src/com/intellij/lexer/MergingLexerAdapterBase.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2010 JetBrains s.r.o. + * Copyright 2000-2013 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,6 +16,7 @@ package com.intellij.lexer; import com.intellij.psi.tree.IElementType; +import org.jetbrains.annotations.NotNull; public class MergingLexerAdapterBase extends DelegateLexer { private IElementType myTokenType; @@ -29,7 +30,7 @@ public class MergingLexerAdapterBase extends DelegateLexer { } @Override - public void start(final CharSequence buffer, final int startOffset, final int endOffset, final int initialState) { + public void start(@NotNull final CharSequence buffer, final int startOffset, final int endOffset, final int initialState) { super.start(buffer, startOffset, endOffset, initialState); myTokenType = null; } @@ -81,7 +82,7 @@ public class MergingLexerAdapterBase extends DelegateLexer { } @Override - public void restore(LexerPosition position) { + public void restore(@NotNull LexerPosition position) { MyLexerPosition pos = (MyLexerPosition)position; getDelegate().restore(pos.getOriginalPosition()); @@ -90,6 +91,7 @@ public class MergingLexerAdapterBase extends DelegateLexer { myState = pos.getOldState(); } + @NotNull @Override public LexerPosition getCurrentPosition() { return new MyLexerPosition(myTokenStart, myTokenType, getDelegate().getCurrentPosition(), myState); diff --git a/platform/indexing-impl/src/com/intellij/ide/highlighter/custom/AbstractCustomLexer.java b/platform/indexing-impl/src/com/intellij/ide/highlighter/custom/AbstractCustomLexer.java index 92e75ad3c0f3..4904c2e5d227 100644 --- a/platform/indexing-impl/src/com/intellij/ide/highlighter/custom/AbstractCustomLexer.java +++ b/platform/indexing-impl/src/com/intellij/ide/highlighter/custom/AbstractCustomLexer.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2013 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,6 +22,7 @@ import com.intellij.lexer.LexerBase; import com.intellij.psi.CustomHighlighterTokenType; import com.intellij.psi.tree.IElementType; import com.intellij.util.ArrayUtil; +import org.jetbrains.annotations.NotNull; import java.util.List; @@ -40,7 +41,7 @@ public class AbstractCustomLexer extends LexerBase { myTokenParsers = tokenParsers.toArray(new TokenParser[tokenParsers.size()]); } - public void start(CharSequence buffer, int startOffset, int endOffset, int initialState) { + public void start(@NotNull CharSequence buffer, int startOffset, int endOffset, int initialState) { myBuffer = buffer; myStartOffset = startOffset; myEndOffset = endOffset; @@ -95,6 +96,7 @@ public class AbstractCustomLexer extends LexerBase { myCurrentToken.updateData(myPosition, myPosition + 1, CustomHighlighterTokenType.CHARACTER); } + @NotNull public CharSequence getBufferSequence() { return myBuffer; } diff --git a/platform/indexing-impl/src/com/intellij/psi/impl/cache/impl/BaseFilterLexer.java b/platform/indexing-impl/src/com/intellij/psi/impl/cache/impl/BaseFilterLexer.java index d2e98c25c64b..cc9dddf396ea 100644 --- a/platform/indexing-impl/src/com/intellij/psi/impl/cache/impl/BaseFilterLexer.java +++ b/platform/indexing-impl/src/com/intellij/psi/impl/cache/impl/BaseFilterLexer.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2012 JetBrains s.r.o. + * Copyright 2000-2013 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,6 +23,7 @@ import com.intellij.psi.search.IndexPattern; import com.intellij.psi.search.UsageSearchContext; import com.intellij.util.text.CharArrayUtil; import gnu.trove.TIntArrayList; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.regex.Matcher; @@ -148,7 +149,7 @@ public abstract class BaseFilterLexer extends DelegateLexer implements IdTableBu } @Override - public void start(CharSequence buffer, int startOffset, int endOffset, int initialState) { + public void start(@NotNull CharSequence buffer, int startOffset, int endOffset, int initialState) { super.start(buffer, startOffset, endOffset, initialState); myCachedBufferSequence = getBufferSequence(); myCachedArraySequence = CharArrayUtil.fromSequenceWithoutCopying(myCachedBufferSequence); diff --git a/platform/lang-api/src/com/intellij/lexer/CompositeLexer.java b/platform/lang-api/src/com/intellij/lexer/CompositeLexer.java index 74937ac0baf5..d728aff0e823 100644 --- a/platform/lang-api/src/com/intellij/lexer/CompositeLexer.java +++ b/platform/lang-api/src/com/intellij/lexer/CompositeLexer.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2013 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,6 +16,7 @@ package com.intellij.lexer; import com.intellij.psi.tree.IElementType; +import org.jetbrains.annotations.NotNull; public abstract class CompositeLexer extends LexerBase { private final Lexer myLexer1; @@ -30,12 +31,13 @@ public abstract class CompositeLexer extends LexerBase { protected abstract IElementType getCompositeTokenType(IElementType type1, IElementType type2); @Override - public void start(CharSequence buffer, int startOffset, int endOffset, int initialState) { + public void start(@NotNull CharSequence buffer, int startOffset, int endOffset, int initialState) { myLexer1.start(buffer, startOffset, endOffset, (initialState >> 16) & 0xFFFF); myLexer2.start(buffer, startOffset, endOffset, initialState & 0xFFFF); myCurOffset = startOffset; } + @NotNull @Override public CharSequence getBufferSequence() { return myLexer1.getBufferSequence(); diff --git a/platform/lang-api/src/com/intellij/lexer/FilterLexer.java b/platform/lang-api/src/com/intellij/lexer/FilterLexer.java index 328a8cfc97cb..6f03469afe7b 100644 --- a/platform/lang-api/src/com/intellij/lexer/FilterLexer.java +++ b/platform/lang-api/src/com/intellij/lexer/FilterLexer.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2011 JetBrains s.r.o. + * Copyright 2000-2013 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,6 +17,7 @@ package com.intellij.lexer; import com.intellij.psi.tree.IElementType; import com.intellij.psi.tree.TokenSet; +import org.jetbrains.annotations.NotNull; public class FilterLexer extends DelegateLexer { private final Filter myFilter; @@ -55,7 +56,7 @@ public class FilterLexer extends DelegateLexer { } @Override - public void start(CharSequence buffer, int startOffset, int endOffset, int initialState) { + public void start(@NotNull CharSequence buffer, int startOffset, int endOffset, int initialState) { super.start(buffer, startOffset, endOffset, initialState); myPrevTokenEnd = -1; locateToken(); @@ -73,13 +74,14 @@ public class FilterLexer extends DelegateLexer { return myPrevTokenEnd; } + @NotNull @Override public LexerPosition getCurrentPosition() { return getDelegate().getCurrentPosition(); //To change body of overridden methods use File | Settings | File Templates. } @Override - public void restore(LexerPosition position) { + public void restore(@NotNull LexerPosition position) { getDelegate().restore(position); myPrevTokenEnd = -1; } diff --git a/platform/lang-api/src/com/intellij/lexer/StoppableLexerAdapter.java b/platform/lang-api/src/com/intellij/lexer/StoppableLexerAdapter.java index f8fec840353f..37632975f610 100644 --- a/platform/lang-api/src/com/intellij/lexer/StoppableLexerAdapter.java +++ b/platform/lang-api/src/com/intellij/lexer/StoppableLexerAdapter.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2013 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,6 +20,7 @@ package com.intellij.lexer; import com.intellij.psi.tree.IElementType; +import org.jetbrains.annotations.NotNull; public class StoppableLexerAdapter extends DelegateLexer { @@ -61,13 +62,14 @@ public class StoppableLexerAdapter extends DelegateLexer { return myStopped ? null : super.getTokenType(); } + @NotNull @Override public LexerPosition getCurrentPosition() { return getDelegate().getCurrentPosition(); } @Override - public void restore(LexerPosition position) { + public void restore(@NotNull LexerPosition position) { getDelegate().restore(position); } diff --git a/platform/lang-api/src/com/intellij/lexer/StringLiteralLexer.java b/platform/lang-api/src/com/intellij/lexer/StringLiteralLexer.java index 978c01bd0f61..a163e5bf4dd4 100644 --- a/platform/lang-api/src/com/intellij/lexer/StringLiteralLexer.java +++ b/platform/lang-api/src/com/intellij/lexer/StringLiteralLexer.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2013 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,6 +19,7 @@ import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.StringEscapesTokenTypes; import com.intellij.psi.tree.IElementType; +import org.jetbrains.annotations.NotNull; /** * @author max @@ -74,7 +75,7 @@ public class StringLiteralLexer extends LexerBase { } @Override - public void start(CharSequence buffer, int startOffset, int endOffset, int initialState) { + public void start(@NotNull CharSequence buffer, int startOffset, int endOffset, int initialState) { myBuffer = buffer; myStart = startOffset; if (myQuoteChar == NO_QUOTE_CHAR) { @@ -249,6 +250,7 @@ public class StringLiteralLexer extends LexerBase { myEnd = locateToken(myStart); } + @NotNull @Override public CharSequence getBufferSequence() { return myBuffer; diff --git a/platform/lang-impl/src/com/intellij/ide/highlighter/custom/impl/CustomFileTypeHighlighterProvider.java b/platform/lang-impl/src/com/intellij/ide/highlighter/custom/impl/CustomFileTypeHighlighterProvider.java index 45b00debdc40..cea9063882b4 100644 --- a/platform/lang-impl/src/com/intellij/ide/highlighter/custom/impl/CustomFileTypeHighlighterProvider.java +++ b/platform/lang-impl/src/com/intellij/ide/highlighter/custom/impl/CustomFileTypeHighlighterProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2013 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,6 +24,7 @@ import com.intellij.openapi.fileTypes.impl.CustomSyntaxTableFileType; import com.intellij.openapi.project.Project; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.ide.highlighter.custom.CustomFileHighlighter; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; /** @@ -32,7 +33,7 @@ import org.jetbrains.annotations.Nullable; public class CustomFileTypeHighlighterProvider implements SyntaxHighlighterProvider { @Override @Nullable - public SyntaxHighlighter create(final FileType fileType, @Nullable final Project project, @Nullable final VirtualFile file) { + public SyntaxHighlighter create(@NotNull final FileType fileType, @Nullable final Project project, @Nullable final VirtualFile file) { if (fileType instanceof AbstractFileType) { return new CustomFileHighlighter(((CustomSyntaxTableFileType) fileType).getSyntaxTable()); } diff --git a/platform/lang-impl/src/com/intellij/lexer/PrefixSuffixStripperLexer.java b/platform/lang-impl/src/com/intellij/lexer/PrefixSuffixStripperLexer.java index 2a52a07e7990..8bf8d3ca11ab 100644 --- a/platform/lang-impl/src/com/intellij/lexer/PrefixSuffixStripperLexer.java +++ b/platform/lang-impl/src/com/intellij/lexer/PrefixSuffixStripperLexer.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2013 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,6 +21,7 @@ package com.intellij.lexer; import com.intellij.psi.tree.IElementType; import com.intellij.util.text.CharArrayUtil; +import org.jetbrains.annotations.NotNull; public class PrefixSuffixStripperLexer extends LexerBase { private CharSequence myBuffer; @@ -49,7 +50,7 @@ public class PrefixSuffixStripperLexer extends LexerBase { } @Override - public void start(CharSequence buffer, int startOffset, int endOffset, int initialState) { + public void start(@NotNull CharSequence buffer, int startOffset, int endOffset, int initialState) { myBuffer = buffer; myBufferArray = CharArrayUtil.fromSequenceWithoutCopying(buffer); myTokenStart = startOffset; @@ -87,6 +88,7 @@ public class PrefixSuffixStripperLexer extends LexerBase { return myBufferEnd; } + @NotNull @Override public CharSequence getBufferSequence() { return myBuffer; diff --git a/platform/lang-impl/src/com/intellij/psi/templateLanguages/TemplateBlackAndWhiteLexer.java b/platform/lang-impl/src/com/intellij/psi/templateLanguages/TemplateBlackAndWhiteLexer.java index 081e11efbb8c..c7d3dce71c99 100644 --- a/platform/lang-impl/src/com/intellij/psi/templateLanguages/TemplateBlackAndWhiteLexer.java +++ b/platform/lang-impl/src/com/intellij/psi/templateLanguages/TemplateBlackAndWhiteLexer.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2013 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,6 +22,7 @@ package com.intellij.psi.templateLanguages; import com.intellij.lexer.Lexer; import com.intellij.lexer.LexerPosition; import com.intellij.psi.tree.IElementType; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public class TemplateBlackAndWhiteLexer extends Lexer { @@ -39,11 +40,12 @@ public class TemplateBlackAndWhiteLexer extends Lexer { } @Override - public void start(final CharSequence buffer, final int startOffset, final int endOffset, final int initialState) { + public void start(@NotNull final CharSequence buffer, final int startOffset, final int endOffset, final int initialState) { myBaseLexer.start(buffer, startOffset, endOffset, initialState); setupTemplateToken(); } + @NotNull @Override public CharSequence getBufferSequence() { return myBaseLexer.getBufferSequence(); @@ -139,13 +141,14 @@ public class TemplateBlackAndWhiteLexer extends Lexer { } } + @NotNull @Override public LexerPosition getCurrentPosition() { return new Position(myTemplateLexer.getCurrentPosition(), myBaseLexer.getCurrentPosition()); } @Override - public void restore(LexerPosition position) { + public void restore(@NotNull LexerPosition position) { final Position p = (Position)position; myBaseLexer.restore(p.getBasePosition()); final LexerPosition templatePos = p.getTemplatePosition(); diff --git a/platform/platform-api/src/com/intellij/lexer/LookAheadLexer.java b/platform/platform-api/src/com/intellij/lexer/LookAheadLexer.java index 17c9bd6294d0..d2b081de63b7 100644 --- a/platform/platform-api/src/com/intellij/lexer/LookAheadLexer.java +++ b/platform/platform-api/src/com/intellij/lexer/LookAheadLexer.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2013 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,6 +18,7 @@ package com.intellij.lexer; import com.intellij.psi.tree.IElementType; import com.intellij.util.containers.ImmutableUserMap; import com.intellij.util.containers.Queue; +import org.jetbrains.annotations.NotNull; /** * @author peter @@ -73,6 +74,7 @@ public abstract class LookAheadLexer extends LexerBase{ assert !myTypeCache.isEmpty(); } + @NotNull public CharSequence getBufferSequence() { return myBaseLexer.getBufferSequence(); } @@ -109,11 +111,12 @@ public abstract class LookAheadLexer extends LexerBase{ return myTokenStart; } + @NotNull public LookAheadLexerPosition getCurrentPosition() { return new LookAheadLexerPosition(this, ImmutableUserMap.EMPTY); } - public final void restore(final LexerPosition _position) { + public final void restore(@NotNull final LexerPosition _position) { restore((LookAheadLexerPosition) _position); } @@ -129,7 +132,7 @@ public abstract class LookAheadLexer extends LexerBase{ } @Override - public void start(CharSequence buffer, int startOffset, int endOffset, int initialState) { + public void start(@NotNull CharSequence buffer, int startOffset, int endOffset, int initialState) { myBaseLexer.start(buffer, startOffset, endOffset, initialState & 0xFFFF); myTokenStart = startOffset; myTypeCache.clear(); diff --git a/platform/platform-api/src/com/intellij/openapi/fileTypes/LanguageFileTypeHighlighterProvider.java b/platform/platform-api/src/com/intellij/openapi/fileTypes/LanguageFileTypeHighlighterProvider.java index ad7ae09c3862..40fdecebd144 100644 --- a/platform/platform-api/src/com/intellij/openapi/fileTypes/LanguageFileTypeHighlighterProvider.java +++ b/platform/platform-api/src/com/intellij/openapi/fileTypes/LanguageFileTypeHighlighterProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2013 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,6 +17,7 @@ package com.intellij.openapi.fileTypes; import com.intellij.openapi.project.Project; import com.intellij.openapi.vfs.VirtualFile; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; /** @@ -24,7 +25,7 @@ import org.jetbrains.annotations.Nullable; */ public class LanguageFileTypeHighlighterProvider implements SyntaxHighlighterProvider { @Nullable - public SyntaxHighlighter create(final FileType fileType, @Nullable final Project project, @Nullable final VirtualFile file) { + public SyntaxHighlighter create(@NotNull final FileType fileType, @Nullable final Project project, @Nullable final VirtualFile file) { if (fileType instanceof LanguageFileType) { return SyntaxHighlighterFactory.getSyntaxHighlighter(((LanguageFileType)fileType).getLanguage(), project, file); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/highlighter/EditorHighlighterFactoryImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/highlighter/EditorHighlighterFactoryImpl.java index 2fff109a3193..dafe24d93456 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/highlighter/EditorHighlighterFactoryImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/highlighter/EditorHighlighterFactoryImpl.java @@ -35,14 +35,16 @@ import org.jetbrains.annotations.Nullable; public class EditorHighlighterFactoryImpl extends EditorHighlighterFactory { private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.editor.highlighter.EditorHighlighterFactoryImpl"); + @NotNull @Override - public EditorHighlighter createEditorHighlighter(SyntaxHighlighter highlighter, final EditorColorsScheme colors) { + public EditorHighlighter createEditorHighlighter(SyntaxHighlighter highlighter, @NotNull final EditorColorsScheme colors) { if (highlighter == null) highlighter = new PlainSyntaxHighlighter(); return new LexerEditorHighlighter(highlighter, colors); } + @NotNull @Override - public EditorHighlighter createEditorHighlighter(final FileType fileType, final EditorColorsScheme settings, final Project project) { + public EditorHighlighter createEditorHighlighter(@NotNull final FileType fileType, @NotNull final EditorColorsScheme settings, final Project project) { if (fileType instanceof LanguageFileType) { return FileTypeEditorHighlighterProviders.INSTANCE.forFileType(fileType).getEditorHighlighter(project, fileType, null, settings); } @@ -51,11 +53,13 @@ public class EditorHighlighterFactoryImpl extends EditorHighlighterFactory { return createEditorHighlighter(highlighter, settings); } + @NotNull @Override - public EditorHighlighter createEditorHighlighter(final Project project, final FileType fileType) { + public EditorHighlighter createEditorHighlighter(final Project project, @NotNull final FileType fileType) { return createEditorHighlighter(fileType, EditorColorsManager.getInstance().getGlobalScheme(), project); } + @NotNull @Override public EditorHighlighter createEditorHighlighter(@NotNull VirtualFile vFile, @NotNull EditorColorsScheme settings, @Nullable Project project) { FileType fileType = vFile.getFileType(); @@ -105,18 +109,21 @@ public class EditorHighlighterFactoryImpl extends EditorHighlighterFactory { return fileType; } + @NotNull @Override - public EditorHighlighter createEditorHighlighter(final Project project, final VirtualFile file) { + public EditorHighlighter createEditorHighlighter(final Project project, @NotNull final VirtualFile file) { return createEditorHighlighter(file, EditorColorsManager.getInstance().getGlobalScheme(), project); } + @NotNull @Override - public EditorHighlighter createEditorHighlighter(final Project project, final String fileName) { + public EditorHighlighter createEditorHighlighter(final Project project, @NotNull final String fileName) { return createEditorHighlighter(EditorColorsManager.getInstance().getGlobalScheme(), fileName, project); } + @NotNull @Override - public EditorHighlighter createEditorHighlighter(final EditorColorsScheme settings, final String fileName, @Nullable final Project project) { + public EditorHighlighter createEditorHighlighter(@NotNull final EditorColorsScheme settings, @NotNull final String fileName, @Nullable final Project project) { return createEditorHighlighter(new LightVirtualFile(fileName), settings, project); } } \ No newline at end of file diff --git a/platform/platform-tests/testSrc/com/intellij/lang/PsiBuilderQuickTest.java b/platform/platform-tests/testSrc/com/intellij/lang/PsiBuilderQuickTest.java index 343b58f211ff..5a47fdf4c5f3 100644 --- a/platform/platform-tests/testSrc/com/intellij/lang/PsiBuilderQuickTest.java +++ b/platform/platform-tests/testSrc/com/intellij/lang/PsiBuilderQuickTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2012 JetBrains s.r.o. + * Copyright 2000-2013 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -33,9 +33,6 @@ import com.intellij.util.diff.DiffTree; import com.intellij.util.diff.DiffTreeChangeBuilder; import com.intellij.util.diff.FlyweightCapableTreeStructure; import com.intellij.util.diff.ShallowNodeComparator; -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; @@ -674,7 +671,7 @@ public class PsiBuilderQuickTest extends LightPlatformTestCase { private int myBufferEnd = 1; @Override - public void start(CharSequence buffer, int startOffset, int endOffset, int initialState) { + public void start(@NotNull CharSequence buffer, int startOffset, int endOffset, int initialState) { myBuffer = buffer.subSequence(startOffset, endOffset); myIndex = 0; myBufferEnd = myBuffer.length(); @@ -710,6 +707,7 @@ public class PsiBuilderQuickTest extends LightPlatformTestCase { if (myIndex < myBufferEnd) myIndex++; } + @NotNull @Override public CharSequence getBufferSequence() { return myBuffer; diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/highlighter/GroovySlashyStringLexer.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/highlighter/GroovySlashyStringLexer.java index 01e91278577e..65ec015d7318 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/highlighter/GroovySlashyStringLexer.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/highlighter/GroovySlashyStringLexer.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2011 JetBrains s.r.o. + * Copyright 2000-2013 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,6 +21,7 @@ import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.StringEscapesTokenTypes; import com.intellij.psi.tree.IElementType; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.plugins.groovy.lang.lexer.GroovyTokenTypes; @@ -41,7 +42,7 @@ public class GroovySlashyStringLexer extends LexerBase { } @Override - public void start(CharSequence buffer, int startOffset, int endOffset, int initialState) { + public void start(@NotNull CharSequence buffer, int startOffset, int endOffset, int initialState) { if (buffer.length()