From 8abca7421729e36d31350a4fd61e9c37043b6dbb Mon Sep 17 00:00:00 2001 From: Taiju HIGASHI Date: Fri, 30 Sep 2022 12:22:40 +0900 Subject: [PATCH] taix: Add emacs-ruby-mode. --- README.md | 485 +++++++++++++++------------- channel/taix/packages/emacs-xyz.scm | 33 ++ taix.org | 33 ++ 3 files changed, 325 insertions(+), 226 deletions(-) diff --git a/README.md b/README.md index 66acad2..1bad7d9 100644 --- a/README.md +++ b/README.md @@ -4,133 +4,133 @@ OS は [GNU Guix](https://guix.gnu.org/) を使用し, 可能な限り宣言的に構成を記述している. -1. [Guix の設定](#org0970b67) - 1. [Guix の設定ファイルの適用](#org9e91739) - 1. [前処理](#org7d1480b) - 2. [システムのセットアップ](#org806f2ca) - 3. [ホームのセットアップ](#orgb540cb4) - 4. [パッケージのセットアップ](#org1c63a45) - 5. [各設定ファイルのリンク](#orgcf2492a) - 2. [チャンネルの設定ファイル](#org885debe) - 1. [NonGuix チャンネルの定義](#orge081c6f) - 2. [Taix チャンネルの定義](#org8fd5a59) - 3. [システムの設定ファイル](#org95e55a0) - 1. [libinput の設定](#org5d00d86) - 4. [ホームの設定](#orgef5df3a) - 5. [パッケージの設定](#org41fbd45) - 1. [デスクトップ](#orgeedf1f6) - 2. [パッケージマネージャ](#orgbc050a8) - 3. [Emacs](#orge22efa5) - 4. [シェル](#org592827c) - 5. [アプリケーション](#orgde3db9c) - 6. [フォント](#org8002f68) - 7. [開発](#orgd4e5adf) - 8. [GNU Build System](#orge592017) - 9. [ユーティリティ](#orgc5b9829) - 10. [関数定義](#org7b12240) - 1. [with-poppler-data](#org14afbf8) -2. [Taix チャンネル](#org32c6002) - 1. [emacs-xyz.scm](#org20d56af) - 2. [pdf.scm](#orgd68ec94) -3. [Emacs の設定](#orgbb27f40) - 1. [Emacs の設定ファイル](#orgf0f5081) - 2. [プリミティブ実装部分のカスタマイズ](#orgb4dd806) - 1. [dispnew.c](#orgcee1005) - 2. [fontset.c](#orga3a9ddf) - 3. [frame.c](#org2f2934f) - 4. [xdisp.c](#org3088a02) - 5. [editfns.c](#orgd46262e) - 3. [パッケージのカスタマイズ](#org79b8fce) - 1. [ace-window.el](#org2332296) - 2. [files.el](#orgff49042) - 3. [browse-url.el](#org42ba6e5) - 4. [company.el](#org3524948) - 5. [minibuffer.el](#org1791612) - 1. [参考](#org515a761) - 6. [custom.el](#org14b3ac9) - 7. [battery.el](#org224ec78) - 8. [time.el](#org2cc0a96) - 9. [electric-pair.el](#orgd0daae1) - 10. [eldoc.el](#org9858e91) - 11. [paredit.el](#org50198f6) - 12. [rcirc.el](#orgc802d3a) - 13. [em-cmpl.el](#orgd2a8a9f) - 14. [icomplete.el](#org252ce1c) - 15. [startup.el](#org54d1b72) - 16. [org\*.el](#orgcb772c0) - 1. [org.el](#org307234f) - 2. [org-agenda.el](#orgbec1303) - 3. [org-capture.el](#orgb0c849f) - 17. [org-present](#orgb768759) - 18. [ob-async.el](#org47e06ba) - 19. [ox-gfm.el](#org433ab18) - 20. [scroll-bar.el](#org9e0a278) - 21. [sendmail.el](#org5646383) - 22. [skk\*.el](#orgd51a460) - 1. [skk-kanagaki.el](#org567d460) - 2. [skk-tut.el](#org86410e0) - 3. [skk-vars.el](#org86add13) - 23. [smtpmail.el](#orgbb848e3) - 24. [which-key.el](#org5e19ff2) - 25. [faces.el](#orgef928bd) - 26. [ibuffer.el](#org8eae609) - 27. [bash-completion.el](#org03110d0) - 28. [server.el](#org1a9e5c0) - 29. [cus-edit.el](#orgd36d61a) - 30. [editorconfig.el](#orgedeefce) - 31. [inf-lisp.el](#org687c449) - 32. [slime.el](#org7f4eb4d) - 33. [yasnippet.el](#orgac4f36d) - 34. [copyright.el](#orgfd49229) - 35. [geiser-guile.el](#org76665f1) - 36. [geiser-repl.el](#orga7ca187) - 37. [simple.el](#orga38118f) - 38. [mastodon.el](#org045791c) - 39. [elfeed.el](#org8fe768e) - 40. [inf-ruby.el](#org2859bed) - 41. [robe.el](#org569a899) - 42. [flycheck.el](#org556fdfd) - 43. [env.el](#orgbb55024) - 44. [kintai.el](#org9410ec3) - 4. [変数定義](#orga797d8c) - 1. [**my-sans-serif-font**](#orgd57ae68) - 2. [**my-serif-font**](#org94b23c0) - 3. [**guix-source-path**](#org6a65165) - 5. [関数定義](#orgce972e0) - 1. [my-add-hooks](#org023641a) - 2. [my-toggle-delete-trailing-whitespace-on-save](#org3d06131) -4. [Ruby の設定](#orge734ba0) - 1. [irb の設定ファイル](#org447a236) -5. [Nyxt の設定](#org5d80832) - 1. [Nyxt の設定ファイル](#org697e05d) - 2. [Nyxt のバッファ設定](#org017bda9) - 3. [Nyxt のコマンド定義](#org52b2461) - 1. [copy-tver-streaming-url](#org475c7c3) - 2. [play-tver-movie-on-mpv](#orgb1b3f71) - 3. [play-tver-movie-on-mpv-x2](#org3ae16a0) - 4. [関数定義](#org7eba90b) - 1. [make-streaming-url](#orgd7f02a0) - 2. [make-mpv-command](#orgc6b84db) -6. [SBCL の設定](#org06d1eb6) - 1. [ASDF の設定](#orgfa93e15) - 2. [QuickLisp の設定](#org8b6ba26) - 3. [CFFI の設定](#orga55f706) -7. [フォントの設定](#org812c46c) - - - +1. [Guix の設定](#org5e64030) + 1. [Guix の設定ファイルの適用](#org2bd1761) + 1. [前処理](#org271e718) + 2. [システムのセットアップ](#orgc71880c) + 3. [ホームのセットアップ](#orgf35cf17) + 4. [パッケージのセットアップ](#org7d1d73d) + 5. [各設定ファイルのリンク](#org5df8a9c) + 2. [チャンネルの設定ファイル](#org89c301a) + 1. [NonGuix チャンネルの定義](#org068eab5) + 2. [Taix チャンネルの定義](#orgb3f0181) + 3. [システムの設定ファイル](#org8e89b54) + 1. [libinput の設定](#org998ae67) + 4. [ホームの設定](#org1dab7a6) + 5. [パッケージの設定](#org314ad04) + 1. [デスクトップ](#org95c8c94) + 2. [パッケージマネージャ](#orgc615c84) + 3. [Emacs](#orge1aa6b1) + 4. [シェル](#org39f11d5) + 5. [アプリケーション](#orgd713eb5) + 6. [フォント](#org6204162) + 7. [開発](#org55e55e8) + 8. [GNU Build System](#orgdeb38c2) + 9. [ユーティリティ](#org3e06a6e) + 10. [関数定義](#org37e3365) + 1. [with-poppler-data](#orge8e5996) +2. [Taix チャンネル](#org55da654) + 1. [emacs-xyz.scm](#orge3f2b5f) + 2. [pdf.scm](#orgd6bf4ca) +3. [Emacs の設定](#org07f1783) + 1. [Emacs の設定ファイル](#orge0c0587) + 2. [プリミティブ実装部分のカスタマイズ](#org1f65ee1) + 1. [dispnew.c](#orgda6a699) + 2. [fontset.c](#org7b9ac38) + 3. [frame.c](#org95c239a) + 4. [xdisp.c](#org6e31552) + 5. [editfns.c](#orgd96fabf) + 3. [パッケージのカスタマイズ](#orgac7b140) + 1. [ace-window.el](#orgd70191f) + 2. [files.el](#org6a93b7f) + 3. [browse-url.el](#orgd6f8e12) + 4. [company.el](#org7276c3d) + 5. [minibuffer.el](#orgfca531f) + 1. [参考](#org5e63029) + 6. [custom.el](#orgc6b9353) + 7. [battery.el](#org02efc83) + 8. [time.el](#orga378b97) + 9. [electric-pair.el](#org4f551d1) + 10. [eldoc.el](#org456ec5e) + 11. [paredit.el](#org2eadff2) + 12. [rcirc.el](#orgbff82d3) + 13. [em-cmpl.el](#org7b25a0a) + 14. [icomplete.el](#orgbeaa0b5) + 15. [startup.el](#orga1e35be) + 16. [org\*.el](#orgd8da3a5) + 1. [org.el](#orga9dc125) + 2. [org-agenda.el](#org4424ada) + 3. [org-capture.el](#org9f179d5) + 17. [org-present](#orgdedd5ff) + 18. [ob-async.el](#org1153006) + 19. [ox-gfm.el](#org23bfaaa) + 20. [scroll-bar.el](#org71df67c) + 21. [sendmail.el](#org0008ca4) + 22. [skk\*.el](#org52b7504) + 1. [skk-kanagaki.el](#org22d8e84) + 2. [skk-tut.el](#org1fbdab7) + 3. [skk-vars.el](#org48f6050) + 23. [smtpmail.el](#org4e4668f) + 24. [which-key.el](#org0b2dfef) + 25. [faces.el](#orge3e68b9) + 26. [ibuffer.el](#orga63ad6d) + 27. [bash-completion.el](#org43d3956) + 28. [server.el](#orgc336ea2) + 29. [cus-edit.el](#org39ae05b) + 30. [editorconfig.el](#org06efad1) + 31. [inf-lisp.el](#org66330a1) + 32. [slime.el](#org19f6dc5) + 33. [yasnippet.el](#org65f440c) + 34. [copyright.el](#orgc1997ba) + 35. [geiser-guile.el](#org74f21d9) + 36. [geiser-repl.el](#org22099fc) + 37. [simple.el](#org33067a7) + 38. [mastodon.el](#org2eb9a81) + 39. [elfeed.el](#org768cf42) + 40. [inf-ruby.el](#org3da3327) + 41. [robe.el](#orge9f7cac) + 42. [flycheck.el](#org949df12) + 43. [env.el](#org75f2e8e) + 44. [kintai.el](#org6568fd5) + 4. [変数定義](#orgac2ea47) + 1. [**my-sans-serif-font**](#org100531e) + 2. [**my-serif-font**](#org4387e9e) + 3. [**guix-source-path**](#orga27ab7a) + 5. [関数定義](#orgcea61fb) + 1. [my-add-hooks](#orgda2d3bc) + 2. [my-toggle-delete-trailing-whitespace-on-save](#orgce2cc63) +4. [Ruby の設定](#org7702f09) + 1. [irb の設定ファイル](#orgca9e76c) +5. [Nyxt の設定](#orge3d99a0) + 1. [Nyxt の設定ファイル](#org279c6ac) + 2. [Nyxt のバッファ設定](#orgc47f02f) + 3. [Nyxt のコマンド定義](#orgaf99448) + 1. [copy-tver-streaming-url](#orgbf26156) + 2. [play-tver-movie-on-mpv](#orga27dfa7) + 3. [play-tver-movie-on-mpv-x2](#org7c46b0a) + 4. [関数定義](#orgd317b2f) + 1. [make-streaming-url](#org1495788) + 2. [make-mpv-command](#org770abb7) +6. [SBCL の設定](#org5c9e222) + 1. [ASDF の設定](#org9ba917b) + 2. [QuickLisp の設定](#orgca69984) + 3. [CFFI の設定](#orgee5105e) +7. [フォントの設定](#org3ba3ebc) + + + ## Guix の設定 - + ### Guix の設定ファイルの適用 以下の手順を実行して, Guix を設定する. - + #### 前処理 @@ -147,7 +147,7 @@ guix pull ``` - + #### システムのセットアップ @@ -156,7 +156,7 @@ sudo guix system reconfigure guix-config/system-config.scm ``` - + #### ホームのセットアップ @@ -165,7 +165,7 @@ sudo guix system reconfigure guix-config/system-config.scm ``` - + #### パッケージのセットアップ @@ -174,7 +174,7 @@ guix package --manifest=guix-config/package-config.scm ``` - + #### 各設定ファイルのリンク @@ -186,7 +186,7 @@ stow -vt $HOME emacs.d guix nyxt sbcl fontconfig irb ``` - + ### チャンネルの設定ファイル @@ -203,7 +203,7 @@ stow -vt $HOME emacs.d guix nyxt sbcl fontconfig irb 出力されたファイル: [dotfiles/guix/.config/guix/channels.scm](dotfiles/guix/.config/guix/channels.scm) - + #### NonGuix チャンネルの定義 @@ -221,7 +221,7 @@ stow -vt $HOME emacs.d guix nyxt sbcl fontconfig irb ``` - + #### Taix チャンネルの定義 @@ -234,7 +234,7 @@ stow -vt $HOME emacs.d guix nyxt sbcl fontconfig irb ``` - + ### システムの設定ファイル @@ -342,7 +342,7 @@ stow -vt $HOME emacs.d guix nyxt sbcl fontconfig irb 出力されたファイル: [system-config.scm](system-config.scm) - + #### libinput の設定 @@ -358,14 +358,14 @@ EndSection" ``` - + ### ホームの設定 TBD - + ### パッケージの設定 @@ -389,7 +389,7 @@ TBD 出力されたファイル: [package-config.scm](package-config.scm) - + #### デスクトップ @@ -409,7 +409,7 @@ TBD ``` - + #### パッケージマネージャ @@ -422,7 +422,7 @@ Guix のパッケージになっていないソフトウェアのインストー ``` - + #### Emacs @@ -473,7 +473,7 @@ Emacs 関連のパッケージとして下記をインストールする. ``` - + #### シェル @@ -491,7 +491,7 @@ Emacs 関連のパッケージとして下記をインストールする. ``` - + #### アプリケーション @@ -511,7 +511,7 @@ Emacs 関連のパッケージとして下記をインストールする. ``` - + #### フォント @@ -523,7 +523,7 @@ Emacs 関連のパッケージとして下記をインストールする. ``` - + #### 開発 @@ -542,7 +542,7 @@ Emacs 関連のパッケージとして下記をインストールする. ``` - + #### GNU Build System @@ -557,7 +557,7 @@ GNU Build System のパッケージとして下記をインストールする. ``` - + #### ユーティリティ @@ -581,12 +581,12 @@ GNU Build System のパッケージとして下記をインストールする. ``` - + #### 関数定義 - + ##### with-poppler-data @@ -600,14 +600,14 @@ poppler を依存関係に持つパッケージに poppler-data を追加する このラッパ関数でパッケージを包むと, PDF ファイル中の日本語を描画したり, 日本語のテキストの抽出できるようになる. - + ## Taix チャンネル Guix の公式チャンネルなどに未登録で, 独自にパッケージ定義しているものは, 独自チャンネルを作成して管理する. - + ### emacs-xyz.scm @@ -616,6 +616,7 @@ Guix の公式チャンネルなどに未登録で, 独自にパッケージ定 (define-module (taix packages emacs-xyz) #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix gexp) #:use-module (guix packages) #:use-module (guix git-download) #:use-module (guix build-system emacs)) @@ -660,10 +661,42 @@ Guix の公式チャンネルなどに未登録で, 独自にパッケージ定 (synopsis "Interface to esa.io (\( ⁰⊖⁰)/)") (description "Emacs paste, view and edit modes, this one for esa.io (\( ⁰⊖⁰)/). Like email client.") (license license:gpl2+)))) + +(define-public emacs-ruby-mode + (let ((commit "e3748c323320c0bde6ad8f70f0c2ab8f686255a5") + (revision "0")) + (package + (name "emacs-ruby-mode") + (version (git-version "1.2" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.savannah.gnu.org/git/emacs.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1fsg9rjl56x8qmc1r8iv7a29r3jjcbjflmzq6529ja1barglzri8")))) + (build-system emacs-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (replace 'unpack + (lambda* (#:key source #:allow-other-keys) + (mkdir "source") + (chdir "source") + (copy-file (string-append source "/lisp/progmodes/ruby-mode.el") + "ruby-mode.el")))))) + (home-page "https://www.emacswiki.org/cgi-bin/wiki/RubyMode") + (synopsis "Major mode for editing Ruby files") + (description + "Provides font-locking, indentation support, and navigation for Ruby code.") + (license license:gpl3+)))) ``` - + ### pdf.scm @@ -686,14 +719,14 @@ This package includes Poppler encoding files for rendering of CJK and Cyrillic t ``` - + ## Emacs の設定 Org Mode を使用して Literature Programming 方式で Emacs を設定する. - + ### Emacs の設定ファイル @@ -717,14 +750,14 @@ Emacs の設定ファイルは, 下記の構成で記述されている. 出力されたファイル: [dotfiles/emacs.d/.emacs.d/init.el](dotfiles/emacs.d/.emacs.d/init.el) - + ### プリミティブ実装部分のカスタマイズ プリミティブ実装部分のカスタマイズ内容を定義する. - + #### dispnew.c @@ -737,7 +770,7 @@ Emacs の設定ファイルは, 下記の構成で記述されている. ``` - + #### fontset.c @@ -757,7 +790,7 @@ JIS X 0208 の文字セットでデフォルトの sans-serif フォントを使 ``` - + #### frame.c @@ -776,7 +809,7 @@ JIS X 0208 の文字セットでデフォルトの sans-serif フォントを使 ``` - + #### xdisp.c @@ -789,7 +822,7 @@ JIS X 0208 の文字セットでデフォルトの sans-serif フォントを使 ``` - + #### editfns.c @@ -802,14 +835,14 @@ JIS X 0208 の文字セットでデフォルトの sans-serif フォントを使 ``` - + ### パッケージのカスタマイズ 各種パッケージのカスタマイズ内容を定義する. - + #### ace-window.el @@ -828,7 +861,7 @@ ace-window にグローバルなキーをバインドする. ``` - + #### files.el @@ -865,7 +898,7 @@ read-only でファイルを開いた場合は view-mode を有効にする. ``` - + #### browse-url.el @@ -878,7 +911,7 @@ Emacs で使用するデフォルトのブラウザを EWW に設定する. ``` - + #### company.el @@ -897,7 +930,7 @@ company による補完を 1 文字目で開始する. ``` - + #### minibuffer.el @@ -910,7 +943,7 @@ company による補完を 1 文字目で開始する. ``` - + ##### 参考 @@ -922,7 +955,7 @@ company による補完を 1 文字目で開始する. - 例: `M-x foo` -> `fbarbazoo` - + #### custom.el @@ -935,7 +968,7 @@ company による補完を 1 文字目で開始する. ``` - + #### battery.el @@ -948,7 +981,7 @@ company による補完を 1 文字目で開始する. ``` - + #### time.el @@ -967,7 +1000,7 @@ company による補完を 1 文字目で開始する. ``` - + #### electric-pair.el @@ -980,7 +1013,7 @@ company による補完を 1 文字目で開始する. ``` - + #### eldoc.el @@ -995,7 +1028,7 @@ company による補完を 1 文字目で開始する. ``` - + #### paredit.el @@ -1015,7 +1048,7 @@ Lisp 系の各種モードで paredit-mode を有効にする. ``` - + #### rcirc.el @@ -1033,7 +1066,7 @@ Lisp 系の各種モードで paredit-mode を有効にする. ``` - + #### em-cmpl.el @@ -1046,7 +1079,7 @@ EShell のコマンド補完候補に Emacs Lisp 関数も表示するように ``` - + #### icomplete.el @@ -1065,7 +1098,7 @@ EShell のコマンド補完候補に Emacs Lisp 関数も表示するように ``` - + #### startup.el @@ -1084,12 +1117,12 @@ Emacs の初期表示画面を抑制する. ``` - + #### org\*.el - + ##### org.el @@ -1124,7 +1157,7 @@ org-babel で使用する言語を指定する. ``` - + ##### org-agenda.el @@ -1137,7 +1170,7 @@ org-babel で使用する言語を指定する. ``` - + ##### org-capture.el @@ -1160,7 +1193,7 @@ org-babel で使用する言語を指定する. ``` - + #### org-present @@ -1190,7 +1223,7 @@ org-present-mode に切り替えた際に, プレゼン用に設定を変更し, ``` - + #### ob-async.el @@ -1203,7 +1236,7 @@ Org Babel を非同期に実行できるようにする. ``` - + #### ox-gfm.el @@ -1217,7 +1250,7 @@ Github Flavored Markdown でエクスポートできるようにデフォルト ``` - + #### scroll-bar.el @@ -1226,7 +1259,7 @@ Github Flavored Markdown でエクスポートできるようにデフォルト ``` - + #### sendmail.el @@ -1235,12 +1268,12 @@ Github Flavored Markdown でエクスポートできるようにデフォルト ``` - + #### skk\*.el - + ##### skk-kanagaki.el @@ -1249,7 +1282,7 @@ Github Flavored Markdown でエクスポートできるようにデフォルト ``` - + ##### skk-tut.el @@ -1259,7 +1292,7 @@ Github Flavored Markdown でエクスポートできるようにデフォルト ``` - + ##### skk-vars.el @@ -1269,7 +1302,7 @@ Github Flavored Markdown でエクスポートできるようにデフォルト ``` - + #### smtpmail.el @@ -1279,7 +1312,7 @@ Github Flavored Markdown でエクスポートできるようにデフォルト ``` - + #### which-key.el @@ -1288,7 +1321,7 @@ Github Flavored Markdown でエクスポートできるようにデフォルト ``` - + #### faces.el @@ -1310,7 +1343,7 @@ Github Flavored Markdown でエクスポートできるようにデフォルト ``` - + #### ibuffer.el @@ -1319,7 +1352,7 @@ Github Flavored Markdown でエクスポートできるようにデフォルト ``` - + #### bash-completion.el @@ -1329,7 +1362,7 @@ Github Flavored Markdown でエクスポートできるようにデフォルト ``` - + #### server.el @@ -1340,7 +1373,7 @@ Github Flavored Markdown でエクスポートできるようにデフォルト ``` - + #### cus-edit.el @@ -1355,7 +1388,7 @@ Github Flavored Markdown でエクスポートできるようにデフォルト ``` - + #### editorconfig.el @@ -1368,7 +1401,7 @@ EditorConfig を有効にする. ``` - + #### inf-lisp.el @@ -1383,7 +1416,7 @@ Inferior Lisp mode で SBCL を使用する. SLIME などでこの値が参照される. - + #### slime.el @@ -1396,7 +1429,7 @@ SLIME で使用する Contrib Package をロードする. ``` - + #### yasnippet.el @@ -1418,7 +1451,7 @@ Yasnippet をグローバルに有効化する. ``` - + #### copyright.el @@ -1446,7 +1479,7 @@ Guix のコントリビュート時に著作権表示を簡単に更新できる 参考: [The Perfect Setup (GNU Guix Reference Manual)](https://guix.gnu.org/manual/en/html_node/The-Perfect-Setup.html) - + #### geiser-guile.el @@ -1462,14 +1495,14 @@ Guix のソースコードを Geiser のロードパスに追加する. 参考: [The Perfect Setup (GNU Guix Reference Manual)](https://guix.gnu.org/manual/en/html_node/The-Perfect-Setup.html) - + #### geiser-repl.el > Geiser's REPL - + #### simple.el @@ -1482,7 +1515,7 @@ Guix のソースコードを Geiser のロードパスに追加する. ``` - + #### mastodon.el @@ -1501,7 +1534,7 @@ Guix のソースコードを Geiser のロードパスに追加する. ``` - + #### elfeed.el @@ -1514,7 +1547,7 @@ Guix のソースコードを Geiser のロードパスに追加する. ``` - + #### inf-ruby.el @@ -1533,7 +1566,7 @@ ruby-mode で inf-ruby-minor-mode を使う. ``` - + #### robe.el @@ -1553,7 +1586,7 @@ company-robe を使用する. ``` - + #### flycheck.el @@ -1566,7 +1599,7 @@ ruby-mode で flycheck-mode を使用する. ``` - + #### env.el @@ -1579,7 +1612,7 @@ Emacs の中では基本的に pager を使わないため, `PAGER` 環境変数 ``` - + #### kintai.el @@ -1593,14 +1626,14 @@ Emacs の中では基本的に pager を使わないため, `PAGER` 環境変数 ``` - + ### 変数定義 Emacs のコンフィグで使用する変数を定義する. - + #### **my-sans-serif-font** @@ -1613,7 +1646,7 @@ Emacs のコンフィグで使用する変数を定義する. `serif` には `Noto Sans Serif CJK JP` を使用する. - + #### **my-serif-font** @@ -1622,7 +1655,7 @@ Emacs のコンフィグで使用する変数を定義する. ``` - + #### **guix-source-path** @@ -1633,14 +1666,14 @@ Guix のソースコードのパスを定義する. ``` - + ### 関数定義 Emacs のコンフィグで使用する関数を定義する. - + #### my-add-hooks @@ -1652,7 +1685,7 @@ Emacs のコンフィグで使用する関数を定義する. ``` - + #### my-toggle-delete-trailing-whitespace-on-save @@ -1670,12 +1703,12 @@ Emacs のコンフィグで使用する関数を定義する. ``` - + ## Ruby の設定 - + ### irb の設定ファイル @@ -1687,14 +1720,14 @@ IRB.conf[:USE_READLINE] = false if ENV['INSIDE_EMACS'] ``` - + ## Nyxt の設定 メインブラウザとして使用している Nyxt を設定する. - + ### Nyxt の設定ファイル @@ -1713,7 +1746,7 @@ Nyxt の設定ファイルは, 下記の構成で記述されている. 出力されたファイル: [dotfiles/nyxt/.config/nyxt/init.lisp](dotfiles/nyxt/.config/nyxt/init.lisp) - + ### Nyxt のバッファ設定 @@ -1725,14 +1758,14 @@ Nyxt は Emacs のキーバインドで操作する. ``` - + ### Nyxt のコマンド定義 Nyxt で使用する独自コマンドを定義する. - + #### copy-tver-streaming-url @@ -1749,7 +1782,7 @@ Nyxt で使用する独自コマンドを定義する. ``` - + #### play-tver-movie-on-mpv @@ -1767,7 +1800,7 @@ Nyxt で使用する独自コマンドを定義する. ``` - + #### play-tver-movie-on-mpv-x2 @@ -1785,14 +1818,14 @@ Nyxt で使用する独自コマンドを定義する. ``` - + ### 関数定義 定義したコマンド等で使用する関数を定義する. - + ##### make-streaming-url @@ -1810,7 +1843,7 @@ Nyxt で使用する独自コマンドを定義する. ``` - + ##### make-mpv-command @@ -1823,7 +1856,7 @@ URL から mpv コマンドを生成するユーティリティ関数. ``` - + ## SBCL の設定 @@ -1840,7 +1873,7 @@ SBCL を設定する. 出力されたファイル: [dotfiles/.sbclrc](dotfiles/.sbclrc) - + ### ASDF の設定 @@ -1851,7 +1884,7 @@ SBCL を設定する. ``` - + ### QuickLisp の設定 @@ -1866,7 +1899,7 @@ SBCL を設定する. ``` - + ### CFFI の設定 @@ -1884,7 +1917,7 @@ CFFI が Guix 上で C ライブラリを参照できるようにする. 参考: [Nyxt Developer Readme](https://github.com/atlas-engineer/nyxt/tree/master/documents#gnulinux-freebsd-gtk-dependencies) - + ## フォントの設定 diff --git a/channel/taix/packages/emacs-xyz.scm b/channel/taix/packages/emacs-xyz.scm index 677608b..369a52e 100644 --- a/channel/taix/packages/emacs-xyz.scm +++ b/channel/taix/packages/emacs-xyz.scm @@ -4,6 +4,7 @@ (define-module (taix packages emacs-xyz) #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix gexp) #:use-module (guix packages) #:use-module (guix git-download) #:use-module (guix build-system emacs)) @@ -48,3 +49,35 @@ (synopsis "Interface to esa.io (\( ⁰⊖⁰)/)") (description "Emacs paste, view and edit modes, this one for esa.io (\( ⁰⊖⁰)/). Like email client.") (license license:gpl2+)))) + +(define-public emacs-ruby-mode + (let ((commit "e3748c323320c0bde6ad8f70f0c2ab8f686255a5") + (revision "0")) + (package + (name "emacs-ruby-mode") + (version (git-version "1.2" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.savannah.gnu.org/git/emacs.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1fsg9rjl56x8qmc1r8iv7a29r3jjcbjflmzq6529ja1barglzri8")))) + (build-system emacs-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (replace 'unpack + (lambda* (#:key source #:allow-other-keys) + (mkdir "source") + (chdir "source") + (copy-file (string-append source "/lisp/progmodes/ruby-mode.el") + "ruby-mode.el")))))) + (home-page "https://www.emacswiki.org/cgi-bin/wiki/RubyMode") + (synopsis "Major mode for editing Ruby files") + (description + "Provides font-locking, indentation support, and navigation for Ruby code.") + (license license:gpl3+)))) diff --git a/taix.org b/taix.org index 45aed6a..11440ef 100644 --- a/taix.org +++ b/taix.org @@ -436,6 +436,7 @@ (define-module (taix packages emacs-xyz) #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix gexp) #:use-module (guix packages) #:use-module (guix git-download) #:use-module (guix build-system emacs)) @@ -480,6 +481,38 @@ (synopsis "Interface to esa.io (\( ⁰⊖⁰)/)") (description "Emacs paste, view and edit modes, this one for esa.io (\( ⁰⊖⁰)/). Like email client.") (license license:gpl2+)))) + + (define-public emacs-ruby-mode + (let ((commit "e3748c323320c0bde6ad8f70f0c2ab8f686255a5") + (revision "0")) + (package + (name "emacs-ruby-mode") + (version (git-version "1.2" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.savannah.gnu.org/git/emacs.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1fsg9rjl56x8qmc1r8iv7a29r3jjcbjflmzq6529ja1barglzri8")))) + (build-system emacs-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (replace 'unpack + (lambda* (#:key source #:allow-other-keys) + (mkdir "source") + (chdir "source") + (copy-file (string-append source "/lisp/progmodes/ruby-mode.el") + "ruby-mode.el")))))) + (home-page "https://www.emacswiki.org/cgi-bin/wiki/RubyMode") + (synopsis "Major mode for editing Ruby files") + (description + "Provides font-locking, indentation support, and navigation for Ruby code.") + (license license:gpl3+)))) #+end_src *** pdf.scm -- 2.45.2