ianmartinez/LangPad
39.5
Weak · 20 September 2026
6.5k
lines of production code
VB.NET
with C#
1
measurement over time
What this system is
LangPad is a linguistics-oriented word processor designed for constructing conlangs and managing linguistic data. It provides core capabilities for creating and editing notebooks, managing dictionaries with merge support, and inserting IPA characters via a dedicated editor with customizable keyboard shortcuts. The application features a modern, pluggable theming system, HTML export functionality, and a new NTX file format for structured notebook storage.
How it got here
2015 — LangPad initial release and legacy cleanup
6 changes.
This period marks the initial release of the LangPad application, a linguistics-oriented word processor, alongside its migration to .NET 8 and a modernized project structure. Concurrently, legacy codebases including Conlang Notepad and the Tundra application were removed, along with outdated VB.NET scaffolding and UI components.
2019–2020 — LangPad rebranding and modernization
16 changes.
The project was rebranded from Conlang Notepad to LangPad, involving a solution rename, Visual Studio upgrade, and restructuring into distinct UI and data libraries. This period focused on modernizing the application infrastructure with high-DPI support, introducing a comprehensive pluggable theming system, and implementing new features such as an Inno Setup installer, HTML export, and a redesigned character editor.
Features
Initial Inno Setup installer for LangPad 11.1
A new Inno Setup script (Installer.iss) has been added to create a Windows installer for LangPad version 11.1. This installer packages the main executable, configuration files, and specific dependencies (AutoUpdater.NET.dll, HtmlAgilityPack.dll, LangPadData.dll, LangPadUI.dll, RtfPipe.dll) into the program directory. It also configures the application to register the .nt file extension with a custom icon and adds a Start Menu shortcut, enabling users to install and launch the application directly.
installer-src · high confidence
Initial implementation of the NTX file format classes
Added the core data models and serialization logic for the new NTX file format (\*.ntx) in the NotebookNTX namespace. This includes NotebookNTX, PageNTX, DictionaryNTX, and TempFolderNTX classes, which define the structure for notebooks based on HTML page data rather than the legacy RTF-based NT format. The implementation provides the Save method to serialize notebook data, pages, dictionaries, and stylesheets into a temporary directory structure before zipping the result, establishing the groundwork for a future format that is currently incompatible with the existing NT format.
src/LangPadData/NotebookNTX · high confidence
Initial release of LangPad with changelog and documentation
This commit introduces the initial version of the LangPad application, a linguistics-oriented word processor. It establishes the project structure with a comprehensive changelog detailing features from version 8.1 through 12.0, including IPA character insertion, dictionary management, and theme support. The release also includes essential project metadata such as the MIT license, funding configuration for Patreon, credits for icon assets (Taiga, Oxygen), and updated repository documentation.
(repo-wide) · high confidence
Introduce customizable UI theming for menus, toolstrips, and panels
LangPad now supports a pluggable theming system that allows users to change the visual appearance of the application. The new ThemeManager coordinates the application of color schemes and custom renderers to menus, context menus, toolstrips, panels, tabs, and forms. The system ships with eight built-in themes (Default, Cool Gray, Desert, Luna, Dusk, Metallic, Olive, and Whiteout), each defining specific colors for backgrounds, borders, text, and gradients, as well as options for rounded corners and gradient directions. This change replaces the previous static UI styling with a dynamic, theme-driven approach.
src/LangPadUI/Theming · high confidence
LangPad version 12.0 with new theme system and dictionary form
LangPad has been updated to version 12.0, introducing a comprehensive new theming system that allows users to customize the appearance of the main window, dictionary, character editor, and RTF editor. The release also includes a redesigned Dictionary form with improved grid display, alternating row colors, and better integration with the new theme system. Additional improvements include an auto-updater for easier updates, better handling of character insertion and bracket operations, and various bug fixes for stability and performance.
src/LangPad · high confidence
LangPadData library introduces character search, settings management, and HTML export capabilities
The new LangPadData library provides core data and utility services for the application. It includes a CharacterSearch class that allows users to find and insert characters (including IPA symbols) by description, and a Config class that manages user preferences such as theme, HiDPI, and dictionary font size via a local configuration file. Additionally, it introduces HTML export functionality for dictionaries, controlled by HtmlExportSettings, and a robust KeyValue parser for reading and writing application settings.
src/LangPadData · high confidence
New UI components for character shortcuts and styling
The LangPadUI library now includes several new controls to support the character editor and styling features. ShortcutButton provides a composite control for displaying and managing customizable keyboard shortcuts. CharacterButton and AccentCheckButton handle character selection and accent marks, both featuring custom IpaToolTips for clear visual feedback. ColorButton allows users to pick colors via a dialog, while RtbStyle defines the text formatting properties (font, color, alignment) applied to the ExtendedRichTextBox. Additionally, DoubleBufferedPanel and DoubleBufferedFlowLayoutPanel are introduced to improve rendering performance and reduce visual artifacts in the UI.
src/LangPadUI · high confidence
New and revised UI themes available
The application now includes several new visual themes—Desert, Whiteout, Olive, and Cool Gray (renamed from Metallic)—alongside refinements to the existing Luna and Dusk themes. Users can switch between these options to change the appearance of forms, panels, tool strips, and menus, with the Cool Gray theme offering a dark gray look with blue accents, Desert providing a brownish palette, Whiteout delivering an ultra-light interface, and Olive introducing a green-tinted style based on the Luna base.
src/LangPadUI/Themes · high confidence
New converters for HTML export and legacy data parsing
The application now includes new converter modules in the LangPad/Converters directory to support specific data handling tasks. The HtmlConverter module enables the conversion of Rich Text Format (RTF) content to HTML, allowing users to export document bodies or full pages with titles. Additionally, the KeyValueConverter module provides legacy parsing functions to interpret serialized color and font definitions from older data formats, ensuring compatibility with existing configuration or content files.
src/LangPad/Converters · high confidence
Redesigned About dialog with Credits tab and external links
The About dialog has been restructured to include a dedicated Credits tab alongside the existing License and Changelog tabs. It now features clickable buttons with icons for Patreon, GitHub, and the project website, allowing users to easily visit these external resources directly from the dialog.
src/LangPad/Dialogs · high confidence
Removals
Conlang Notepad application files removed
The Conlang Notepad application source files have been deleted from the repository. This removal includes the main application entry point (ApplicationEvents.vb), the core notebook editor components (NotebookEditor.vb and its designer files), the notebook file data model (NotebookFile.vb), and various supporting UI controls and dialogs (such as WebcamFrame.vb and dlgAbout.Designer.vb).
Conlang Notepad · high confidence
Removal of legacy VB.NET UI and graphics components
The Tundra application has removed a significant set of legacy Visual Basic .NET source files that provided custom UI controls and graphics utilities. This includes the Aero module for Windows Desktop Window Manager interop, the Appearance class for system theme and wallpaper management, and a suite of custom controls such as StylizedButton, StylizedCheckBox, StylizedColorButton, and StylizedPanel. Additionally, core utility modules for image processing (FastPixel, Common), printing (ExtendedRichTextBox), and layout panels (DoubleBufferedPanel, DoubleBufferedFlowLayoutPanel) have been deleted, indicating a major shift away from the previous VB.NET-based rendering and styling architecture.
Tundra · high confidence
Behavioural changes
8 commits (1 fix) modifying Old
A change to existing behaviour in Old — 8 commits (1 fix), 10 files.
Old · medium confidence · unverified
Application infrastructure modernized and resources reorganized
The application's underlying project structure has been updated to support modern Windows features and improved resource management. High-DPI support is now enabled via PerMonitorV2, ensuring better display scaling on high-resolution screens. The legacy splash screen has been removed in favor of a faster initialization process, and the application namespace has been renamed from 'Language\_Pad' (and previously 'Tundra'/'Conlang Notepad') to 'LangPad'. Additionally, the resource file has been reorganized: legacy character sets like 'KeyStyle', 'Other', and 'Top' have been replaced with more specific categories such as 'Cyrillic', 'Greek', 'Diacritics', and 'Suprasegmentals', and new resources for HTML export and smart text replacement have been added.
src/LangPad/My Project · high confidence
Character Editor UI and Shortcut Key Support
The Character Editor now features a redesigned interface with a dedicated Shortcuts tab, allowing users to assign and manage keyboard shortcuts (including CTRL+NUM combinations) for quick character insertion. The editor also supports smart replacement of characters and respects Caps Lock state during input, while the Notebook Editor's toolbar icons have been updated to reflect the new theme.
src/LangPad/Editors · high confidence
Clean up UI resources and rename project folder
The LangPadUI project folder has been renamed, and the localized resource file has been consolidated into the standard Properties/Resources.resx location. As part of this cleanup, embedded button background images and custom style definitions for the cancel and OK buttons have been removed from the resources, resulting in a cleaner resource set for the user interface.
src/LangPadUI/Properties · medium confidence
Default settings for clip art and automatic updates changed
The application's default configuration has been updated: clip art is now disabled by default (changed from enabled), and automatic updates are now enabled by default (changed from disabled). These changes are reflected in the project's Settings.settings file and the generated Settings.Designer.vb code, affecting the initial state of these user preferences for new installations or resets.
Conlang Notepad/My Project · high confidence
Dictionary loading now appends words instead of replacing existing entries
When opening a dictionary file, the application now adds the new words to the current dictionary rather than replacing the existing content. This change, implemented in the new DictionaryNT class within the NotebookNT module, allows users to merge or build upon their current word lists without losing previously saved data.
src/LangPadData/NotebookNT · high confidence
LangPad 11.1 release and archive of previous versions
The release directory now contains the LangPad 11.1 installer package, which updates the application version to 11.1.0.3 and targets the .NET Framework 4.8 Full profile. This release includes updated dependencies, specifically HtmlAgilityPack 1.11.23.0, and introduces new user settings for custom character shortcuts (Ctrl0–Ctrl9) and a default 'Default Light' theme. Concurrently, all previous releases (versions 1.1 through 11.0) have been moved to the release/Old folder for archival.
release · high confidence
Removal of legacy .NET Framework project scaffolding files
The legacy .NET Framework project scaffolding files in the My Project folder have been removed. This includes Application.Designer.vb, Application.myapp, AssemblyInfo.vb, and Resources.Designer.vb. These files are typically auto-generated or managed by the project system in modern .NET (e.g., .NET Core/.NET 5+), and their removal indicates a migration away from the older VB.NET project structure towards a more modern SDK-style or cross-platform compatible project format. Users should ensure their project configuration is correctly set up for the target framework, as these files are no longer present to manage application settings, assembly metadata, or resources.
Tundra/My Project · high confidence
Solution renamed to LangPad and upgraded to Visual Studio 2022
The project has been renamed from 'Conlang Notepad' to 'LangPad', and the solution file has been updated to target Visual Studio 2022 (version 17.9). This change also introduces a new solution structure that includes the main LangPad project alongside two new sub-projects, LangPadUI and LangPadData, and adds an .editorconfig file to standardize coding styles for C\# and VB.NET files.
src · high confidence
Dependencies
LangPad migrates to .NET 8 and modernizes project structure
The LangPad application has been upgraded from the legacy .NET Framework 4.0 to .NET 8.0, updating the main executable and UI libraries to use the modern SDK-style project format. This migration includes replacing older dependencies like Ionic.Zip with current NuGet packages such as HtmlAgilityPack and RtfPipe, and restructuring the codebase into distinct LangPadData and LangPadUI projects to improve organization and maintainability.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 39.
Lenses
- Code Health 74
- Architecture 92
- Maturity 42
- Readiness 19
- Security 67
Changes since last survey
- 300 commits — 257 feature/other, 43 fixes
By area
- src/LangPad — 200 commits
- (root) — 37 commits
- src/LangPadUI — 15 commits
- src/LangPadData — 11 commits
- Language Pad/bin — 9 commits
- src-net5/LangPad — 6 commits
- Language Pad/obj — 2 commits
- icon/FileIcon — 2 commits
- release/5.1 — 2 commits
- src-net5/LangPadData — 2 commits
- src/TundraLib — 2 commits
- Language Pad/MainForm.vb — 1 commit
- Language Pad/Notebook — 1 commit
- Old/Iwukil Language(Test File).nt — 1 commit
- installer-src/Installer.iss — 1 commit
- installer-src/Output — 1 commit
- release/1.1 — 1 commit
- release/2.1 — 1 commit
- release/7.0 — 1 commit
- release/Old — 1 commit
Notable commits
- fix: Bug Fix: Character editor would sometimes appear behind the current window
- fix: Bug Fix: Character editor would sometimes appear behind the current window after clicking the button to open it
- fix: Bug Fix: Character files imported from the character editor weren't imported correctly
- fix: Bug Fix: Encoding on exported HTML pages wasn't UTF-8 by default in some browsers
- fix: Fix bad performance when changing font styles on a page that has large images
- fix: Fix bracket removal for selected text
- fix: Fix broken find/replace panel
- fix: Fix bug changing fontstyle where selection would be changed
- fix: Fix bug when going to new page
- fix: Fix bug when overwriting file
- fix: Fix bug where splash screen didn't close
- fix: Fix bug where the modified flag wouldn't be changed when saving
- fix: Fix bug with new lines when changing font styles
- fix: Fix coloring of char edit buttons
- fix: Fix enter key on export html dialog
- fix: Fix file name in installer
- fix: Fix find replace and RTF editor not showing correct code
- fix: Fix import image dialog resizing
- fix: Fix incorrect color in metallic theme
- fix: Fix incorrect function of save menu item in dictionary form
- …and 280 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
ianmartinez/LangPad was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 20 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 7cd2d494acfb4fda24f52be02a04a7c2958cf98e — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-b51f968c9b10.