From 25fdd949db264836f47abcad13f3e8594262b300 Mon Sep 17 00:00:00 2001 From: Tim Gesthuizen Date: Thu, 30 Aug 2018 17:39:57 +0200 Subject: [PATCH] gnu: Add emacs-irony-mode. * gnu/packages/emacs.scm (emacs-irony-mode): New variable. * gnu/packages/emacs.scm (emacs-irony-mode-server): New variable. --- gnu/packages/emacs.scm | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 8f0c564f8..3404937dc 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -63,6 +63,7 @@ #:use-module (guix monads) #:use-module (guix store) #:use-module (guix build-system gnu) + #:use-module (guix build-system cmake) #:use-module (guix build-system emacs) #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system trivial) @@ -84,6 +85,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages xorg) #:use-module (gnu packages lesstif) + #:use-module (gnu packages llvm) #:use-module (gnu packages image) #:use-module (gnu packages linux) #:use-module (gnu packages version-control) @@ -2724,6 +2726,45 @@ front-ends. Company comes with many back-ends, e.g. @code{company-elisp}. These are distributed in separate files and can be used individually.") (license license:gpl3+))) +(define-public emacs-irony-mode + (package + (name "emacs-irony-mode") + (version "1.2.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/Sarcasm/irony-mode/archive/v" + version ".tar.gz")) + (sha256 (base32 "1f68zi0glkg2aly66s07rx3w0b0hdi1znxan02h6dbabaadylk99")))) + (build-system emacs-build-system) + (arguments '()) + (propagated-inputs + `(("emacs-irony-mode-server" ,emacs-irony-mode-server))) + (home-page "https://github.com/Sarcasm/irony-mode") + (synopsis "C/C++/ObjC Code completion and syntax checks for Emacs") + (description "Provides @code{clang} assisted syntax checking and +autocompletion for C,C++ and ObjC in GNU Emacs. Using @code{libclang} it can +provide syntax checking and autocompletion on compiler level which is very +resistent against false positives. It also integrates well with other +packages like @code{eldoc-mode} and especially @code{company-mode} as +described on the homepage.") + (license license:gpl3+))) + +(define-public emacs-irony-mode-server + (package (inherit emacs-irony-mode) + (name "emacs-irony-mode-server") + (inputs + `(("clang" ,clang))) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (invoke "cmake" + "server" + (string-append "-DCMAKE_INSTALL_PREFIX=" out)) #t)))))) + (build-system cmake-build-system))) + (define-public emacs-company-quickhelp (package (name "emacs-company-quickhelp") -- 2.18.0