Highlight selected word

Join the chat at https://gitter.im/jcb91/jupyter_highlight_selected_word GitHub issues

This nbextension highlights all instances of the selected word in either the current cell’s editor, or in all cells in the notebook. It is based on the CodeMirror addon Match Highlighter, but now uses its own codebase in order to permit matching across multiple editors.

There are a few configurable options, all of which sit under the config key highlight_selected_word in the notebook config section.

Options

Options are stored in the notebook section of the nbconfig. The easiest way to configure these is using the jupyter_nbextensions_configurator serverextension, but you can also configure them directly with a few lines of python.

The available options are:

  • highlight_selected_word.highlight_across_all_cells - if true, (default) highlight matches across all cells. If false, only matches within the currently selected cell will be highlighted.
  • highlight_selected_word.code_cells_only - Only apply highlights to editors for Code cells, not, for example, Markdown or Raw cells
  • highlight_selected_word.highlight_color - Color used to highlight matching words in the focused (active) cell
  • highlight_selected_word.highlight_color_blurred - Color used to highlight matching words in blurred (non-active) cells
  • highlight_selected_word.delay - Wait time (in milliseconds) before highlighting the matches
  • highlight_selected_word.words_only - If true, only highlight matches if the selected text is a word
  • highlight_selected_word.highlight_only_whole_words - Only highlight matches which are surrounded by non-word characters. This will use the token highlight_selected_word.show_token to identify word characters, if it’s set, otherwise the regular expression [\w$] will be used.
  • highlight_selected_word.show_token - Token (regex) to identify word characters, used to determine what to highlight when nothing is selected. If blank, nothing is highlighted when nothing is selected. This regex is also used to determine word boundaries for highlight_selected_word.highlight_only_whole_words.
  • highlight_selected_word.min_chars - Minimum number of characters that must be selected for the highlighting behavior to occur
  • highlight_selected_word.use_toggle_hotkey - Bind the highlight_selected_word.toggle action to a hotkey. Defaults to false.
  • highlight_selected_word.toggle_hotkey - Which hotkey to bind to the highlight_selected_word.toggle action (if set to use, see item above). Defaults to alt-h

For example, to set the delay to half a second, and limit highlighting to code cells, we can use the following python snippet:

from notebook.services.config import ConfigManager
cm = ConfigManager()
cm.update('notebook', {'highlight_selected_word': {
    'delay': 500,
    'code_cells_only': True,
}})

Feedback

If you have any feedback, or have any problems, please let me know by opening an issue at the project’s github repository.

Thanks!

Josh.