React-ace: 質問:オートコンプリートに関するドキュメント

作成日 2017年12月12日  ·  13コメント  ·  ソース: securingsincity/react-ace

オートコンプリートの詳細、ベーシックとライブの違い、新しいオートコンプリートルールの追加方法などがわかりません。これが中括弧の一部なのか、外部で行われたものなのかわかりません。 誰かが私を正しい方向に向けることができますか?

Documentation good first issue help wanted

最も参考になるコメント

基本的なオートコンプリート、ライブオートコンプリート、スニペットの提案必要でしたが、次のようにして目標を達成することができました。

使用したパッケージ

"react-ace": "^5.8.0",
"react": "^16.2.0",

輸入

import AceEditor from 'react-ace';
import 'brace/mode/html';
import 'brace/theme/xcode';
import 'brace/snippets/html';
import 'brace/ext/language_tools';

レンダリング

<AceEditor
  mode="html"
  theme="xcode"
  name="content"
  onChange={this.onContentChange}
  showPrintMargin={true}
  showGutter={true}
  highlightActiveLine={true}
  value={form.content}
  editorProps={{$blockScrolling: Infinity}}
  setOptions={{
    enableBasicAutocompletion: true,
    enableLiveAutocompletion: true,
    enableSnippets: true,
    showLineNumbers: true,
    tabSize: 2
  }}
/>

出力

screen shot 2017-12-27 at 2 42 47 pm

他の言語についても、この方法に従うことで、同様の出力を達成できると思います。

それが役に立てば幸い。

全てのコメント13件

@ Eric24これらはhttps://github.com/ajaxorg/ace/wiki/How-to-enable-Autocomplete-in-the-Ace-editor

この例https://github.com/ajaxorg/ace/wiki/How-to-enable-Autocomplete-in-the-Ace-editorのようにlanguage_toolsを含めることで、それらを有効にできます。 カスタムコンプリーターを追加する限り、エディターにアクセスして追加する方法がおそらくあります。 エディターがオートコンプリートをオンにすると、 completers使用可能になり、この例のrhymecompleterのようなものをプッシュできますhttp://plnkr.co/edit/6MVntVmXYUbjR0DI82Cr?p=preview from ace.js

基本的なオートコンプリート、ライブオートコンプリート、スニペットの提案必要でしたが、次のようにして目標を達成することができました。

使用したパッケージ

"react-ace": "^5.8.0",
"react": "^16.2.0",

輸入

import AceEditor from 'react-ace';
import 'brace/mode/html';
import 'brace/theme/xcode';
import 'brace/snippets/html';
import 'brace/ext/language_tools';

レンダリング

<AceEditor
  mode="html"
  theme="xcode"
  name="content"
  onChange={this.onContentChange}
  showPrintMargin={true}
  showGutter={true}
  highlightActiveLine={true}
  value={form.content}
  editorProps={{$blockScrolling: Infinity}}
  setOptions={{
    enableBasicAutocompletion: true,
    enableLiveAutocompletion: true,
    enableSnippets: true,
    showLineNumbers: true,
    tabSize: 2
  }}
/>

出力

screen shot 2017-12-27 at 2 42 47 pm

他の言語についても、この方法に従うことで、同様の出力を達成できると思います。

それが役に立てば幸い。

@ anindya-dhrubaカスタムモードの書き方は? あなたの例は、中括弧内にあるモードの追加について明確に示していますが、独自のモードを追加したい場合はどうなりますか?

@oakland 、私はこのリポジトリの作成者ではありませんが、作成

ありがとう。

ライブで基本的なものについてのドキュメントがまだ見つかりませんか?

@Obiwarn私が理解している限り、「基本」はctrl + spaceを押して手動でトリガーする必要がある完了モードであり、「ライブ」は入力時に提案を表示するモードです。

こんにちは! オートコンプリートをオンにして独自のカスタム変数を追加しようとしていますが、問題が発生しています。 私はこれらの2つのソースからのコードを組み合わせようとしています:
http://plnkr.co/edit/PNvznZCXwr8nJAHwhxA2?p=preview

https://github.com/securingsincity/react-ace/blob/master/docs/FAQ.md#how -do-i-add-language-snippets

これが基本的に私がこれまでに得たものです:

輸入:

import AceEditor from 'react-ace';
import 'brace/mode/java';
import 'brace/theme/textmate';
import CustomMode from "./customMode.js"; //This is because I'm making my own mode, I think you can ignore it
import "brace/ext/language_tools";

レンダリング:

//The text editor:
    renderWidget(args) {
        Object.assign(args, {
            ref: "aceEditor",
            mode: "java",
            fontSize: 16,
            theme: "textmate",
            showPrintMargin: false,
            showGutter: true,
            readOnly: false,
            wrapEnabled: true,
            editorProps: {$blockScrolling: true},
            setOptions: {
                enableBasicAutocompletion: true,
                enableLiveAutocompletion: true,
                enableSnippets: true,
                showLineNumbers: true,
                tabSize: 2,
                }
        });

        return <AceEditor {...args}/>;
    }

その他:

componentDidMount() {
   const customMode = new CustomMode(); //Has to do with custom mode
   this.refs.aceEditor.editor.getSession().setMode(customMode); //Has to do with custom mode
   language_tools.addCompleter(staticWordCompleter);
}

タイプエラーが発生します: language_tools is not defined

どんな助けでもいただければ幸いです!

こんにちは! オートコンプリートをオンにして独自のカスタム変数を追加しようとしていますが、問題が発生しています。 私はこれらの2つのソースからのコードを組み合わせようとしています:
http://plnkr.co/edit/PNvznZCXwr8nJAHwhxA2?p=preview

https://github.com/securingsincity/react-ace/blob/master/docs/FAQ.md#how -do-i-add-language-snippets

これが基本的に私がこれまでに得たものです:

輸入:

import AceEditor from 'react-ace';
import 'brace/mode/java';
import 'brace/theme/textmate';
import CustomMode from "./customMode.js"; //This is because I'm making my own mode, I think you can ignore it
import "brace/ext/language_tools";

レンダリング:

//The text editor:
    renderWidget(args) {
        Object.assign(args, {
            ref: "aceEditor",
            mode: "java",
            fontSize: 16,
            theme: "textmate",
            showPrintMargin: false,
            showGutter: true,
            readOnly: false,
            wrapEnabled: true,
            editorProps: {$blockScrolling: true},
            setOptions: {
                enableBasicAutocompletion: true,
                enableLiveAutocompletion: true,
                enableSnippets: true,
                showLineNumbers: true,
                tabSize: 2,
                }
        });

        return <AceEditor {...args}/>;
    }

その他:

componentDidMount() {
   const customMode = new CustomMode(); //Has to do with custom mode
   this.refs.aceEditor.editor.getSession().setMode(customMode); //Has to do with custom mode
   language_tools.addCompleter(staticWordCompleter);
}

タイプエラーが発生します: language_tools is not defined

どんな助けでもいただければ幸いです!
古い鉄をあきらめて、それは習慣をサポートしていません!

@ anindya-dhrubaは魅力のように機能しました<3

言語ツールを忘れて、ありがとう

react-ace Readmeからのメモ:

バージョン8に関する注意! :Braceのサポートを停止し、Aceビルドを使用するようになりました。 移行方法に関するドキュメントをお読みください。 例は更新されています。

ここにオートコンプリートの例があります

次のメソッドは、カスタムコード補完を追加できます。

import { addCompleter } from 'ace-builds/src-noconflict/ext-language_tools';
componentDidMount() {
    addCompleter({
        getCompletions: function(editor, session, pos, prefix, callback) {
            callback(null, [
                {
                    name: 'test',
                    value: 'test',
                    caption: 'test',
                    meta: 'local',
                    score: 1000,
                },
            ]);
        },
    });
}

次のようなこともできます。

const customCompleter = (editor, session, pos, prefix, cb) => {
    cb(null, [...])
}

<AceEditor
    ...
    setOptions={{
        ...,
        enableBasicAutocompletion: [customCompleter],
        enableLiveAutocompletion: true
    }}
/>
このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

viridia picture viridia  ·  4コメント

nenadlukic picture nenadlukic  ·  6コメント

tsmirnov picture tsmirnov  ·  4コメント

henviso picture henviso  ·  7コメント

avalkowsky picture avalkowsky  ·  6コメント