My personal project and infrastructure archive
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nomicon/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix

323 lines
8.1 KiB

{ lib, pkgs }: self: with self; with lib.licenses; {
elisp-ffi = let
rev = "da37c516a0e59bdce63fb2dc006a231dee62a1d9";
in melpaBuild {
pname = "elisp-ffi";
version = "20170518.0";
commit = rev;
src = pkgs.fetchFromGitHub {
owner = "skeeto";
repo = "elisp-ffi";
inherit rev;
sha256 = "sha256-StOezQEnNTjRmjY02ub5FRh59aL6gWfw+qgboz0wF94=";
};
nativeBuildInputs = [ pkgs.pkg-config ];
buildInputs = [ pkgs.libffi ];
preBuild = ''
mv ffi.el elisp-ffi.el
make
'';
recipe = pkgs.writeText "recipe" ''
(elisp-ffi
:repo "skeeto/elisp-ffi"
:fetcher github)
'';
meta = {
description = "Emacs Lisp Foreign Function Interface";
longDescription = ''
This library provides an FFI for Emacs Lisp so that Emacs
programs can invoke functions in native libraries. It works by
driving a subprocess to do the heavy lifting, passing result
values on to Emacs.
'';
license = publicDomain;
};
};
agda2-mode = trivialBuild {
pname = "agda-mode";
version = pkgs.haskellPackages.Agda.version;
dontUnpack = true;
# already byte-compiled by Agda builder
buildPhase = ''
agda=`${pkgs.haskellPackages.Agda}/bin/agda-mode locate`
cp `dirname $agda`/*.el* .
'';
meta = {
description = "Agda2-mode for Emacs extracted from Agda package";
longDescription = ''
Wrapper packages that liberates init.el from `agda-mode locate` magic.
Simply add this to user profile or systemPackages and do `(require 'agda2)` in init.el.
'';
homepage = pkgs.haskellPackages.Agda.meta.homepage;
license = pkgs.haskellPackages.Agda.meta.license;
};
};
agda-input = self.trivialBuild {
pname = "agda-input";
inherit (pkgs.haskellPackages.Agda) src version;
postUnpack = "mv $sourceRoot/src/data/emacs-mode/agda-input.el $sourceRoot";
meta = {
description = "Standalone package providing the agda-input method without building Agda.";
inherit (pkgs.haskellPackages.Agda.meta) homepage license;
};
};
# may be part of MELPA in the future, see
# https://github.com/mlochbaum/BQN/issues/10#issuecomment-912982874
bqn-mode = self.trivialBuild {
pname = "bqn-mode";
version = "unstable-2021-09-04";
src = pkgs.fetchFromGitHub {
owner = "mlochbaum";
repo = "BQN";
rev = "e623a2fcafdf5fd6c8d31570175284805c4f34d9";
sha256 = "1a2lpxy3bak4724r0ns4la5d0j6484ngi73kcwp82vgbbpk7lcrp";
};
postUnpack = ''
sourceRoot="$sourceRoot/editors/emacs"
'';
meta = {
description = "Emacs mode for BQN";
license = lib.licenses.gpl3Only;
maintainers = [ lib.maintainers.sternenseemann ];
homepage = "https://mlochbaum.github.io/BQN/editors/index.html";
};
};
ghc-mod = melpaBuild {
pname = "ghc";
version = pkgs.haskellPackages.ghc-mod.version;
src = pkgs.haskellPackages.ghc-mod.src;
packageRequires = [ haskell-mode ];
propagatedUserEnvPkgs = [ pkgs.haskellPackages.ghc-mod ];
recipe = pkgs.writeText "recipe" ''
(ghc-mod :repo "DanielG/ghc-mod" :fetcher github :files ("elisp/*.el"))
'';
fileSpecs = [ "elisp/*.el" ];
meta = {
description = "An extension of haskell-mode that provides completion of symbols and documentation browsing";
license = bsd3;
};
};
haskell-unicode-input-method = let
rev = "d8d168148c187ed19350bb7a1a190217c2915a63";
in melpaBuild {
pname = "haskell-unicode-input-method";
version = "20110905.2307";
commit = rev;
src = pkgs.fetchFromGitHub {
owner = "roelvandijk";
repo = "emacs-haskell-unicode-input-method";
inherit rev;
sha256 = "09b7bg2s9aa4s8f2kdqs4xps3jxkq5wsvbi87ih8b6id38blhf78";
};
recipe = pkgs.writeText "recipe" ''
(haskell-unicode-input-method
:repo "roelvandijk/emacs-haskell-unicode-input-method"
:fetcher github)
'';
packageRequires = [];
meta = {
homepage = "https://melpa.org/#haskell-unicode-input-method/";
license = lib.licenses.free;
};
};
llvm-mode = trivialBuild {
pname = "llvm-mode";
inherit (pkgs.llvmPackages.llvm) src version;
dontConfigure = true;
buildPhase = ''
cp utils/emacs/*.el .
'';
meta = {
inherit (pkgs.llvmPackages.llvm.meta) homepage license;
description = "Major mode for the LLVM assembler language.";
};
};
matrix-client = let
rev = "d2ac55293c96d4c95971ed8e2a3f6f354565c5ed";
in melpaBuild
{
pname = "matrix-client";
version = "0.3.0";
commit = rev;
src = pkgs.fetchFromGitHub {
owner = "alphapapa";
repo = "matrix-client.el";
inherit rev;
sha256 = "1scfv1502yg7x4bsl253cpr6plml1j4d437vci2ggs764sh3rcqq";
};
patches = [
# Fix: avatar loading when imagemagick support is not available
(pkgs.fetchpatch {
url = "https://github.com/alphapapa/matrix-client.el/commit/5f49e615c7cf2872f48882d3ee5c4a2bff117d07.patch";
sha256 = "07bvid7s1nv1377p5n61q46yww3m1w6bw4vnd4iyayw3fby1lxbm";
})
];
packageRequires = [
anaphora
cl-lib
self.map
dash-functional
esxml
f
ov
tracking
rainbow-identifiers
dash
s
request
frame-purpose
a
ht
];
recipe = pkgs.writeText "recipe" ''
(matrix-client
:repo "alphapapa/matrix-client.el"
:fetcher github)
'';
meta = {
description = "A chat client and API wrapper for Matrix.org";
license = gpl3Plus;
};
};
ott-mode = self.trivialBuild {
pname = "ott-mod";
inherit (pkgs.ott) src version;
postUnpack = "mv $sourceRoot/emacs/ott-mode.el $sourceRoot";
meta = {
description = "Standalone package providing ott-mode without building ott and with compiled bytecode.";
inherit (pkgs.haskellPackages.Agda.meta) homepage license;
};
};
urweb-mode = self.trivialBuild {
pname = "urweb-mode";
inherit (pkgs.urweb) src version;
packageRequires = [
self.cl-lib
self.flycheck
];
postUnpack = "sourceRoot=$sourceRoot/src/elisp";
meta = {
description = "Major mode for editing Ur/Web";
inherit (pkgs.urweb.meta) license homepage;
maintainers = [ lib.maintainers.sternenseemann ];
};
};
# Packages made the classical callPackage way
apheleia = callPackage ./apheleia { };
ebuild-mode = callPackage ./ebuild-mode { };
emacspeak = callPackage ./emacspeak { };
ess-R-object-popup = callPackage ./ess-R-object-popup { };
font-lock-plus = callPackage ./font-lock-plus { };
git-undo = callPackage ./git-undo { };
helm-words = callPackage ./helm-words { };
isearch-plus = callPackage ./isearch-plus { };
isearch-prop = callPackage ./isearch-prop { };
jam-mode = callPackage ./jam-mode { };
nano-theme = callPackage ./nano-theme { };
org-mac-link = callPackage ./org-mac-link { };
perl-completion = callPackage ./perl-completion { };
plz = callPackage ./plz { };
pod-mode = callPackage ./pod-mode { };
power-mode = callPackage ./power-mode { };
railgun = callPackage ./railgun { };
structured-haskell-mode = self.shm;
sv-kalender = callPackage ./sv-kalender { };
tramp = callPackage ./tramp { };
youtube-dl = callPackage ./youtube-dl { };
zeitgeist = callPackage ./zeitgeist { };
# From old emacsPackages (pre emacsPackagesNg)
cedet = callPackage ./cedet { };
cedille = callPackage ./cedille { cedille = pkgs.cedille; };
color-theme-solarized = callPackage ./color-theme-solarized { };
session-management-for-emacs = callPackage ./session-management-for-emacs { };
hsc3-mode = callPackage ./hsc3 { };
ido-ubiquitous = callPackage ./ido-ubiquitous { };
prolog-mode = callPackage ./prolog { };
rect-mark = callPackage ./rect-mark { };
sunrise-commander = callPackage ./sunrise-commander { };
# camelCase aliases for some of the kebab-case expressions above
colorThemeSolarized = color-theme-solarized;
emacsSessionManagement = session-management-for-emacs;
rectMark = rect-mark;
sunriseCommander = sunrise-commander;
}