1

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:\ フォルダーに配置する (または実行可能ファイルの横に展開する) と、スタイリングは適用されません (オートコンプリートは空です)。自分自身をダウンロードして再コンパイルする以外に、何が何であるかわかりません)。違う。

4

1 に答える 1

0

今日も同じ問題が発生し、そのような質問をしたことで禁止されました。ScintillaNET 開発者の恥。自分でカスタム言語を定義しようとしましたが、結局できませんでした。それで、私がしたことは、事前に構築された言語を NAME として使用し、ScintillaNET が見つけられない独自の言語を定義する代わりに、その LANGUAGE を拡張したことです。わかってくれるといいのですが、私はそれを理解するのに 4 日かかりました。チャールズに感謝します:) - 私の頭が吹き飛ばされたので、ヒントのためのdreamincode.net。

于 2014-08-16T02:05:01.670 に答える