fix: A stub parser to make diagnostics work again
This commit is contained in:
parent
3e3d955bd1
commit
7cecdf8886
4 changed files with 133 additions and 0 deletions
|
@ -24,6 +24,9 @@ Changelog structure reference:
|
|||
### Removed
|
||||
- IDEA 2022 support (Necessary change for the new documentation backend in lsp4intellij)
|
||||
|
||||
### Fixed
|
||||
- Error highlighting now works on IDEA 2023
|
||||
|
||||
## [0.5.0] "The *ZON*iverse"
|
||||
|
||||
### Added
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
/*
|
||||
* Copyright 2023 FalsePattern
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.falsepattern.zigbrains.zig.parser;
|
||||
|
||||
import com.falsepattern.zigbrains.zig.ide.ZigFileType;
|
||||
import com.falsepattern.zigbrains.zig.ide.ZigLanguage;
|
||||
import com.intellij.extapi.psi.PsiFileBase;
|
||||
import com.intellij.openapi.fileTypes.FileType;
|
||||
import com.intellij.psi.FileViewProvider;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class ZigFile extends PsiFileBase {
|
||||
public ZigFile(@NotNull FileViewProvider viewProvider) {
|
||||
super(viewProvider, ZigLanguage.INSTANCE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull FileType getFileType() {
|
||||
return ZigFileType.INSTANCE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Zig File";
|
||||
}
|
||||
}
|
|
@ -0,0 +1,87 @@
|
|||
/*
|
||||
* Copyright 2023 FalsePattern
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.falsepattern.zigbrains.zig.parser;
|
||||
|
||||
import com.falsepattern.zigbrains.zig.ide.ZigLanguage;
|
||||
import com.falsepattern.zigbrains.zon.ZonLanguage;
|
||||
import com.falsepattern.zigbrains.zon.lexer.ZonLexerAdapter;
|
||||
import com.falsepattern.zigbrains.zon.parser.ZonParser;
|
||||
import com.falsepattern.zigbrains.zon.parser.ZonTokenSets;
|
||||
import com.falsepattern.zigbrains.zon.psi.ZonTypes;
|
||||
import com.intellij.lang.ASTFactory;
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.lang.ParserDefinition;
|
||||
import com.intellij.lang.PsiBuilder;
|
||||
import com.intellij.lang.PsiParser;
|
||||
import com.intellij.lexer.DummyLexer;
|
||||
import com.intellij.lexer.Lexer;
|
||||
import com.intellij.openapi.fileTypes.PlainTextParserDefinition;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.FileViewProvider;
|
||||
import com.intellij.psi.PlainTextTokenTypes;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import com.intellij.psi.tree.IFileElementType;
|
||||
import com.intellij.psi.tree.TokenSet;
|
||||
import com.intellij.psi.util.PsiUtilCore;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class ZigParserDefinition implements ParserDefinition {
|
||||
public static final IFileElementType FILE = new IFileElementType(ZigLanguage.INSTANCE) {
|
||||
public ASTNode parseContents(@NotNull ASTNode chameleon) {
|
||||
final CharSequence chars = chameleon.getChars();
|
||||
return ASTFactory.leaf(PlainTextTokenTypes.PLAIN_TEXT, chars);
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public @NotNull Lexer createLexer(Project project) {
|
||||
return new DummyLexer(FILE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull TokenSet getCommentTokens() {
|
||||
return TokenSet.EMPTY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull TokenSet getStringLiteralElements() {
|
||||
return TokenSet.EMPTY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull PsiParser createParser(Project project) {
|
||||
throw new UnsupportedOperationException("Not Supported");
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull IFileElementType getFileNodeType() {
|
||||
return FILE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull PsiFile createFile(@NotNull FileViewProvider viewProvider) {
|
||||
return new ZigFile(viewProvider);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull PsiElement createElement(ASTNode node) {
|
||||
return PsiUtilCore.NULL_PSI_ELEMENT;
|
||||
}
|
||||
}
|
|
@ -66,6 +66,9 @@
|
|||
language="Zig"
|
||||
extensions="zig"/>
|
||||
|
||||
<lang.parserDefinition language="Zig"
|
||||
implementationClass="com.falsepattern.zigbrains.zig.parser.ZigParserDefinition"/>
|
||||
|
||||
<colorSettingsPage implementation="com.falsepattern.zigbrains.zig.ide.ZigColorSettingsPage"/>
|
||||
|
||||
<applicationConfigurable parentId="language"
|
||||
|
|
Loading…
Add table
Reference in a new issue