Unicodeコードポイントを取得し、そのUnicode文字をカーソルに挿入するKate用のプラグインまたはスクリプトをどのように記述できますか?

Unicodeコードポイントを取得し、そのUnicode文字をカーソルに挿入するKate用のプラグインまたはスクリプトをどのように記述できますか?

たとえば、Geditでコードポイントに基づいてUnicode文字を入力するのは簡単です(++をCtrl押しShiftu(16進数)、コードポイントを入力してEnterキーを押します)。

人々は端末を使用することもできます。たとえば、実行するとecho -e '\u2603'雪だるま☃が生成されます。ここで、2603は再び16進コードポイントです。

しかし、現在KDEのKate(バージョン19.12.3ベース)には同様の機能がないようです。

実際にGeditまたはターミナルを使用してシンボルを生成し、それをコピーしてKateに貼り付けることができます。しかし、恥ずかしいです。

同時に、Kateはプラグインとスクリプトもサポートしています。残念ながら、作成方法のチュートリアルが見つかりません。これ、2004年以来、とても簡潔でチュートリアルの資格がほとんどなく、とにかく古いものかもしれません)。

Unicode文字を入力する方法はかなり標準的なように見えるので、プラグインがGeditと同じ機能を達成できると思います。

しかし、必ずしもそうする必要はありません。おそらくKateプラグイン(またはKateスクリプト?)は次のように動作します。キーボードショートカットを押すと、標準のKDEポップアップダイアログボックスが表示され、Unicode 16進コードを入力するように求められます。コードを入力して「Enter」を押すと、対応するUnicode文字がKateの現在のカーソル位置に挿入されます。

間違いなく入ることができる他の意味のある方法があります。重要なのは、現在のカーソル位置にUnicode文字を入力する必要があることです。

Kateプラグイン(またはスクリプト)を使用してこのようなことを実行できますか?適切なプラグイン(またはスクリプト)を書くのはどれほど難しいですか?そのようなプラグインを作成してインストールする方法は?

答え1

試してみましたか?キャラクター選択?ここで目的のシンボルを検索してクリップボードにコピーしてKateに貼り付けることができます。

ここに画像の説明を入力してください。

答え2

バージョン21.12以降、Kateはこの機能を提供するLatexコンプリートプラグインを提供しています。

https://github.com/KDE/kate/tree/master/addons/latexunicodecompletion

プラグインは設定で有効にできます。プラグインを有効にしたら、新しいファイルを開き、「\u」の後に希望の記号を入力します。

ビデオ


これを行うには、スクリプトを使用します。

var katescript = {
    "author": "name <email>",
    "license": "LGPLv2+",
    "revision": 1,
    "kate-version": "5.1",
    "functions": ["do_my_stuff"],
    "actions": [
        {   "function": "do_my_stuff",
            "name": "User visible name of the action",
            "category": "Editing",
            "shortcut": "Ctrl+Shift+A",
            "interactive": "false"
        }
    ]
};

require("range.js");
require("cursor.js");

function help(cmd) {
    if (cmd == "do_my_stuff") return i18n("Does xyz");
    return "";
}

function isCursorOnUnicode() {
    // code to check 
    return Range();
}

function do_my_stuff() {
    debug(document.mimeType());

    var range = isCursorOnString();
    if (!range.isValid()) {
        return;
    }

    var text = document.text(range);
    if (text == "")
        return;

    document.editBegin();

    var insertText = "...";
    document.insertText(range.start, insertText);
    var endCur = range.end;
    endCur.setPosition(endCur.line, endCur.column + insertText.length);
    document.insertText(endCur, ")");

    document.editEnd();
}

上記のスクリプトは実際には何もしませんが、目的のタスクを実行するスクリプトを作成する方法を示します。スクリプトは ECMAScript バージョン 6 をサポートしているため、Set などの型を使用できます。

スクリプトの最も重要な部分は上部のタイトルですvar katescript = {...。 Kateはこのヘッダーを使用して、スクリプトが正しく機能するようにします。このヘッダーは、スクリプトの実行後に実行される関数を指定します。私たちの場合、この機能はです"function": "do_my_stuff"。他の機能もありますが、UIには表示されません。

スクリプトを呼び出すには?

メニューバー - >ツール - >スクリプト - >編集 - > YOUR_SCRIPT_NAME

これは退屈である可能性があるため、代わりにスクリプトが呼び出される関数F7の名前をクリックして入力することです。do_my_stuff

ショートカットを使用してスクリプトを呼び出すこともできることに気づいたでしょう。この場合、ショートカットはCtrl+Shift+A他のショートカットと競合しない限り、他のショートカットに変更できます。

Kateが公開したすべての利用可能な機能のドキュメントはここにあります。https://docs.kde.org/stable5/en/kate/katepart/dev-scripting.html

これがあなたの質問に答えることを願っています。

関連情報