NotePad Elite
App Store
← Back to Support

NOTEPAD ELITE / Support centre

Developers & creators

Make NotePad Elite your own, then share what you create. These guides cover the resource formats the app can import, with small examples you can download, edit and test.

Download the creator starter kit

Menu wording can vary with the selected language and app version. Use the equivalent command on your device.

Create a theme

A theme is an XML document containing GlobalStyles and, optionally, LexerStyles. Start from an exported theme when you need full language coverage. The Ocean starter is deliberately small: it sets a blue editor palette and a few Python styles.

Colours use six hexadecimal digits without #. Global WidgetStyle entries describe the editor surface, margin, caret, selection and current line. A LexerType groups language styles; styleID values belong to that lexer and cannot be guessed from another language. fontStyle is a bitmask: 1 bold, 2 italic, 4 underline; 0 is normal.

  1. Download Elite-Ocean.xml and keep a copy before editing.
  2. In Settings, open Import settings and themes → Import theme XML. The import activates a copy in the app library; the original file is unchanged.
  3. Open Python and plain-text samples. Check text, selection, caret, margins and contrast in light and dark surroundings.
  4. Open Themes → Edit styles, use Save a copy to refine the result, then Export XML to distribute it.
Elite-Ocean.xmlDownload ↓
<?xml version="1.0" encoding="UTF-8"?>
<NotepadPlus>
  <GlobalStyles>
    <WidgetStyle name="Default Style" styleID="32" fgColor="DCEBFF" bgColor="102C54" fontName="Menlo" fontSize="14" fontStyle="0" />
    <WidgetStyle name="Line number margin" styleID="33" fgColor="88A9D2" bgColor="102C54" />
    <WidgetStyle name="Caret colour" styleID="2069" fgColor="62ADFF" />
    <WidgetStyle name="Selected text colour" styleID="0" fgColor="FFFFFF" bgColor="245B96" />
    <WidgetStyle name="Current line background colour" styleID="0" bgColor="15365F" />
  </GlobalStyles>
  <LexerStyles>
    <LexerType name="python" desc="Python" ext="py pyw">
      <WordsStyle name="KEYWORD" styleID="5" fgColor="84C1FF" bgColor="102C54" fontStyle="1" />
      <WordsStyle name="COMMENTLINE" styleID="1" fgColor="8BA6C8" bgColor="102C54" fontStyle="2" />
    </LexerType>
  </LexerStyles>
</NotepadPlus>

Define a language with UDL

A UDL XML file describes extensions, keyword groups, comments, delimiters and styles. Use the built-in user-language editor for a richer definition; the starter only highlights task, end, true and false in .edemo files.

Import Elite-Demo.xml as a user language and open elite-demo.edemo. If needed, select Elite Demo explicitly. Extensions are space-separated and written without the leading dot. Export a copy after testing.

Elite-Demo.xmlDownload ↓
<?xml version="1.0" encoding="UTF-8"?>
<NotepadPlus>
  <UserLang name="Elite Demo" ext="edemo" udlVersion="2.1">
    <Settings>
      <Global caseIgnored="no" allowFoldOfComments="no" foldCompact="no" forcePureLC="0" decimalSeparator="0" />
      <Prefix Keywords1="no" />
    </Settings>
    <KeywordLists>
      <Keywords name="Keywords1">task end true false</Keywords>
    </KeywordLists>
    <Styles>
      <WordsStyle name="DEFAULT" styleID="0" fgColor="102C54" bgColor="F8FBFF" fontStyle="0" />
      <WordsStyle name="KEYWORDS1" styleID="4" fgColor="1559AD" bgColor="F8FBFF" fontStyle="1" />
    </Styles>
  </UserLang>
</NotepadPlus>
elite-demo.edemo ↓

Build an autocomplete dictionary

Autocomplete API XML lists KeyWord entries. A function entry can contain Overload and Param elements for call tips. It describes suggestions; it does not implement those functions.

The imported filename selects the language resource. Keep the example named python.xml and select Python while testing. Changing only AutoComplete language is not enough to target another language. Keep your existing dictionary before importing a replacement.

python.xmlDownload ↓
<?xml version="1.0" encoding="UTF-8"?>
<NotepadPlus>
  <AutoComplete language="python">
    <Environment ignoreCase="no" startFunc="(" stopFunc=")" paramSeparator="," />
    <KeyWord name="save_note" func="yes">
      <Overload retVal="None" descr="Save a note to the selected path.">
        <Param name="path: str" />
        <Param name="text: str" />
      </Overload>
    </KeyWord>
    <KeyWord name="project_name" />
  </AutoComplete>
</NotepadPlus>

Add function-list rules

A function parser uses regular expressions to identify declarations and extract names. The example finds task declarations in Elite Demo. Import both elite-demo-functions.xml and overridemap.xml through the function-rule importer.

The override map associates the UDL name Elite Demo with elite-demo-functions.xml. When you already have an override map, merge the association instead of losing your other mappings. Test against the .edemo sample and a file with no declarations.

elite-demo-functions.xmlDownload ↓
<?xml version="1.0" encoding="UTF-8"?>
<NotepadPlus>
  <functionList>
    <parser id="elite-demo" displayName="Elite Demo">
      <function mainExpr="(?m)^task\h+\w+">
        <functionName><nameExpr expr="task\h+\K\w+" /></functionName>
      </function>
    </parser>
  </functionList>
</NotepadPlus>
overridemap.xml ↓

Share useful macros

Record a small repeatable edit and test it on a copy. Give the macro a descriptive name and manage it from the macro library. Native exports use versioned JSON; portable exports use shortcuts.xml for the supported action subset.

Keep the format exported by the app. Do not hand-edit internal IDs or assume that every action can move between profiles. Include the expected selection mode, input sample, output sample and app version. Imported records that cannot run should be reviewed rather than advertised as supported.

Publish a UDL catalog

A custom catalog is JSON with schemaVersion 1 and an entries array. Each entry contains a unique id, name, author, HTTPS raw XML url and licence. An optional sha256 contains the resource’s 64-digit SHA-256 digest.

The downloadable catalog on this site points to the actual Elite Demo XML and includes its checksum. To publish your own catalog, replace the entry and URL with your own resource, recalculate the digest after edits, host both over HTTPS, then test the catalog preview and installation in the app.

catalog.jsonDownload ↓
{
  "schemaVersion": 1,
  "entries": [
    {
      "id": "elite-demo",
      "name": "Elite Demo",
      "author": "NotePad Elite",
      "url": "https://notepadelite.pages.dev/resources/Elite-Demo.xml",
      "license": "MIT",
      "sha256": "840e13fc62289ec0edf66a525370b30626d400a46e0fb559c4fb9e9c268f6fee"
    }
  ]
}

Share projects and sessions

A project XML groups references to files and folders. It uses NotepadPlus as its root and Project, Folder and File elements with name attributes. Use the project panel to create, import and export the structure rather than relying on private absolute paths.

The exported project contains references, not copies of the documents. Explain how to map paths and authorize a folder on a new device. Remove personal paths from shared sessions, include a sample folder and keep private documents out of the package.

Connect a language server

Code intelligence can connect to a language server you choose using LSP over TCP or TLS. Configure the host and port, authorize the local project folder and map its URI if the server uses a different path. The app does not install or launch the server for you.

The connection can send document text and paths to that server when you request language actions. Explain the server’s setup, supported language, transport and privacy practices. Use the local project index when you only need offline symbol lookup.

Package and share your work

Publish a clearly named resource with a README, author, version, licence, supported app versions, installation steps and a small example. Include a screenshot for a theme and expected input/output for macros or parser rules.

Check that you may redistribute any included third-party material. Remove personal paths, credentials and private documents. This website is documentation and starter downloads, not an upload gallery: share your own repository or download URL, or email the resource link to support.

  1. Test import, select the resource and verify its effect on the supplied sample.
  2. Test with accented text and an empty file; check long names and light/dark contrast.
  3. Export the final resource from the app, document any limits and add a changelog.
  4. Share the URL, licence and resource type so other users know what they are installing.

Contact support

Questions, bug reports, privacy requests or community resources: write to us. Include the app version, device and steps to reproduce. Do not send passwords, keys or private documents.

notepadelite@outlook.com Developer: Daniel Ortega Del Casar