28

既存のアプリケーション (OCaml で作成) を使用して、Emacs の「インターフェイス」を作成したいと考えています (たとえば、Emacs GDB モードなど)。大量の Lisp コードを書かずにこれを行うことを好みます。MVC の用語で言えば、View は Emacs である必要がありますが、Model と Controller は (主に) OCaml のままである必要があります。

Lisp 以外の言語で Emacs の拡張機能を書く方法を知っている人はいますか? これは、他の言語での Emacs 拡張 API へのバインディングの形をとるか (たとえば、OCaml をファーストクラスの Emacs 拡張言語にする)、またはたとえば、拡張が書き込み可能なパイプを持つ Emacs インタラクション モードのいずれかを取ることができます。 Emacs Lisp 式と結果値の読み取り。

4

6 に答える 6

14

http://www.emacswiki.org/cgi-bin/emacs-en?CategoryExtensionLanguageは、使用できるすべての非Elisp拡張言語のリストです。

動的言語中心のように見えます。

http://common-lisp.net/project/slime/は、拡張言語ではなく、Elisp-Common Lispブリッジであるため、このリストには含まれていません。そのソースコードは、ソケットを介して通信する方法を示しています。

Erlang用の同様のIDEは、 http: //fresh.homeunix.net/~luke/distel/(現在はダウン)およびhttps://github.com/massemanet/distelにあるDistelです。

幸運を!

于 2008-08-25T01:48:56.870 に答える
4

これがあなたの特定の問題でうまくいくかどうかはわかりませんが、シェルコマンドから文字列への関数を使用して同様のことを行っています:

(shell-command-to-string
    "bash -c \"script-to-exec args\"")

たとえば、Python で記述されたファイルをマングルする既存のスクリプトがあるため、上記のスクリプトを emacs lisp 経由で呼び出すことができます。

Google で簡単に検索すると、Python で拡張機能を作成するシステムについて説明しているこのページが見つかりました。そのため、やりたいことは実行可能のようです...誰かが OCaml 用の同様のフレームワークを作成しているかどうかを確認する必要があります。

于 2008-08-18T21:34:59.747 に答える
3

Python で Emacs を拡張できるPyMacsを試してください。

編集: リンクを更新しました。

于 2008-09-16T21:34:51.577 に答える
3

一部の拡張 Api は、受信する emacs 25.1 および動的モジュールで可能になりました

ライブラリは、 にemacs-ffi基づく外部関数インターフェイスを提供しますlibffi

READMEで完全なドキュメントを確認してください。

于 2016-01-22T17:16:24.553 に答える
2

静的に型付けされた言語側から見ると、Haskell で非常にパフォーマンスが高く、よく機能しているように見えるものがあります。

https://github.com/knupfer/haskell-emacs

Ensime プロジェクト (Emacs と Vim の両方にブリッジがあります) から Scala を再利用するのに役立つものもあるでしょう:

https://github.com/ensime/ensime-server

さらに、簡単なグーグル検索で、古典的な FP 言語である OCaml で Emacs を拡張する別の潜在的な候補が明らかになりました。プロジェクトには多くの.mlソース ファイルがあるため、どこかに Emacs-OCaml ブリッジが必要です。

https://github.com/the-lambda-church/merlin

于 2015-02-21T07:52:38.667 に答える
0

「拡張 API」はありません。Emacs Lisp はそこまで来ていますが、動いていません。

他のプロセスから Emacs コマンドを実行できます。Gnuserv を見てください。

Emacs が別のプロセスのモデル/コントローラーのビューであるアプリケーションはたくさんあります。Emacs GDB インターフェースが良い例です。より単純な例がよくわかりません.おそらくsql-postgresqlですか?

于 2008-09-16T06:47:33.550 に答える