From 032ed02a7e8b336089cd2f0e81a1df2d8ecfeed6 Mon Sep 17 00:00:00 2001 From: Carlo Zancanaro Date: Wed, 25 Mar 2020 07:57:56 +1100 Subject: Lots more emacs packages --- emacs.scm | 376 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 356 insertions(+), 20 deletions(-) diff --git a/emacs.scm b/emacs.scm index da09494..7faad30 100644 --- a/emacs.scm +++ b/emacs.scm @@ -4,6 +4,7 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system emacs) + #:use-module (gnu packages emacs) #:use-module (gnu packages emacs-xyz)) (define-public emacs-srv @@ -326,6 +327,22 @@ Usage: ") (license #f))) +(package + (name "emacs-plantuml-mode") + (version "20191102.2056") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/skuro/plantuml-mode.git") + (commit "5889166b6cfe94a37532ea27fc8de13be2ebfd02"))) + (sha256 + (base32 "0yp41d2dmf3sx7qnl5x0zdjcr9y71b2wwc9m0q31v22xqn938ipc")))) + (build-system emacs-build-system) + (propagated-inputs (quasiquote (("emacs-dash" (unquote emacs-dash))))) + (home-page "unspecified") + (synopsis "Major mode for PlantUML") + (description "No description available.") (license #f)) + (define-public emacs-plantuml-mode (package (name "emacs-plantuml-mode") @@ -417,28 +434,347 @@ Features include : (license #f))) (define-public emacs-kubel - (let ((commit "9ed130c6e5d35b5fa41156f9ec62aa50365c23e0")) - (package - (name "emacs-kubel") - (version "20191014.2010") - (source - (origin + (package + (name "emacs-kubel") + (version "20200316.207") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/abrochard/kubel.git") + (commit + "db3a999c028ffeeeb49936e8b921c364bf8f437e"))) + (sha256 + (base32 + "1ai33jma22agrxww6dcgsh6dbv5h36gixgs0b6n1q4d5v7k6d9q3")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-transient" ,emacs-transient) + ("emacs-dash" ,emacs-dash) + ("emacs-s" ,emacs-s))) + (arguments + '(#:include + '("^[^/]+.el$" + "^[^/]+.el.in$" + "^dir$" + "^[^/]+.info$" + "^[^/]+.texi$" + "^[^/]+.texinfo$" + "^doc/dir$" + "^doc/[^/]+.info$" + "^doc/[^/]+.texi$" + "^doc/[^/]+.texinfo$") + #:exclude + '("^.dir-locals.el$" + "^test.el$" + "^tests.el$" + "^[^/]+-test.el$" + "^[^/]+-tests.el$" + "^kubel-evil.el$"))) + (home-page "https://github.com/abrochard/kubel") + (synopsis + "extension for controlling Kubernetes with limited permissions") + (description + "Emacs extension for controlling Kubernetes with limited permissions.e") + (license #f))) + +(define-public demo-it + (package + (name "emacs-demo-it") + (version "0.0.0-1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/howardabrams/demo-it.git") + (commit "9cfa5c3f92a0dca7eebb1f1a2011643c9b009d26"))) + (sha256 + (base32 + "1fcmrhm6h0j7jjw6kijrcacv628fy80ssxn6h5bilwmw0r4c7wm6")))) + (build-system emacs-build-system) + (home-page "unspecified") + (synopsis "Create demonstrations") + (description + " When making demonstrations of new products, technologies and other + geekery, I love the versatility of using Emacs to demonstrate the + trifecta of sprint reviews, including: + + - Presentations explaining the technologies + - Source code ... correctly highlighted + - Executing the code in Eshell ... or similar demonstration + - Test a new feature + + However, I don't want to fat-finger, mentally burp, or even delay + the gratification while I type, so I predefine each \"step\" as an + Elisp function or keyboard macro, and then have =demo-it= execute + each function when I hit either the SPACE key or the F12 key + (advanced minor mode). + + Using the library is a four step process: + + 1. Load the library in your own Elisp source code file + 2. Create a collection of functions that \"do things\". + 3. Create the ordered list of functions/steps with `demo-it-create' + 4. Start the demonstration with `demo-it-start' + + For instance: + + (require 'demo-it) ;; Load this library of functions + + (defun dit-load-source-code () + \"Load some source code in a side window.\" + (demo-it-presentation-advance) + (demo-it-load-fancy-file \"example.py\" :line 5 12 :side)) + + (defun dit-run-code () + \"Execute our source code in an Eshell buffer.\" + ;; Close other windows and advance the presentation: + (demo-it-presentation-return) + (demo-it-start-shell) + (demo-it-run-in-shell \"python example.py Snoopy\")) + + (demo-it-create :single-window :insert-slow :full-screen + (demo-it-title-screen \"example-title.org\") + (demo-it-presentation \"example.org\") + dit-load-source-code + dit-run-code + (demo-it-run-in-shell \"exit\" nil :instant)) + + (demo-it-start) + + Each \"step\" is a series of Elisp functions that \"do things\". + While this package has a collection of helping functions, the steps + can use any Elisp command to show off a feature. + + I recommend installing these other Emacs packages: + + - https://github.com/takaxp/org-tree-slide + - https://github.com/sabof/org-bullets + - https://github.com/magnars/expand-region.el + - https://github.com/Bruce-Connor/fancy-narrow + + See http://github.com/howardabrams/demo-it for more details and + better examples. You will want to walk through the source code + for all the utility functions. +") + (license #f))) + +(define-public emacs-org-mime + (package + (name "emacs-org-mime") + (version "0.1.6") + (source + (origin + (method git-fetch) + (uri ;; (git-reference + ;; (url "https://github.com/org-mime/org-mime.git") + ;; (commit "0.1.6")) + (git-reference + (url "https://github.com/czan/org-mime.git") + (commit "562cb5a3f0e4af69d9495d0cd829bdd6a7fd77fa"))) + (sha256 + (base32 + "1dwk23265sigv9znaidi7qffz0mnmmc19vs8yv8zy6h7b6818622")))) + (build-system emacs-build-system) + (home-page "http://github.com/org-mime/org-mime") + (synopsis + "org html export for text/html MIME emails") + (description #f) + (license #f))) + +(define-public emacs-csharp-mode + (package + (name "emacs-csharp-mode") + (version "20191126.1928") + (source + (origin + (method url-fetch) + (uri (string-append + "https://melpa.org/packages/csharp-mode-" + version + ".el")) + (sha256 + (base32 + "1fiq9gd9288f1c3i0qw9rzzj8fh0csip817y2phla5gyjgmxk063")))) + (build-system emacs-build-system) + (home-page + "https://github.com/josteink/csharp-mode") + (synopsis "C# mode derived mode") + (description + " This is a major mode for editing C# code. It performs automatic + indentation of C# syntax; font locking; and integration with + imenu.el. + + csharp-mode requires CC Mode 5.30 or later. It works with + cc-mode 5.31.3, which is current at this time. + +Features: + + - font-lock and indent of C# syntax including: + all c# keywords and major syntax + attributes that decorate methods, classes, fields, properties + enum types + #if/#endif #region/#endregion + instance initializers + anonymous functions and methods + verbatim literal strings (those that begin with @) + generics + + - automagic code-doc generation when you type three slashes. + + - compatible with electric-pair-mode for intelligent insertion + of matched braces, quotes, etc. + + - imenu integration - generates an index of namespaces, classes, + interfaces, methods, and properties for easy navigation within + the buffer. + + + +Installation instructions +-------------------------------- + +Put csharp-mode.el somewhere in your load path, optionally byte-compile +it, and add the following to your .emacs file: + + (autoload 'csharp-mode \"csharp-mode\" \"Major mode for editing C# code.\" t) + (setq auto-mode-alist\n (append '((\"\\\\.cs$\" . csharp-mode)) auto-mode-alist)) + + +Optionally, define and register a mode-hook function. To do so, use +something like this in your .emacs file: + + (defun my-csharp-mode-fn () + \"function that runs when csharp-mode is initialized for a buffer.\" + (turn-on-auto-revert-mode) + (setq indent-tabs-mode nil) + ...insert more code here... + ...including any custom key bindings you might want ... + ) + (add-hook 'csharp-mode-hook 'my-csharp-mode-fn t) + + + General + ---------------------------- + + Mostly C# mode will \"just work.\" Use `describe-mode' to see the + default keybindings and the highlights of the mode. + + + imenu integration + ----------------------------- + + This should just work. For those who don't know what imenu is, it + allows navigation to different points within the file from an + \"Index\" menu, in the window's menubar. csharp-mode computes the + menu containing the namespaces, classes, methods, and so on, in the + buffer. This happens at the time the file is loaded; for large + files it takes a bit of time to complete the scan. If you don't + want this capability, set `csharp-want-imenu' to nil. +") + (license #f))) + +(define-public emacs-omnisharp + (package + (name "emacs-omnisharp") + (version "20191015.635") + (source + (origin + (method url-fetch) + (uri (string-append + "https://melpa.org/packages/omnisharp-" + version + ".tar")) + (sha256 + (base32 + "036cz5hjxg8bl0a54hidmjily5sax6y51iyyrabkqx015jrldiif")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-flycheck" ,emacs-flycheck) + ("emacs-dash" ,emacs-dash) + ("emacs-auto-complete" ,emacs-auto-complete) + ("emacs-popup" ,emacs-popup) + ("emacs-csharp-mode" ,emacs-csharp-mode) + ("emacs-s" ,emacs-s) + ("emacs-f" ,emacs-f))) + (home-page + "https://github.com/Omnisharp/omnisharp-emacs") + (synopsis + "Omnicompletion (intellisense) and more for C#") + (description + "omnisharp-emacs is a port of the awesome OmniSharp server to the +Emacs text editor. It provides IDE-like features for editing files +in C# solutions in Emacs, provided by an OmniSharp server instance +that works in the background. + +See the project home page for more information. +") + (license #f))) + +(define-public emacs-scala-mode + (package + (name "emacs-scala-mode") + (version "20190929.1522") + (source + (origin (method git-fetch) (uri (git-reference - (url "https://github.com/abrochard/kubel.git") - (commit commit))) + (url "https://github.com/hvesalai/emacs-scala-mode.git") + (commit + "46bb948345f165ebffe6ff3116e36a3b8a3f219d"))) (sha256 (base32 - "0xqjsng9fdf96h0sa01d0sza5qpkl14r2ccf0mmcg3l7c2xw8ibl")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-evil" ,emacs-evil) - ("emacs-transient" ,emacs-transient))) - (home-page "https://github.com/abrochard/kubel") - (synopsis - "extension for controlling Kubernetes with limited permissions") - (description - "Emacs extension for controlling Kubernetes with limited permissions. -Mostly focuses on pod management for now. + "1072lsin7dxadc0xyhy42wd0cw549axbbd4dy95wfmfcc1xbzjwv")))) + (build-system emacs-build-system) + (home-page + "https://github.com/hvesalai/emacs-scala-mode") + (synopsis "Major mode for editing Scala") + (description "") + (license #f))) + +(define-public emacs-sbt-mode + (package + (name "emacs-sbt-mode") + (version "20200106.753") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hvesalai/emacs-sbt-mode.git") + (commit + "633a315ad453cd963588c9b8fba02d9cf75296b4"))) + (sha256 + (base32 + "0ha2lyw42ir16b2d09y27q0rsdx6azcfv258frp1ja63mx0jiqic")))) + (build-system emacs-build-system) + (home-page + "https://github.com/hvesalai/emacs-sbt-mode") + (synopsis "Interactive support for sbt projects") + (description "") + (license #f))) + +(define-public emacs-lsp-scala + (package + (name "emacs-lsp-scala") + (version "20190604.1237") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rossabaker/lsp-scala.git") + (commit + "06f189aa5cafe93cecbdaa234bccd900def7bc68"))) + (sha256 + (base32 + "05l563j1wz01rqwd4r639i88ln3bkn0m4swvj3hs11d70brlw981")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-lsp-mode" ,emacs-lsp-mode) + ("emacs-sbt-mode" ,emacs-sbt-mode))) + (home-page + "https://github.com/rossabaker/lsp-scala") + (synopsis "Scala support for lsp-mode") + (description + "This package defines an lsp-mode client for Scala. ") - (license #f)))) + (license #f))) -- cgit v1.2.3