問題タブ [jline3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
712 参照

jline - jline3 を使用してすべてのコマンドを表示する方法

期待どおりに動作するTreeCompleter(Scala コード) があります。

ただし、ユーザーが最初にキーを押したのがタブの場合は、最上位のノード値をすべて表示して、使用可能なコマンドを表示する必要があります。これはどのように行うことができますか?

上記のコードを含む github プロジェクトはこちら: https://github.com/mslinn/jline-example/blob/master/src/main/scala/CliLoop.scala

答えがJavaであろうとScalaであろうと、私は気にしません、ありがとう!

0 投票する
1 に答える
405 参照

java - Groovy: JLine は入力 Gradle を待機しません

OS: Windows 10、主に Cygwin を使用。

DummyMain.groovy ファイルを次のようにまとめました。

}

groovy DummyMain独自のディレクトリに移動してこれを実行すると、これは期待どおりに機能し、喜びでいっぱいになります。reader.read()行は次の文字のために一時停止し、それを処理します (つまり、ユーザーが Enter キーを押して行を終了する前に)。

しかし、コメントアウトして@Grabこの行を入れるとbuild.gradle

build.gradleそして、失敗する可能性のある最も単純な方法を使用してこのファイルを実行しようとします。whileループは、ユーザーの入力を待たずに無限にスピンします。つまり、「read |-1|...」を無限に出力します。

この待機の失敗は、Cygwin コンソールまたは Windows CMD コンソールを使用して移動すると発生しますgradle run

他の印刷行から、ここでのリーダーはNonBlockingInputStreamReader3 つのケースすべて (つまり、Cygwin 経由の Gradle、Windoze CMD またはgroovyコマンド ライン コマンド経由の Gradle) でクラスであることがわかります。

ただしgradle installDist、 を実行すると、結果として得られる「配布された」バージョンのアプリが正常に動作することがわかりそれを神に感謝します!しかし、テストと開発の目的で、Gradle で実行しようとする問題の解決策が見つかればうれしいです。この結果、一部のテストが失敗してはならないときに失敗する可能性があります。

tkruse に返信

これがbuild.gradleです。DummyMain.groovy は src\main\groovy\core の下にあります。

(これまでのところ) 唯一の回答者は、JLine の作成者です。Gradle が JLine を使用する可能性は非常に低いと思います。