Learn about our RFC process, Open RFC meetings & more.Join in the discussion! »

@tommoor/electron-text-substitutions

1.4.18 • Public • Published

electron-text-substitutions

Are you…

  • Using Electron?
  • Making a Mac app?
  • And want it to respect your macOS text substitutions?

Then this is ✨ FOR YOU.

Install

npm i electron-text-substitutions --save

Electron ≥v1.2.2 is required for this to work.

Use

import performTextSubstitution from 'electron-text-substitutions';
 
let input = document.getElementById('my-input');
performTextSubstitution(input);

We use the system-preferences API to get the user's text substitutions. If you have smart quotes or dashes enabled, we'll handle that too.

Change notifications

To receive text preference change notifications, you'll need to call an additional method, that only works in the main process. This should be called before any renderer starts using text substitutions.

import {listenForPreferenceChanges} from 'electron-text-substitutions';
listenForPreferenceChanges();

API

Renderer Process

/**
 * Adds an `input` event listener to the given element (an <input> or
 * <textarea>) that will substitute text based on the user's replacements in
 * `NSUserDefaults`, as well as smart quotes and dashes.
 *
 * @param  {EventTarget} element  The DOM node to listen to; should fire the `input` event
 * @return {Disposable}           A `Disposable` that will clean up everything this method did
 */
performTextSubstitution(element);

Main Process

/**
 * Subscribes to text preference changed notifications and notifies listeners
 * in renderer processes. This method must be called from the main process, and
 * should be called before any renderer process calls `performTextSubstitution`.
 *
 * @return {Disposable}  A `Disposable` that will clean up everything this method did
 */
listenForPreferenceChanges() {

Install

npm i @tommoor/electron-text-substitutions

DownloadsWeekly Downloads

2

Version

1.4.18

License

MIT

Unpacked Size

46 kB

Total Files

17

Last publish

Collaborators

  • avatar