A search box for quick navigation in maps. It filters the nodes on-the-fly as the user types the search terms, and allows to jump to one of the results.
This Freeplane add-on provides an easy and quick way to search for nodes in Freeplane maps. Press Jumper keyboard shortcut, type some text snippets, and you will instantly see all the nodes (or branches !) that contain them in the Jumper window. Select one of these nodes to select it in the map.
:bell: I will really appreciate any feedback. They will help to keep me motivated to improve or maintain the add-on.
Do you use it ? Just let me know :smile:. You can write to me in this github thread.
Do you feel that something may be improved ? Have you found something that do not seem to work as expected ? Tell me ! Open a new issue to report errors and problems, to suggest development ideas or ask for new features.:bell: Jumper doesn't modify your maps, you can use it without fear of data loss.
To start searching with Jumper, you usually run it with a keyboard shortcut. This is better because Jumper is designed to be used with the keyboard. The default keyboard shortcut is Ctrl+Shift+J
. However, you can run Jumper with the menu Edit > Find > Jumper
.
During the installation process, you can refuse to assign Ctrl+Shift+J
to Jumper and choose another one.
When the jumper dialog pop up, just start typing the text you're looking for. Select a node in the results list with the Up
and Down
keyboard arrows and press Enter
to jump to this node.
Jumper has got many options that control where it searches, how it searches, and how it displays the results. Click the question mark icon to open the usage instructions.
First, Jumper require some permissions to works.
Open the Freeplane preferences (menu Tools > Preferences
), go to the tab Plugins
, section Scripting
, then:
Jumper need the file permissions because it save its settings in the Freeplane user directory. The name of the file is lilive_jumper.json
.
Jumper do not modify your maps, there is no risk to loose informations.
Download jumper-vX.X.X.addon.mm
from the last release
Open this file with Freeplane and follow the instructions
The installer propose you to use the keyboard shortcut Ctrl+Shift+J
to start Jumper. If you already use this shortcut for another thing, you are asked if you want to use it for Jumper. If you answer "no" you are asked for another shortcut you want instead.
Restart Freeplane
You can now use Jumper.
If you want to build the add-on installation file jumper-vX.X.X.addon.mm
yourself, you have to build the library before to package the addon.
build.gradle
with a text editor and modify the paths in repositories.dirs[]
to point to your Freeplane installationgradle build
will create the file lib/bookmarks.jarNow you can open jumper.mm
with Freeplane and package the addon with Tools > Developer Tools > Package add-on for publication. This will create the file jumper-vX.X.X.addon.mm
. Open this file with Freeplane to install the add-on.
Legend:
[ ]
= To do
[?]
= To do, but is it a good idea ?
[n]
= (n is a number) To do, lower number means higher priority
[1]
Select current node in results (for search continuation)
[1]
Check search gif installation
[1]
Check cache process when options change
[1]
Ensure threads consistency. Are they problems between main thread and swing thread ?
I use new SwingBuilder().dialog
to create the GUI, but I read here that this not do the work in the EDT. I may use [new SwingBuilder().edt
](new SwingBuilder().edt) instead.
[1]
fix: Search in descendants do not works when multiples nodes are selected
[1]
Keep GUI in RAM
[1]
Improve performances. There are problems with very big maps. Ideas:
[1]
Add an option for the maximum results number (WIP: see numResultsMax in SearchEngine and numMaxResults in DisplayResultsSettings)
[1]
Compatibility with new Freeplane feature Jump In / Jump Out
[1]
Improve truncation method: better use of space when displaying the results
[1]
Do not modify the Freeplane locations history, except by adding the selected node in the search results (currently Jumper modify this history when the user browse the results list). This way, it will be always possible to jump back to the previous node with one Freeplane > Navigate > Go backward
command.
[1]
Update code comments
[1]
Mouse: click a result to see him (like up/dwn arrows), double click to select it and close Jumper. See #15. Add an option to activate this behavior (selected by default). Add a tooltip that explain this behavior.
[2]
Allow to explore hierarchy, while browsing results, with the left and right keys
[2]
Option to ignore diacritics (accents)
[3]
Option to switch to spotlight view when Jumper start
[ ]
Warn when restrictives options are on (transversal with no clones, beginning of text)
[ ]
Interactive tips. For example a warning when transversal search is checked, but keep only one clone is also checked
[ ]
Option to search entire words only, or only at the beginning of the words
[ ]
Quotes to find exact phrase when not using regular expressions
[ ]
A way to return to the node that was selected before Jumper start. This happens if the user close the search without selecting any result. But what if he want to reach some result, than go back afterward ? Possible solution: a jump history that store the node selected at the time Jumper is started. Display this history in the result list ?
[?]
Search within a branch that starts at a given node ID. Maintain a list of previous/most used ID. Or a feature to select a bookmark from the Bookmarks add-on.
[?]
Modeless window dialog
[?]
Is this still an issue ?
[?]
Option to search under the anchor link node ? Or provide an option to remember the currently selected node as root for the later searches ?
[?]
Option to order results by level
[?]
Option to not search before N characters are typed
[?]
Tags facilities.
[?]
Allow to search only in nodes with the same style than the currently selected node. Or provide a style selector.
[?]
Use a search library (ElasticSearch for example) to improve performances. This seems really interesting, but a lot of work.
[?]
A new menu entry "Search similar nodes" that will call Jumper with the search field set to the text of the currently selected node
[?]
A new menu entry "Resume last search" that will call Jumper with the previous search terms and that will select the last selected node in the results list