--- /dev/null
+# Copyright 2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+NEED_EMACS="26.1"
+
+inherit elisp optfeature
+
+if [[ ${PV} = "9999" ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/emacs-lsp/lsp-mode"
+ EGIT_BRANCH="master"
+ EGIT_CHECKOUT_DIR="${WORKDIR}/${P}"
+ S="${EGIT_CHECKOUT_DIR}"
+else
+ SRC_URI="https://github.com/emacs-lsp/lsp-mode/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64"
+fi
+
+DESCRIPTION="Emacs client/library for the Language Server Protocol"
+HOMEPAGE="https://emacs-lsp.github.io/lsp-mode/"
+
+LICENSE="GPL-3+"
+SLOT="0"
+
+RDEPEND=">=app-emacs/dash-2.18.0
+ >=app-emacs/f-0.20.0
+ >=app-emacs/lv-0.15.0
+ >=app-emacs/markdown-mode-2.4
+ >=app-emacs/spinner-1.7.4"
+DEPEND="${RDEPEND}"
+
+SITEFILE="50${PN}-gentoo.el"
+DOCS=( README.md CHANGELOG.org )
+RESTRICT="test" # test requires ert-runner which is not packaged
+
+src_compile() {
+ ${EMACS} ${EMACSFLAGS} -L . -L "${S}"/clients -f batch-byte-compile *.el "${S}"/clients/*.el
+}
+
+src_install() {
+ elisp-make-autoload-file "${S}"/${PN}-autoload.el "${S}"/
+ elisp-install ${PN} *.el *.elc
+ elisp-install ${PN}/clients "${S}"/clients/{*.el,*.elc}
+ elisp-site-file-install ${FILESDIR}/${SITEFILE}
+}
+
+pkg_postinst() {
+ elisp_pkg_postinst
+ optfeature "lsp-mode UI integration" app-emacs/lsp-ui
+ optfeature "real-time diagnostics" app-emacs/flycheck
+ optfeature "code completion" app-emacs/company-mode
+ optfeature "helm integration" app-emacs/helm
+ optfeature "projectile integration" app-emacs/projectile
+}
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>jturner.usa+gentoo@gmail.com</email>
+ <name>John Turner</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">emacs-lsp/lsp-mode</remote-id>
+ <doc>https://github.com/emacs-lsp/lsp-mode/blob/master/README.md</doc>
+ </upstream>
+ <longdescription>
+ Client for Language Server Protocol. lsp-mode aims to provide IDE-like
+ experience by providing optional integration with the most popular Emacs
+ packages like company, flycheck and projectile.
+ </longdescription>
+</pkgmetadata>