TagsView is back! :)
-
Somewhere in 2010, there was a plugin TagsView that used ctags to parse a source file and to show the result in a docked window.
Now, just 12 years later, TagsView is back! :)The latest source code is hosted on GitHub:
https://github.com/d0vgan/TagsView/Here is what has already been implemented:
- 32-bit and 64-bit versions
- updated to AkelPad 4.9.8+ and Notepad++ 8.3+
- applying editor’s colors
- settings dialog
- ability to scan all files in a folder
- win32++ updated to 8.9.1+
- uses the latest ctags from https://github.com/universal-ctags/ctags-win32
- a lot of internal improvements
More changes/improvements are planned.
-
The latest dev build (development build, i.e. work-in-progress build) is available here:
https://sourceforge.net/projects/tagsview/files/TagsView (dev builds)/ -
@vitalii-dovgan said in TagsView is back! :):
TagsView is back! :)
I had the same idea a while back: https://github.com/vinsworldcom/nppTagsView
I was trying to get SourceCookifier to compile on 64-bit but it’s written in C# and I have no idea what I was doing and found TagsView as an OK replacement - not perfect, but it worked. I added some things like:
- updating the tags database on file save
- using Notepad++ background colors in the dockable panel to avoid the large white listview if I had a dark background theme
- pressing
ESC
key in the dockable sets focus back to the Notepad++ editor window - fixed the scroll-into-view when going to a tag
Feel free to incorporate any of those changes into your version - copy or improve the code changes I did. Alternatively, if you’d like me to create some pull requests for you to incorporate some of those changes, I can do that too.
I never made my releases “real” - just pre-release on GitHub since I didn’t know what the original author’s intent was - to keep it or abandon. I had asked for some changes a while back when I started and when unresponsive, I create the copy I’ve been working on - linked above.
Cheers.
-
@michael-vincent said in TagsView is back! :):
TagsView is back! :)
I had the same idea a while back
WOW - looks like you covered everything! I’m playing with it now. Real nice.
The only thing “missing” is the
ESC
key in dockable switching focus to the Notepad++ editor component.If using temp files instead of
STDOUT
for the tags files - where are those temp tags files stored? Are they “cleaned” (read: deleted) when closed?Cheers.
-
A temporary file is created in the %TEMP% folder and its file name starts with “npptags_”. Refer to
createUniqueTempFilesIfNeeded
in “src/TagsViewBase/TagsDlg.cpp”.
In “src/TagsViewBase/TagsDlg.cpp”, there are two manual options for dealing with temporary files (I forgot to describe them in the Readme file):// Debug section m_opt.AddInt(OPT_DEBUG_DELETETEMPINPUTFILE, cszDebug, _T("DeleteTempInputFiles"), DTF_ALWAYSDELETE); m_opt.AddInt(OPT_DEBUG_DELETETEMPOUTPUTFILE, cszDebug, _T("DeleteTempOutputFiles"), DTF_ALWAYSDELETE);
where
enum eDeleteTempFile { DTF_NEVERDELETE = 0, // don't delete (for debug purpose) DTF_ALWAYSDELETE = 1, // delete once no more needed DTF_PRESERVELAST = 2 // preserve the last temp file until the next Parse() or exiting };
Also I’m currently introducing a “cache” of parsed tags to keep them in memory instead of invoking ctags each time you switch to another file.
-
The
Esc
key clears the filter in TagsView’s panel, so a different key is needed to switch the focus. MaybeCtrl+Tab
?
Anyway, what is the code for this? Is it a simple call to::SetFocus
or something more complicated? -
Volunteers are welcome to make the TagsView’s icon/bitmap transparent and to introduce dark versions of the icons/bitmaps for Notepad++'es Dark Mode. I’m not good with images.
-
@vitalii-dovgan said in TagsView is back! :):
The Esc key clears the filter in TagsView’s panel, so a different key is needed to switch the focus. Maybe Ctrl+Tab?
Anyway, what is the code for this? Is it a simple call to ::SetFocus or something more complicated?I thought it would operate like the Notepad++ Function List where:
ESC
in the list view box switches focus to Notepad++ editor componentESC
in the filter text box clears itTAB
switches between filter text box and list view
Seems like the last 2 work and the first one is “combined” with the second - as in
ESC
in either filter text box or list view clears the filter text.In any case, the code for
ESC
to switch focus is simple: https://github.com/vinsworldcom/nppTagsView/commit/e42fe1f2a0f148a5a5b67cc3cf0f88a003e678caI think if you were to implement something like the bullet list above that mimics Notepad++ Function List behavior, you’d need some nuance to it, but where ever the “SetFocus” call would go, the linked commit shows the one-line method I was calling to make it happen.
Cheers.
-
Great news, thank you very much for the update!
I tried your dev-build and it works perfectly (64-bit build) but I noticed a slight problem when visiting location on tag double-click.
I have described it here several years ago and also have fixed it in my temporary build back then - you can find the source in the same link.
Briefly described, when some lines are folded and you double-click on a tag the location opened might not be scrolled into view or (if folded) will not be visible (will remain folded).Good work anyway, thanks again!
-
@michael-vincent
Any idea why I may be getting this? –
-
@vitalii-dovgan said in TagsView is back! :):
Any idea why I may be getting this? –
Premature delete? Try again now …
Cheers.
-
Next iteration :)
https://sourceforge.net/projects/tagsview/files/TagsView (dev builds)/
TagsView_dll_dev_220515.zipThe most interesting changes:
- using in-memory “cache” of tags to invoke ctags only when necessary
- new setting “Esc sets the focus to Editor”
-
@michael-vincent said in TagsView is back! :):
@vitalii-dovgan said in TagsView is back! :):
Any idea why I may be getting this? –
Premature delete? Try again now …
@Vitalii-Dovgan I’ve been compiling and using your incremental commits and so far so good. I see the “context menu” one, but not sure what that was supposed to do - I don’t see a right-click context menu when trying.
In any case, I think you may have extracted what ever little bit of my minor updates that could possibly be useful. Any objections to me deleting my https://github.com/vinsworldcom/nppTagsView repo?
Cheers.
-
@michael-vincent
The “context menu, part 1” was incomplete, I was going to finish it in the “part 2”. However, I noticed some stability issues together with some ideas of refactoring and decided these were more important :)
I think I’ll complete these things and upload a new build next week. Anyway, the plugin becomes better and better, so most likely the official version 0.5 will be released in June. -
@michael-vincent
If you don’t need your repo, feel free to delete it.