구조화 된 언어의 문법을 구성했으며 이제 자동 완성 동작을 코딩하려고합니다. 이와 같이 정의 된 문법을 기반으로 생성하는 방법이 있습니까? 내가 알아 낸 후 https://raw.githubusercontent.com/dnltsk/intellij-mapfile-plugin/master/src/org/dnltsk/mapfileplugin/Mapfile.bnf문법 구조를 통해 자동 완성을 생성하는 방법은 무엇입니까?
0
A
답변
0
: - END, NAME 및 TITLE 제안한다 ROOT 후 자동 완성 단축키를 친
RootObject ::= ROOT (NameAttr | TitleAttr)* END
private NameAttr ::= NAME string
private TitleAttr ::= TITLE string
명확하게 문법 여기
에 정의 된 완전한 문법에 대한 링크입니다 PsiElement에 이미 다음과 같은 일반적인 오류 설명이 포함되어 있습니다. "FooTokenType.NAME, FooTokenType.TITLE or FooTokenType.END expected, got 'IntellijIdeaRulezzz'"
필자는 Autocompletion을 매우 실용적인 방식으로 관리했습니다.
public void addCompletions(@NotNull CompletionParameters parameters, ProcessingContext context, @NotNull CompletionResultSet resultSet) {
PsiElement element = parameters.getPosition().getParent();
String genericErrorDescription = ((PsiErrorElementImpl) element).getErrorDescription();
errorDescription = errorDescription.substring(0, errorDescription.indexOf(" expected, got "));
errorDescription = errorDescription.replaceAll("FooTokenType\\.", "");
String[] suggestedTokens = errorDescription.split("(,)|(or)");
for (String suggestedToken : suggestedTokens) {
resultSet.addElement(LookupElementBuilder.create(suggestedToken));
}
}
이로 인해 예상되는 동작이 발생합니다. 이것이 다른 사람들을 돕고 더 좋은 해결책이 있다면 알려주 길 바란다.
관련 문제
- 1. jxl.jar 및 jasperReports.jar로 자동 완성을 생성하는 방법
- 2. QSharedData 기반 구조를 자동으로 생성하는 방법은 무엇입니까?
- 3. JsHelper에서 자동 완성을 만드는 방법은 무엇입니까?
- 4. jQuery 자동 완성을 올바르게 사용하는 방법은 무엇입니까?
- 5. 기본 코드 자동 완성을 만드는 방법은 무엇입니까?
- 6. vim에서 중괄호 자동 완성을 설정하는 방법은 무엇입니까?
- 7. Excel에서 자동 완성을 만드는 방법은 무엇입니까?
- 8. myshell에서 명령 자동 완성을 구현하는 방법은 무엇입니까?
- 9. html에서 자동 완성을 수행하는 방법은 무엇입니까?
- 10. 테스트에서 자동 완성을 공유
- 11. 자동 완성을
- 12. 자동 완성을 통해 여러 Google지도 아이콘 추가
- 13. 유니온 클래스 구조를 생성하는 방법은 무엇입니까?
- 14. primefaces의 다른 자동 완성에 따라 자동 완성을 표시하는 방법은 무엇입니까?
- 15. 문법 규칙에서 dfa를 생성하는 도구
- 16. 자동 완성을 제거하는 자동 완성 호버
- 17. jQuery 자동 완성을 위해 MySQL 소스 데이터를 호출하는 방법은 무엇입니까?
- 18. 코드 완성을 위해 .dll 파일에서 .php 파일을 생성하는 방법은 무엇입니까?
- 19. 자바에서 코드를 자동 생성하는 방법은 무엇입니까?
- 20. 자동 완성을 선택
- 21. JPA를 통해 트리 구조를 저장하는 방법은 무엇입니까?
- 22. Safari의 주소 입력란에서 자동 완성을 사용 중지하는 방법은 무엇입니까?
- 23. 텍스트 입력에서 자동 완성을 제거하십시오.
- 24. 웹 사이트의 PDF를 자동 생성하는 방법은 무엇입니까?
- 25. Eclipse에서 * -javadoc.jar을 자동 생성하는 방법은 무엇입니까?
- 26. API 버전간에 diff를 자동 생성하는 방법은 무엇입니까?
- 27. 숫자를 오름차순으로 자동 생성하는 방법은 무엇입니까?
- 28. Delphi XE에서 * _TLB.pas를 자동 생성하는 방법은 무엇입니까?
- 29. 클래스에서 상수를 자동 생성하는 방법은 무엇입니까?
- 30. Magento URL Rewrites를 자동 생성하는 방법은 무엇입니까?