Docbook Editor Configuration: Difference between revisions

From NixOS Wiki
imported>Disassembler
Adds vim editor for docbook settings
imported>Mic92
simplify neovim configuration
Line 1: Line 1:
==For Vim/Neovim==
<syntaxhighlight lang="nix">
(pkgs.neovim.override {
  configure.packages.myplugins.start = with pkgs.vimPlugins; [
    vim-docbk
    vim-docbk-snippets
    syntastic
    UltiSnips
  ];
})
</syntaxhighlight>
== For Emacs ==
== For Emacs ==


Line 28: Line 40:
   })
   })
])
])
</syntaxhighlight>
==For Vim/Neovim==
<syntaxhighlight lang="nix">
let
  pkgs = import <nixpkgs> {};
  buildVimPlugin = pkgs.vimUtils.buildVimPluginFrom2Nix;
  custom_plugins = {
    "vim_docbk" = buildVimPlugin {
      name = "vim-docbk";
      src = pkgs.fetchgit {
        url = "https://github.com/jhradilek/vim-docbk";
        rev = "6ac0346ce96dbefe982b9e765a81c072997f2e9e";
        sha256 = "1jnx39m152hf9j620ygagaydg6h8m8gxkr1fmxj6kgqf71jr0n9d";
      };
      dependencies = [];
    };
    "jhradilek_snippets" = buildVimPlugin {
      name = "jhradilek_snippets";
      src = pkgs.fetchgit {
        url = "https://github.com/jhradilek/vim-snippets";
        rev = "bf7e6742ac0a2ddc6bab5593bd2a2c6b75269bb8";
        sha256 = "1h7cp0p1z8r7w9bg2l79n5gg047xp8j8kg1xnn0finxqyb45lqif";
      };
      dependencies = [];
    };
  };
  nvim = pkgs.neovim.override {
    configure = {
      vam = {
        knownPlugins = pkgs.vimPlugins // custom_plugins;
        pluginDictionaries = [
          {
            names = [
              "vim_docbk"
              "jhradilek_snippets"
              "syntastic"
              "UltiSnips"
            ];
          }
        ];
      };
    };
  };
in
pkgs.stdenv.mkDerivation rec {
  name = "Docbook_Vim";
  buildInputs = [ nvim ];
}
</syntaxhighlight>
</syntaxhighlight>

Revision as of 15:10, 2 November 2017

For Vim/Neovim

(pkgs.neovim.override {
   configure.packages.myplugins.start = with pkgs.vimPlugins; [
     vim-docbk
     vim-docbk-snippets
     syntastic
     UltiSnips
   ];
 })

For Emacs

The following creates an Emacs with a custom module, which configures nXML for the NixOS / Nixpkgs docbook codebase:

let
  pkgs = import <nixpkgs> {};
  inherit (pkgs) emacsPackagesNg docbook5 writeText;

  schemas = writeText "schemas.xml" ''
    <locatingRules xmlns="http://thaiopensource.com/ns/locating-rules/1.0">
      <documentElement localName="section" typeId="DocBook"/>
      <documentElement localName="chapter" typeId="DocBook"/>
      <documentElement localName="article" typeId="DocBook"/>
      <documentElement localName="book" typeId="DocBook"/>
      <typeId id="DocBook" uri="${docbook5}/xml/rng/docbook/docbookxi.rnc" />
    </locatingRules>
  '';

in emacsPackagesNg.emacsWithPackages (epkgs: [
  (emacsPackagesNg.trivialBuild {
    pname = "nix-docbook-mode";
    version = "1970-01-01";
    src = writeText "default.el" ''
      (eval-after-load 'rng-loc
        '(add-to-list 'rng-schema-locating-files "${schemas}"))
    '';
  })
])