From 7986ab473b0b5e713c842cd5f1b1df5625a01c5f Mon Sep 17 00:00:00 2001 From: TakeV Date: Thu, 2 Feb 2023 19:01:59 -0800 Subject: [PATCH] Add org-noter layer --- README.org | 42 ++++++++++++++++++++++++++ packages.el | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 129 insertions(+) create mode 100644 README.org create mode 100644 packages.el diff --git a/README.org b/README.org new file mode 100644 index 0000000..e4c1a7b --- /dev/null +++ b/README.org @@ -0,0 +1,42 @@ +#+TITLE: org-noter layer +# Document tags are separated with "|" char +# The example below contains 2 tags: "layer" and "web service" +# Avaliable tags are listed in /.ci/spacedoc-cfg.edn +# under ":spacetools.spacedoc.config/valid-tags" section. +#+TAGS: layer|web service + +# The maximum height of the logo should be 200 pixels. +[[img/org-noter.png]] + +# TOC links should be GitHub style anchors. +* Table of Contents :TOC_4_gh:noexport: +- [[#description][Description]] + - [[#features][Features:]] +- [[#install][Install]] +- [[#key-bindings][Key bindings]] + +* Description +This layer adds support for something. + +** Features: + - Autocomplete + - Lint + - Refactor + - ... + +* Install +To use this configuration layer, add it to your =~/.spacemacs=. You will need to +add =org-noter= to the existing =dotspacemacs-configuration-layers= list in this +file. + +* Key bindings + +| Key Binding | Description | +|-------------+----------------| +| ~SPC x x x~ | Does thing01 | + +# Use GitHub URLs if you wish to link a Spacemacs documentation file or its heading. +# Examples: +# [[https://github.com/syl20bnr/spacemacs/blob/master/doc/VIMUSERS.org#sessions]] +# [[https://github.com/syl20bnr/spacemacs/blob/master/layers/%2Bfun/emoji/README.org][Link to Emoji layer README.org]] +# If space-doc-mode is enabled, Spacemacs will open a local copy of the linked file. diff --git a/packages.el b/packages.el new file mode 100644 index 0000000..f6d9d64 --- /dev/null +++ b/packages.el @@ -0,0 +1,87 @@ +;;; packages.el --- org-noter layer packages file for Spacemacs. +;; +;; Copyright (c) 2012-2022 Sylvain Benner & Contributors +;; +;; Author: +;; URL: https://github.com/syl20bnr/spacemacs +;; +;; This file is not part of GNU Emacs. +;; +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see . + +;;; Commentary: + +;; See the Spacemacs documentation and FAQs for instructions on how to implement +;; a new layer: +;; +;; SPC h SPC layers RET +;; +;; +;; Briefly, each package to be installed or configured by this layer should be +;; added to `org-noter-packages'. Then, for each package PACKAGE: +;; +;; - If PACKAGE is not referenced by any other Spacemacs layer, define a +;; function `org-noter/init-PACKAGE' to load and initialize the package. + +;; - Otherwise, PACKAGE is already referenced by another Spacemacs layer, so +;; define the functions `org-noter/pre-init-PACKAGE' and/or +;; `org-noter/post-init-PACKAGE' to customize the package as it is loaded. + +;;; Code: + +(defconst org-noter-packages + '(org-pdftools + org-noter + org-noter-pdftools) + "The list of Lisp packages required by the org-noter layer. + +Each entry is either: + +1. A symbol, which is interpreted as a package to be installed, or + +2. A list of the form (PACKAGE KEYS...), where PACKAGE is the + name of the package to be installed or loaded, and KEYS are + any number of keyword-value-pairs. + + The following keys are accepted: + + - :excluded (t or nil): Prevent the package from being loaded + if value is non-nil + + - :location: Specify a custom installation location. + The following values are legal: + + - The symbol `elpa' (default) means PACKAGE will be + installed using the Emacs package manager. + + - The symbol `local' directs Spacemacs to load the file at + `./local/PACKAGE/PACKAGE.el' + + - A list beginning with the symbol `recipe' is a melpa + recipe. See: https://github.com/milkypostman/melpa#recipe-format") + +(defun org-noter/post-init-org-pdftools () + (use-package org-pdftools + :hook (org-load . org-pdftools-setup-link))) + +(defun org-noter/init-org-noter () + (use-package org-noter + :after (:any org pdf-view) + :custom (org-noter-always-create-frame nil))) + +(defun org-noter/init-org-noter-pdftools () + (use-package org-noter-pdftools + :after org-noter + :config (with-eval-after-load 'pdf-annot + (add-hook 'pdf-annot-activate-handler-functions #'org-noter-pdftools-jump-to-note))))