Daggerfall Template for VS Code
A Visual Studio Code extension that brings support for Tipton's Template scripting language for Daggerfall.
Visual Studio Code is a powerful open source and cross-platform text editor. This extension implements features for Daggerfall Unity quest language such as go to definition, find references, rename symbols, diagnostics and others. It is built with modularity in mind to allow integration with custom actions provided by game mods.
Notepad++ Notepad++ is a powerful but light text editor available in 32 and 64 bit versions. All the tools here work for both. Unfortunately is only available for Windows, but it works fine with Wine.
The following installation instructions refers to two paths: %AppData% and %InstallationPath%. By default the latter is \Program Files\Notepad++ for 64 bit or \Program Files (x86)\Notepad++ for 32 bit. If you use the portable version (shipped without installer) AppData is not used; instead, you'll find all the files inside the extracted folder.
Syntax Highlighting
Recognizes and highlights known keywords, comments and vars with different color
Installation:
Move the file userDefineLang.xml inside %AppData%\Roaming\Notepad++\. If you had already installed a custom language in the past, you'll need to merge the content with the existing file (just put one <UserLang> after the other).
Quests file have .txt extension so we can't make an automatic association. When you open a quest file with notepad++, you have to manually select Language > DfTemplate.
I tested colors on Default (light theme), Obsidian and Bespin (dark themes). If you use a different theme and want to change colors, you can use the UI offered by Notepad++ at Language > Define your language. Right click on background color to set it transparent.
Known issues:
Punctuation following a keyword is seen as part of the keyword itself. (ex. [...] __foo_, [...]).
Regions
This is a feature offered with highlighting which is not part of official language syntax. It allows to fold a group of code lines and focus on the parts of code you're working on without scrolling.
Personally, I think that this change is very helpful and would be probably highly appreciated. At least for translating reasons it's helping a lot. The current quest editor for translating quests has the same and can't imagine it without.
+1 from me
Head of the German Daggerfall translation - www.daggerfalldeutsch.de
and German translator for The Elder Scrolls V: Skyrim and Lore-Expert for The Elder Scrolls: Online
Thank you for feedback! I've update first post with installation instructions.
@Deepfighter
I'll give a look at translation editor, thank you for pointing that out.
Mod System documentation - Learn how to create mods for Daggerfall Unity. Modder Discussion - General help and discussion for the mod system. Github Issues - Submit a bug report for the game, including the mod system.
Added highlighting and snippets for Visual Studio Code.
Mod System documentation - Learn how to create mods for Daggerfall Unity. Modder Discussion - General help and discussion for the mod system. Github Issues - Submit a bug report for the game, including the mod system.
I installed it, but I don't have any highlighting on my end (except where I highlight some word with the mouse and it repeats the highlighting elsewhere). Is there some missing step?
Farewell DFU community! My time here has been a joy.
You can change language from the language indicator on the bottom-right corner. Select 'dftemplate'. Extension is .txt so this can't be done automatically (unless you want it for all text files).
Mod System documentation - Learn how to create mods for Daggerfall Unity. Modder Discussion - General help and discussion for the mod system. Github Issues - Submit a bug report for the game, including the mod system.
This is duplicated a few times. Is this correct for the VS code file? Anyway, found it while messing with trying to get an Atom grammar definition by converting yours. They seem to both be TextMate based so the info is same, but Atom wants a json/cson file instead.
I found a converter that turns .tmLanguage into .cson but it doesn't recognise the 'match' key annoyingly, that would be a real easy way to auto generate atom highlighting.