In a Japanese file we have a NAME record entered as /松下/ 泰洋 with the surname positioned before the given names. Modify IndiView::extractGiven() to look for reversed order of the given names, and extract them when following the surname.
Add "src\Gedcom\ansiconv.h" and "src\Gedcom\ansiconv_inl.h" to the project.
Add include ansiconv.h for access to ANSI to UTF-16 conversion functions.
Add a new member function to class GedcomFile, createErrorLine() which creates a pure ASCII line with level number and tag "SKIP" to feed to the input stream when an exception occurs during the conversion of an 8-bit input stream to UTF-16. Only the level number is extracted from the original line.
Increase the buffer size in PrescanCharSet8() and PrescanCharSet16() calls from 512 to 1024. I have some sample files where CHAR does not occur until character position 700+.
Add new utility functions for converting between ANSI and UTF-16. These are slightly modified versions of Giovanni Dicanio's utf8conv.h and utf8conv_inl.h for ANSI character strings.
Add "src\Gedcom\GedcomCharSet.cpp" and "src\Gedcom\GedcomCharSet.h" to the project
Change ParsingThread::ThreadProc() to abort the parse if GedcomFile::OpenFile() returns false.
In OpenFile() member function create an instance of class GedcomCharSet, store to GedcomFile::m_charset member variable, and pass to CGedcomEncoding::GetFileEncoding() call.
Add a "GedcomCharSet* m_charset" member variable to class GedcomFile.
Modify IsEndOfLine16() to properly handle Big Endian comparisons.
Add include GedcomCharSet.h
Add GedcomCharSet* argument to member function GetFileEncoding()
Add new class GedcomCharSet, which scans an 8-bit or 16-bit GEDCOM file for a "CHAR" structure, which names the character set used by the GEDCOM. The value of the CHAR structure can help distinguish between different types of 8-bit files.
Remove "multimap<int, TagData> m_tags" that mapped from GEDCOM line number to a TagData structure.
Remove "multimap<int, TagData> m_tags" that mapped from GEDCOM line number to a TagData structure.
Remove "multimap<int, TagData>& m" argument to the following functions:
Remove definition of struct TagData.
Add includes for DebugTrace.h, to enable debug messages to be displayed.
Use std::set for storing unresolved record IDs: m_unresolvedIndi, m_unresolvedRepo, m_unresolvedSour, m_unresolvedFam; add new std::vector for m_reposDefined and m_famsDefined.
Remove "multimap<int, TagData> m_tags" that mapped from GEDCOM line number to a TagData structure. It is a holdover from TagsView which was based on ctags.exe parser output.
In NppWrapper::ShowIndiView(), if the "INDI View" is just being created, get the current buffer ID and pass it to ParseFile(), it will parse and display the results if it is a GEDCOM.
In the WM_INITDIALOG handler, change the ListView column headers from "Ref as Child" to "FAM as Child" and from "Ref as Spouse" to "FAM as Spouse".
Add new files to project, version.h, version.rc2, and IndiView-14a.ico
Add new files to project, version.h, version.rc2, and IndiView-14a.ico;
In NppWrapper::ShowIndiView() when registering the docking dialog with Notepad++, include an icon for the tab and also explicitly name the dialog through the pszName member.
Extract VERSIONINFO resource into version.rc2 and include it in Plugin.rc
Move the VERSIONINFO resource into a separate non-writable (by Visual Studio) resource script, version.rc2, that is included by Plugin.rc. This will preserve the conditional strings depending on the PLATFORM constants, PLATFORM__x86, PLATFORM__x64, and PLATFORM__ARM. Also use an include file, version.h, where some version constants may be defined.
Add icon resource ID, IDI_ICON_INDI
14x14 pixel icon to display on the docking dialog tab for IndiView
In IndiView::run_dlgProc() call OnLVNColumnClick() handler for ListView notification, LVN_COLUMNCLICK; this changes the arrow state for the selected column, and potentially initiates a sorting operation.
Add support for ListView column sorting...
Reset the state of ListView header (state variables and visual cues) by a call to IndiView::resetHeaderState().
Add an accessor method for the private member m_indiView: IndiView& GetIndiView()
Change "const std::vector<wstring>& GetIndisDefined() const { return m_indisDefined; }" to
In VirtualList::init(), remove LVS_NOSORTHEADER style; this was preventing the ListView from generating LVN_COLUMNCLICK notifications.
Pass "ULONG_PTR bufferID" argument to ParseFile(); use the passed bufferID and not GetCurrentBufferID() to determine the LangType; the bufferID reported by NPPM_GETCURRENTBUFFERID seems to lag behind the values passed to the notifications.
In VS_VERSION_INFO, bump revision to 210.
In the LVN_GETDISPINFO handler for the VirtualList, populate column 4 with an appropriate string, either "I23 as spouse" or "No occurrence". Append a "+" if there are multiple spouses, and only one is displayed.
In CGedcomParse, findTags(), TAG_HUSB and TAG_WIFE is handled for FAM records, to call InsertIndiAsSpouseLine() for all INDIs.
Create a new CGedcomData unordered_multimap m_IndiAsSpouseToLine from wstring (INDI record ID) to line number in GEDCOM file, where this INDI is referenced as a HUSB or WIFE in a FAM structure.
Move the NM_DBLCLK handler for the VirtualList into a separate member function,
In CGedcomParse::findTags(), TAG_CHIL is handled for FAM records -- added call to InsertIndiAsChildLine() for all INDIs.
Create a new CGedcomData map m_IndiAsChildToLine from wstring (INDI record ID) to line number in GEDCOM file, where this INDI is referenced as a Child, in FAM structure.
In VS_VERSION_INFO, set the value of "FileDescription" at resource compile time depending on the preprocessor macros: PLATFORM__x86, PLATFORM__x64, PLATFORM__ARM, or none. Bump revision to 203.
In GetPluginVersion(), define a constant string "const TCHAR* platform" depending upon which preprocessor macro is defined: PLATFORM__x86, PLATFORM__x64, PLATFORM__ARM (if any); append this string at the end of strPluginVersion. Also, expand the displayed version to include the revision number.
Define a C++ compiler and resource compiler preprocessor constant PLATFORM__$(PlatformTarget). Visual Studio replaces the macro $(PlatformTarget) with either "x86" for Win32 builds, "x64" for x64 builds, or "ARM" for ARM builds.
Fix the version of the next release at 0.6.0. The next update adds enough new functionality, that it should be .1 increment.
Add "src\ListView\VirtualList.cpp" and "src\ListView\VirtualList.h" to project
Add "src\ListView\VirtualList.cpp" and "src\ListView\VirtualList.h" to project
Replace references to "ListView _listView;" with "VirtualList _virtualList;"
Change the "..\ListView\ListView.h" include with "..\ListView\VirtualList.h"
Class VirtualList which derives from class ListView. Implements a listview with LVS_OWNERDATA style
These files are brought over from Notepad++ v8.4.2 sources. They provide a ListView windows control wrapper.
Files for the ListView control wrapper classes
Initial implementation of a basic GEDCOM v5.5.1 parser.
Windows conversion utilities between UTF8 and UTF16 using MultiByteToWideChar() and WideCharToMultiByte() APIs
Directory for the GEDCOM parser files
These files are brought over from Notepad++ v8.4.2 sources. They provide the "Docking Window Feature" for plugins.
Add dialog resource IDD_INDI_VIEW, used for the docking IndiView.
Add new source files to the project:
Add Comctl32.lib to the linker dependencies -- needed for ListView.
Replace the include file DebugTrace.h with LexerTrace.h. This disables debug messages from the lexer unless the LexerTrace.h preprocessor macros _LEXER_TRACE and also possibly _TRACE_DETAIL are defined by uncommenting them in Lexer.h
Use preprocessor macros _LEXER_TRACE and _TRACE_DETAIL to control the debug tracing in the lexer. By default these two macros are not defined. One or both of the macros need to be uncommented to enable debug tracing.
The preprocessor macro _TRACE_LEXER enables DebugTrace() output by using this include file instead of DebugTrace.h; this allows the verbose debug output from the lexer to be turned off, while other debug messages are still displayed. This include is only used in Lexer.cpp
Initial implementation of IndiView derived from DockingDlgInterface.
Add class ParsingThread which wraps launching a worker thread for parsing a GEDCOM file.
Add open source copyright to header
Add notification handlers for NPPN_BUFFERACTIVATED, NPPN_FILEOPENED, NPPN_FILEDELETED, and NPPN_FILEBEFORECLOSE; the handlers have been moved into NppWrapper member functions
Add notification handler OnFileDeleted(), for Npp notification, NPPN_FILEDELETED.
Use the Npp call to setInfo(), to initialize NppWrapper with the Npp main window handle, and to store the window handles to the two Scintilla instances.
Add dialog resource ID, IDD_INDI_VIEW, for IndiView
A single instance of NppWrapper is used to wrap the hModule passed to the DLL.
A single instance of NppWrapper is used to wrap the hModule passed to the DLL.
Add class NppWrapper derived from NppPlugin.
Add base class NppPlugin to wrap DLL's module handle and Npp's main window handle
GedcomLexer 0.5.0 r170 has been released! (18 July 2022)
Plugin Manager fails to install styler XML file
Change lexer interface for Npp version 8.4
Plugin Manager fails to install styler XML file
Change lexer interface for Npp version 8.4
Change lexer interface for Npp version 8.4
GedcomLexer version 0.5.0 at revision 170
Bump revision to r170 in Plugin.rc, Deploy.vcxproj and install.txt
Revise installation instructions to use latest file names
Indicate build now uses Visual Studio 2019;
Add file names to svn:ignore list
Change version from 0.4.0.140 to 0.5.0.165.
Change version from 0.4.0.140 to 0.5.0.165.
In configLoad() label the DebugTrace as coming from "GedcomLexer: configLoad()" and not "GedcomLexer: getConfigFilePath()"
configLoad() - verify full XML file is written, else prompt user to copy the config file
Comment wording corrected.
Add "const char* xmlContent" which points to a string containing the default GedcomLexer.xml.
In setInfo() add comment regarding purpose of configLoad() call.
Remove extern reference to configLoad() and remove the call to configLoad() from GetLexerStatusText()
Use the setInfo() callback at the beginning of the plugin initialization to call configLoad() rather than doing it later in GetLexerStatusText(). The GetLexerStatusText() callback is discontinued since Notepad++ 8.4
Use explicit namespaces for Scintilla and Lexilla components;
Use explicit namespaces for Scintilla and Lexilla components;
Use explicit namespaces for Scintilla and Lexilla components;
Add LexAccessor.cxx to project from Lexilla's lexlib;