ScintillaNET プロジェクトの 1 つで Java オートコンプリートを実装しようとしていますが、問題が発生しています。必要なすべての手順に従っています
- ScintillaNET (および必要な .dll) が PATH 変数にあることを確認します。
- エディタに CustomLocation と Language パラメータの値を追加しました
以下はレビュー用のコードです。パラメーターが正しく設定されていることを確認しました...私はただ迷っています。
Scintilla sciEditor = (Scintilla)selectedTab.Controls["sciEditor"];
using (StreamReader sr = new StreamReader(fileName))
{
String line = sr.ReadToEnd();
sciEditor.Text = line;
}
if (ext == "java")
{
sciEditor.ConfigurationManager.Language = "java";
sciEditor.ConfigurationManager.CustomLocation = @"C:\java.xml";
sciEditor.CharAdded += new EventHandler<CharAddedEventArgs>(sciEditor_CharAdded);
}
テキストを Scintilla エディターに読み込んだことがわかります。ファイル ext が Java の場合 (このブロックの上で解析し、有効な回答が得られます)、エディターの言語を Java に設定し、カスタムの場所を a に設定します。 java.xml ファイル
<?xml version="1.0" encoding="utf-8"?>
<ScintillaNET>
<Language Name="java">
<AutoComplete FillUpCharacters=".([" SingleLineAccept="True" IsCaseSensitive="False">
<List>
abstract assert boolean break byte case catch char class continue default do double else enum extends
final finally float for if import int interface long native new package private protected public return
short static strictfp super switch synchronized this throw throws transient try void volatile while
</List>
</AutoComplete>
<Indentation TabWidth="4" SmartIndentType="cpp" />
<Lexer LexerName="java" LineCommentPrefix="//" StreamCommentPrefix="/* " StreamCommentSuffix=" */" >
<Keywords List="0" Inherit="False">
abstract assert break case catch continue default do else extends final finally for if import interface
native new package private protected public return strictfp super switch synchronized this throw throws
transient try volatile while
</Keywords>
<Keywords List="1" Inherit="False">
boolean byte char class double enum float int long short static
</Keywords>
</Lexer>
</Language>
</ScintillaNET>
そして、展開するたびに (そして .xml を C:\ フォルダーに配置する (または実行可能ファイルの横に展開する) と、スタイリングは適用されません (オートコンプリートは空です)。自分自身をダウンロードして再コンパイルする以外に、何が何であるかわかりません)。違う。