Create custom keyboard shortcuts to expand and replace text as you type!
Ever get tired of typing out long email addresses, phrases you frequently use, or just looking to save keystrokes as you type? Well fear not! Auto Text Expander is here to solve that -- kinda like TextExpander for Mac or AutoText for Windows, but installed and synced across Chrome browsers! Great for Chromebooks.
Still a work in progress, so constructive feedback and code contributions are welcome (https://github.com/carlinyuen/ChromeAutoTextExpander).
** FEATURES **
- Keystroke checking is entirely local and nothing is sent to any servers for tracking (check my code!).
- Customizable list of expander keywords to expand, which are synced across Chrome browsers.
- Support for regular text fields, and multiline expanded text / html can be injected into content-editable divs.
- Limited support for advanced web apps -- see below for the list -- subject to breaking if they change their sites. Please email me or provide a feature request for more!
- Ability to locally backup your shortcuts and restore them from backup (per signed-in browser), and you can import shortcuts in JSON yourself.
- Macros for today's date with customizable format using Moment.js (date/time will be based on your browser/computer's clock).
- Macro for inserting clipboard paste content into a shortcut.
- Special tag for cursor location after expansion into contenteditable divs.
- Icon next to the URL bar to let you easily access and edit your shortcuts / expansions.
** LIMITATIONS **
- Some sites intercept or block the script, or use frameworks that interfere with the extension, so your shortcuts won't work on those sites, see below for list. Email me if you find more!
- The new HTML5 input fields of type "email" and "number" don't allow caret/cursor manipulation, so replacements are done at the end of the text instead.
- Some sites also use iframes that are on a different security protocol (http vs https, like say an embedded Google Docs form, Google Hangouts), and that will prevent the script from working as well.
- Chrome has storage limits, so expansions over a certain size or quantity will fail: https://developer.chrome.com/extensions/storage#properties
- Google Chrome does not allow this extension to work in the URL address bar, or pages of other Chrome extensions / apps.
- If you sign out of your browser, YOU WILL LOSE YOUR LOCAL BACKUP. This backup is only done in Chrome's localstorage layer: for security, I cannot initiate a download of the JSON. Please save a copy of your shortcuts from the Import/Export dialog in the Options page!
** KNOWN COMPATIBLE WEB APPS **
- Confluence (Atlassian)
- Facebook Chat
- Gmail / Google Inbox
- Google Translate
** KNOWN INCOMPATIBLE WEB APPS **
- Chrome Web Store
- Facebook Comments
- Google Docs
- Google Hangouts
** TRADEMARK & BRANDING NOTICE **
This is not a Google sponsored product. Google Chrome is a trademark of Google Inc. Use of this trademark is subject to Google permissions. Popchrom is a separate and similar product, and some of Popchrom's open sourced code was used in previous versions of Auto Text Expander.
** VERSION HISTORY **
- Replacing console.log() statements with debugLog() to reduce developer console spam.
- Fix for Salesforce support (was cutting short attaching listeners to new iframes).
- Added new Textarea option for demoing shortcuts.
- Slight optimization to attaching listeners by not running regex over all special cases.
- Added support for Google Inbox
- Added support for Google Translate
- Added support for MailChimp
- Added support for Confluence (Atlassian)
- Replacing annoying exception messages in console when script does not work with iframes
- Removing lots of jQuery dependencies to keep things lean and speed things up
- Added checks into expander code to prevent expansion and warn user to refresh browser if shortcut database version is different
- Added shortcut recovery in case of shortcuts disappearing for some reason
- Adding localization for dates based off your browser locale (+160kb for locales)
- Rewrote logic for inserting into editable iframes and divs, more accurate and reliable
- Allowing HTML expansions for single line expansions too
- Added demo area on the options page where you can test your shortcuts live!
- Adding ability to convert what is in the demo area into HTML, so it doubles as a place where you can copy-paste HTML content and have it translated to expansion format.
- Adding ability to determine cursor location when expanding into contenteditable divs by including a special tag in the expansion, instructions in Useful Tips section of options.
- Revamped options page!
- Showing storage quotas
- Added custom setting for shortcut recognition timeout
- Fix for cursor positioning for editable iframes (Outlook, Evernote)
- Basecamp support
- Added better migration error handling of shortcuts database
- Migration to new storage model for shortcuts (please report any issues)
- Warning when leaving options page with unsaved shortcuts
- Lots of refactoring of code
- Lots of UI / UX fixes
- Moving page action to browser action (persistent options link next to URL bar instead), page action was too inconsistent anyway
- Hotfix for broken inline Gmail message editor
- Attempted integration with Facebook comments, but no dice. ReactJS framework doesn't play nice with ATE. :o(
- Added fix for Gmail's new message popup
- Added support for Outlook
- Added fix for import/export popup height and scrolling for long content.
- Added example for clipboard paste.
- Workarounds for input[type=email] and input[type=number].
- Added manual import/export of shortcuts through raw JSON.
- Added clipboard macro to paste contents into expansion using %clip%.
- Added better error handling, and listener adding / page action showing based off PopChrom's source.
- Added convenience Refresh/Add/Save buttons to the bottom of the shortcut list for large lists.
- Added link for feature requests to separate from reviews.
- Added support for Evernote Web upon request.
- Fixed bug where hitting enter in gchat field will not clear buffer so immediate shortcut won't work.
- Added reinjection of content scripts on upgrade and fresh install so you don't have to refresh your tabs.
- Added friendly notification that lets you know when the extension has been updated and encourages you to refresh the page just in case.
- Fixed issue where if you type in one field and then jump to another field really fast, shortcuts won't work for a moment.
- Set order of shortcuts in options to alphabetical.
- Changed keyboard navigation in options to be more standard and less buggy.
- Adding a shortcut adds to top of list instead of bottom to prevent unnecessary scrolling.
- On save, shortcuts that saved are now properly highlighted instead of staying as faded until you hit refresh.
- Switched out alert/confirm dialogs to custom dialogs so it would work in popup outside of options page.
- Added scroll to top function for people with lots of shortcuts.
- Fixed bug with shortcuts resetting.
- Added local backup and restore functionality.
- Cleaned up options screen a little more and made it a little more intuitive.
- Cleaning up removal of shortcuts.
- Wrapped in logic so users transitioning from old accounts don't see new shortcuts.
- Fixed bug where hitting the tab key doesn't clear the buffer.
- Updated screenshots, options page descriptions.
- Opens options page and saves examples into user's shortcuts on first install to avoid confusion for first-timers.
- Thanks to Jake (https://github.com/jstrength) for his contributions.
- Fixed bug where newlines were getting added to character buffer and messing up shortcuts.
- HTML can now be added to content-editable divs (like in Gmail)! Try it: add <strong></strong> around things you want bolded in expanded text.
- Rearchitected storage of shortcuts to give user a lot more space.
- Added error messages for whenever a shortcut / expansion goes over Chrome API limits.
- Cleaned up options page some more.
- Added autosizing on expansion text fields so we don't have to scroll so much.
- Adding listeners to all child iframes in document if possible.
- Added macros for today's date! Check it out in the options.
- Cleaning up and fixes for options popup.
- Stopped extension from cutting off Gmail keyboard shortcuts.
- Improved and more consistent handling in contenteditable divs.
- Cleaned up and optimized for better performance.
- Removed annoying refresh on options popup when you hit Save.
- Fixed issue with onclick callbacks not called in options popup due to manifest v2 defined by G.Chrome.
- More useful / practical examples as defaults.
- Better overall compatibility with other sites.
- Fixed css for feedback link
- Added feedback link in options page.
- Added multiline support.
- Made improvements to the options page / popup.
- Added examples if on first installation.
- Cleaning up code, took out icon in address bar for Google Docs.
- Optimizations, better error handling, and attempt to get Google Docs working.
- Fix for Gmail multiple lines.
- Fix for address bar popup saving.
- Fix for Gmail & Facebook div use.
- Adding better options support.
- First build!