Docbook Editor Configuration

From NixOS Wiki
Revision as of 18:26, 21 August 2017 by imported>Fadenb

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}"))
      ;
    })
  ])