% This file is public domain.
%
% This example document demonstrates the testidx package
% with LuaLaTeX and xindy. You can build this document using:
%
% lualatex sample-idx-lua
% xindy -M sample-idx-lua -M texindy -C utf8 -L english -t sample-idx-lua.ilg sample-idx-lua.idx
% lualatex sample-idx-lua
%
% If you are using arara, the directives are:
%
% arara: lualatex
% arara: xindy: {language: english, codepage: utf8,
% arara: --> log: sample-idx-lua.ilg,
% arara: --> modules: [sample-idx-lua, texindy]}
% arara: lualatex
\documentclass{article}

\usepackage{filecontents}
\usepackage{fontspec}
\usepackage{makeidx}
\usepackage{testidx}

% Create the .xdy file for this example:
\begin{filecontents*}{\jobname.xdy}
; list of allowed attributes

(define-attributes ((
  "tstidxencapi"
  "tstidxencapii"
  "tstidxencapiii"
)))

; define format to use for locations

(markup-locref :open "\tstidxencapi{"
 :close "}"
 :attr "tstidxencapi")

(markup-locref :open "\tstidxencapii{"
 :close "}"
 :attr "tstidxencapii")

(markup-locref :open "\tstidxencapiii{"
 :close "}"
 :attr "tstidxencapiii")

(markup-locref-list :sep ",")
(markup-range :sep "--")

; define a numbers group

(define-letter-group "Numbers"
   :prefixes ("0" "1" "2" "3" "4" "5" "6" "7" "8" "9")
   :before "A")

; define a "Maths" group for keys starting with ">"

(define-letter-group "Maths"
   :prefixes (">" )
   :before "Numbers")

; define a "Markers" group for keys starting with "<"

(define-letter-group "Markers"
   :prefixes ("<" )
   :before "Maths")

\end{filecontents*}

\makeindex

\begin{document}
\testidx

\printindex
\end{document}