NavigateTo - navigate between files(tabs) quickly like a Ninja :D



  • Hi everyone,

    I want to present you open source plugin for Notepad++. It is NavigateTo
    This plugin is something like NavigateTo in Visual Studio but it is more simple. It allows you to quickly search and navigate between opened files(tabs)

    You can open plugin form under the “Plugins > Navigate To ” menu in Notepad++ or use the keyboard shortcut Ctrl +COMMA to bring up the “Navigate To” dialog and then search by filename(path) and press Enter to navigate to opened file.

    I want to continue developing this plugin and transfer all functionality but I need your feedback.
    Let’s make Notepad++ better, together!

    I hope you will enjoy it. Thanks :)



  • Hello, young-developer,

    What to say ? Simple and neat ! Your plugin does only one thing but it does it, perfectly well ! Brilliant :-))

    • The choice of the Ctrl + , shortcut is pertinent, as it does not interfere with the usual N++ shortcuts

    • One can navigate, through the list of files, of the current N++ session, with the usual keys Origin, End, Page up, Page Down, as well as the four keys Left, Right, Up and Down

    • After entering any character, a hit on the BackSpace key, to get an empty zone, displays the complete list of files of the current session

    • If, after entering a string, you get only ONE result, we just have to type the Enter key, in order to move to that file

    • Your plugin is easily stopped with, either, the ESC key or the Alt + F4 shortcut

    • When you recall your plugin, it, logically, displays the last search done, with the focus to, eventually, change it

    • I’ve, already, noticed some tricks ! As the plugin displays the full path of each file, then typing :

      • A colon ( : ) displays all the files, previously saved, different from any new # tab

      • A w letter, followed by a space character displays, generally, all the new # tabs, created by N++


    I just noticed a small bug, relative to the New # tabs !

    • Let’s suppose that you do not have any new # tab, in your current session. Despite of that fact, the list of opened files contains a new 1 entry, which, of course, cannot be reached !

    • Now, open three new tabs, hitting three times, on the Ctrl + N shortcut

    • When you recall your plugin, with the Ctrl+ , shortcut, the list is not automatically updated. However, typing any character, followed by a hit on the Backspace key, updates this list, by adding these three new tabs :-)

    • Now, you notice that you have two entries new 1, one entry new 2 and one entry new 3

    • If you double-click on the file new 2 or new 3, it’s OK : you reach the appropriate new tab . However, if you try to click on any of the two entries new 1, nothing happens :-((


    I’m thinking about three improvements :

    • A very simple one : Would it be possible to close your Navigate To window, just after selecting the wanted file with, either :

      • A left click on the chevron, on right top of the window

      • A double-click, on the selected line

      • A hit on the Enter key, on the selected line

    • A simple one : Would it be possible, in the same way that typing abc displays, ONLY, the files, whose full path contains the string abc, to display, ONLY, the files, whose full path do NOT contain the string abc, with the syntax |abc ? Note that I chose, the Vertical Line ( | ), on purpose, as this character is forbidden in folder and file’s names, by Windows ! I think it should be easy enough to invert the logic of displaying !?

    • A more difficult one ( that could be achieved later ! ) Would it be possible to display columns, with a header line for sorting, like in the N++ dialog Windows > Windows… ? The best would be the four columns : Full path, Name, Extension and Type/Language

    Anyway, these are suggestions, only and I, personally, adopt your plugin, in its present form !

    Best Regards,

    guy038

    P.S. :

    Don’t be so modest ! Add an About entry for information on the author and on this promising plugin ;-))



  • Great and long time needed feature for those of us who have 20+ opened tabs.

    I join guy requests and emphasize:

    • I would like selection with up and down to work without needing to change focus from the text box.
    • The dialog should close itself after selection.
    • The dialog should close itself on losing focus (like clicking outside of it) without doing anything.
    • Adding NP++ blue/red icon to identify modified files may be a small bonus.
    • Since it is kind of a ctrl-tab replacement, the ability to sort according to MRU may be nice.

    Seems that implementation remembers file list between activations and may display files that were already closed. It shouldn’t. Reconstructing list on every activation should be quick enough.

    I humbly suggest for you to take a look at my TagLEET. You may opt for a similar user interface.



  • New pre-release version is availiable https://github.com/young-developer/nppNavigateTo/releases/tag/1.4.2.
    Feel free to contact me or write your feedback here.

    Special thanks @gstavi and @guy038 for inspiration.

    P.S. All features described above will be implemented as soon as possible.



  • @young-developer
    Nice improvement. For the record, I am testing over wine.

    Dialog style should prevent resizing since there is no logic to support resize.

    There is some inconsistency. Upon re entry.

    • If exiting dialog with ‘escape’ then on re entry filter text is displayed in the text box. If exiting with ‘enter’ then on re-entry filter text is not displayed although file list reflects it. Usually best practice is that text will be shown and selected so it can easily be discarded or extended.
    • As far as I can tell, upon re entry if previous file list contains a file that was since closed then filter text is discarded. Not sure why.

    Optional improvement could be to remove prefix from path which is common to all selected files. If all my opened files are from
    c:\users\myname\work\very\long\path\to\my\project\src
    then it would be easier on the eye to cut common prefix, perhaps leaving the last common directory.

    It would be great if filter text could be highlighted in the list but I guess it is a difficult request.
    For me it was confusing that filter text is applied to both filename and path. It took me time to understand why a file without the filter was selected until I realized the filter is hidden within the path. I would prefer filtering to be according to filename only but I guess not everybody will agree with me.

    Again, great job.
    Keep going.



  • Hi, young-developer,

    I’m a bit late but I, finally, tested ( and still use ! ) your second version !

    • Closing the NavigateTo window, once you choose the file to be in the foreground, is, indeed, a great improvement :-))

    • Updating the Files list, on opening a file from the Recent files list OR closing or renaming a tab, is a “plus”, too !

    • The new displaying, of the Files list, with columns and the possibility to sort them, in each direction, makes navigation and search quite easy

    • Adding an temporary history of the different entries, in the Text box, may help us to quickly select a file

    • The ability to switch to the Files list, from the Text box, with the Down arrow or Up arrow keys, is a handy feature, too ! ( Just hit the Tab key to switch back to the Text box )


    Now, after compliments, some points which could be improved :-( Note that some of them are identical to gstavi remarks !

    • The resizing of the plugin’s window does not seem useful and should be forbidden ( minor bug )

    • If, when the NavigateTo plugin is started and its windows is in the background, you open a new tab and save it with a name, the Files list is not updated, when you switch to NavigateTo, again ( minor bug )

    • Let’s suppose you previously typed some characters, in the Text field ( => the Files list was, then, automatically updated ). and that you hit the Escape button, clicked on the red cross button OR hit the ALT + F4 shortcut, in order to close NavigateTo. In that case, on starting, again, the NavigatTo plugin, the Text field contains the previous entered characters and the Files list contains the entries, according to the characters of the Text box. Correct !

    • Now, let’s suppose that you switched to an other file, by left-clicking on a entry of the files list OR on the “chevron” OR, also, on hitting the Enter key. In that case, on starting the NavigateTo plugin, later on, the previous Files list is still displayed but the Text field does NOT contain, anymore, the associated characters for such that list. The Text box contents should be present, in order to, eventually, extend the text !

    • The problem of the New #n tab, discussed in my previous post, has not been solved yet !

    • What about my previous suggestion to use the syntax |abc for listing all the files, whose path does NOT contain the string abc. This should not be very difficult, as you just have to invert the logic !

    • Highlighting the Files list, according to the Text box, would be nice, too, but may be difficult enough to code !

    • As gstavi, I think that we should choose between 2 or 3 options, concerning the match of the Text field characters :

      • 1) The range is the complete path of any file ( the ABSOLUTE path ), as it is, presently !

      • 2) The range is any file NAME, only

      • 3) The range is, either, the PARENT directory of any file OR the file NAME, only

    In case, you would prefer to keep an unique behaviour, I think, like gstavi, that the option 2) should be the best one !

    • But, contrary, to what he said :

    As far as I can tell, upon re entry if previous file list contains a file that was since closed then filter text is discarded.

    I just noticed, after externally deleting a file, that the NavigateTo plugin, correctly, updated the Files list and kept the Text box filled with the previous characters !

    Great plugin, anyway ! I’m using it, every day :-))

    Cheers,

    guy038



  • Is 64-bit plugin planned ?



  • @gstavi , @guy038 I will implement enchantments as you described but some features(ex. search by: column Name, Path) I want to move to Options form and then everyone could choose more suitable option. Thank you for feedback.

    @guy038, I could implement logic inversion but mb it will be more suitable to add regex? What do you think about this?

    @NN , Yes but a little bit later.



  • @NN
    64 bit version was added.
    You could download it here - https://github.com/young-developer/nppNavigateTo/releases/tag/1.4.2



  • Hi, Nice plugin - Thanks.
    I may be missing something, or maybe we just need some refreshing… :) but…
    There is already a plugin that offers this behavior and does it really well. The plugin is called File Switcher, by Dave Brotherstone.
    The plugin works great and has many options.
    I see one thing that your plugin offers over his and that is the display of the file path.
    Is there anything else?
    (I don’t mean to discourage in any way, just pointing it out and wondering maybe yours is coming to offer something else)

    In any case, it would be nice to see this be actively developed. Maybe you can look at that plugin for some ideas as well.

    Regards,
    David



  • @DaveyD ,Yes, You are right it is the same but I can get some ideas from this plugin(File Switcher) and add new one as well. Right now my plugin is simple and File Switcher even has more options but there is a lot of ideas to improve it.
    Thank you.



  • @young-developer - sounds great - I’m all for it.
    Good Luck - looking forward to future releases



  • Hi @gstavi , @guy038 , @DaveyD

    New version 1.8.1 is available. You could download it here - https://github.com/young-developer/nppNavigateTo/releases
    I hope you enjoy new features and enhancements.

    P.S. @NN— x64 version is available as well :)



  • The GUI is very impressive.
    The ‘About’ box still shows old version number.

    BIG Problem: It only show files from one pane. I realize this could be a ‘feature’ but as far as I can tell it always use the files from the left pane regardless of where it was launched from. I really need it to show filesfrom both panes to be usable for me. By the way a cool feature would be once you found a file to have 2 shortcuts (e.g. ctrl->right and ctrl->left) to select the pane to which the document will be moved.

    It is nice that it can be resized. Add a minimal size so it cannot be resized to “nothing”.



  • @gstavi , Hm interesting functionality(ctrl+right, ctrl+left). I try to implement it and load files from both panes.



  • @gstavi , Fixed :) - https://github.com/young-developer/nppNavigateTo/releases/tag/1.8.2

    P.S. New functionality I am going to implement little bit later.



  • Hello @young-developer,

    I tested your fourth version ( v1.8.2 ) ansd here are my first impressions :

    First of all, young-developper, many thanks for the main improved features :

    • The highlighting of characters, according the the filter zone

    • The “negative” search, which find all the files, whose filter’s characters are NOT found in the their absolute path, if the special symbol
      ( | ) is added at the very beginning of the filter

    • The closing the dialog, on losing the focus.

    • The two colours, between odd and even rows of the list

    • The fixing of the “New #n” tab bug

    • The constant updating of the list of files, according to the ones which has, just, been created, opened from the Recent Files List, renamed or closed. Quite nice, indeed !


    Now, to my mind, four bugs, by decreasing priority, which should be easily fixed :

    • If the name of a file contains accentuated characters ( as é, à or else ) it’s impossible to move to this file, either :

      • By double-clicking, on the selected line

      • By hitting the Enter key, on the selected line

    Note that if you type, for instance, the é accentuated character in the filter zone, it does find all the files, which contain the é lowercase letter, in their absolute path

    • Presently, your filter is non sensitive to case. I do think it’s the best behaviour. However, I noticed that :

      • If the Filter zone contains the unique accentuated letter É, only files containing a É uppercase letter are listed

      • If the Filter zone contains the unique accentuated letter é, only files containing a é lowercase letter are listed

    • The list of files is highlighted, only if ALL the letters, in the filter zone, are lowercase ! As soon as a capital letter is inserted, the highlighting disappears ? However, the list of the files is still correct :-))

    • As @gstavi said, the Navigate To dialog should have a minimal size ! I’m thinking about 10 cm wide and 5 cm height :-)). Does this idea seems sensible to you ?


    Two remarks :

    • I noticed that, only, the first occurrence of a string, in the filter zone is highlighted, in the list. For instance, let’s suppose that the filter contains the single lowercase letter o and that you have a tab, named ooooooh.txt
      Your plugin just highlight the first letter o of the file name. I first thought it was a ( small ) bug, but, finally, it minimizes the highlighting and make the list more easy to read !

    • I’ve just realized that your list is a complete “lower-case” list, even if some files contain capital letters, in the name/path. I suppose you did that way, on purpose ! However, to my mind, a name as, for instance, To Do List.txt seems easier to understand than displaying the name to do list.txt ! What do you think about that point ?


    One request :

    I’m wondering about the possibility of displaying a new column, which would indicate the view, to whom each opened tab belongs. ( I mean : View 0 / 1 OR View 1 / 2 ) It would be an additional info and we could sort the list by View. Of course, young-developer, it’s just a suggestion !


    Globally, your plugin just makes my N++ work more efficient, every day !! In my opinion, adding many features, to your plugin, could not be, finally, the best solution. You give us a neat and quick tool. It’s the most important thing to remember ! Anyway, it’s up to you, of course !

    Best Regards,

    guy038

    P.S. :

    I’ve just unckecked the Multi-line option, in the Preferences > General > Tab Bar zone. Indeed, I don’t need the multi-lines tab feature, anymore, with the Navigate To plugin :-)) Now, even with more than 100 tabs opened, my editor window remains really larger than before and any opened file is easy to reach !!





  • Hello, @young-developer,

    I was impatient to test your your new v1.12.2 version ! And sorry, for this later report of my testing !

    First, if you right-click on the NavigateTo.dll file, and choose the Properties option, in the context menu, the file version, and the product version, seem, both, erroneous ( v1.10.2 ) ! We’re beginning slowly, aren’t we :-))


    As before, this new bunch of features, added in this current version, is quite impressive :

    • The possibility to get the N++ context tabs menu, directly, from your plugin window, with the immediate activation of the selected file ( How did you do that !? )

    • The preview functionality, by selecting the right tab, with the two shortcuts Shift + Up arrow and Shift + Down arrow, is really easy to use !

    • The new View column, which allows to sort by view, the current list of files

    • The file status, of each file, given by the colouring of the line text ( Black, Red or Grey )

    • The minimum size of the plugin window and the number of results, according to the current filter, moved in the windows title


    All the bugs, of the previous version, are fixed :

    • The list of files found, according to the filter text, are, correctly, written, in their exact case

    • Whatever the case of the filter text, all the files, whose name contains the filter text, in any case, are, correctly, listed


    However, there’s still a small bug : clicking on the header, of the new View column, does not sort files by View, but, wrongly, by the Path column !?

    BTW, I noticed that if you, simply, type the digit 1 or 2, in the filter zone, it does not select all the files of View 1 or View 2. I do think that it’s the correct behaviour, as we’ll still have the possibility to sort by View, once the secondary bug, above, fixed !


    Now, @young-developer, to my mind, two things may be improved :

    • Firstly, the present line colouring is not very easy to distinguish. I’m thinking about two other solutions :

      • The use of blue, red and grey bookmarks

      • An other one-character column, with the file status ( S aved, U nsaved, R ead-Only ), which allows further sorting

    • Secondly, I think that the filter should search, by default, on the names of files, exclusively ! In that case, it would be necessary, either :

      • To add a menu option to allow the present way of filtering, both on file name and on the absolute pathname

      • To allow the use, for instance, of the / character, at beginning of the filter zone, to indicate this second way of searching

    Of course, there are suggestions, only. Anyway, it’s up to you !


    Good luck for the few steps to the final mature version of your excellent plugin :-))

    Best Regards,

    guy038



  • Small isues:

    1. Key shortcuts don’t work, you cannot do Ctrl+A and delete
    2. Page down selects an item unlike Up/Down which just travel in the list.
    3. No simple key to reset selection like Esc or smth like that
    4. Once you written anything next Ctrl+, preserves your text , which nice but mostly useless.

    Thanks.


Log in to reply