
Lintalist allows you to store and (incrementally) search and edit texts in bundles and paste a selected text in your active program. The text can be interactive, for example you can automatically insert the current time and date, ask for (basic) user input or make a selection from a list etc and finally it can also run a script. You can use keyboard shortcuts or abbreviations to paste the text (or run the script) without opening the search window.
You can extend Lintalist by writing your own plugins. Lintalist is open source and developed in AutoHotkey, an easy to learn scripting language for Windows.
[WinXP(sp3)/Vista/7/8]
As of LintaList v1.1 several types of formatted text are supported in Snippets.
doc rev. 20161030
Introduction
As noted above Lintalist allows you to store and (incrementally) search and edit texts in bundles and paste a selected text in your active program.
The texts, shortcuts, abbreviations and scripts are called snippets and they are stored in a so called bundle. A bundle is a simple text file, making it easy to understand, maintain and exchange bundles between users.
The bundles are context sensitive: based on the (partial) window title of the currently active program it will try to load one or more matching bundles, this will allow you to use the same shortcuts and shorthands in different applications and files making it even more flexible. You don't have to use or remember any shortcuts or shorthands because you can search your bundles at any time by opening the search window. Think of it as text-expander which will save you countless keystrokes and has a number of additional features: hotkeys, full text search, plugins and scripts.
Some might compare it to the "tag list" or "clip libraries" you might find in many text editors.
Bundles and Snippets can be edited using the Lintalist Bundle & Snippet Editors OR in your preferred text editor.
For example: If you are editing a HTML file, Lintalist could use both a HTML and CSS bundle, but if you are editing a CSS file only the CSS Bundle is loaded. So, in your HTML file the shortcut ctrl+b can insert <strong></strong> at the caret position (or wrap the tag around the selected text) and while editing your CSS file the shortcut ctrl+b can insert font-style: bold; at the caret position. If a shortcut is found in multiple active bundles a pop-up-menu will appear so you can choose which snippet & bundle you prefer.
Note: although Lintalist can expand abbreviations it is not intended to replicate or replace the native AutoHotkey Hotstrings features, see autohotkey.com/docs/Hotstrings.htm for an introduction and description of all the options.
If you find this inconvenient, edit one of the snippets and change the shortcut or shorthand.
This program is written in AutoHotkey, a free, open-source (scripting) utility for Windows. Learn more at autohotkey.com.
Lintalist is a portable application. It stores all settings and bundles in the folder the program resides in.
When you run it for the very first time it does ask if you want a shortcut on your desktop or would like to automatically start it with Windows but you don't have to do that. You can run the program from a USB drive or dropbox account for example.
If you want to take your copy of Lintalist with you all you have to do is copy the Lintalist folder. Same goes for making a backup.
Full Feature List:
- Full text snippet search using four different search modes
- Context sensitive bundles
- Abbreviations for your favourite snippets (Hotstrings in AutoHotkey terminology)
- Shortcuts for your favourite snippets (Hotkeys in AutoHotkey terminology)
- Run (AutoHotkey-)scripts
- Local variables (user specific)
- Bundle converters (simple lists, CSV, UltraEdit, Texter)
- Portable application
- Plugins are easy to develop, included by default are:
- return caret to position in text
- insert date & time incl. dates and time math
- calendar
- user input
- select item from a list
- use clipboard
- use selected text
- counters (can be created on the fly)
- chain snippets (insert the text of one snippet into another)
- insert text from file
- formatted text and images using HTML, Markdown, RTF and Image
Installing Lintalist
Installing Lintalist is easy, just download the ZIP file and unpack it in a folder of your preference. Make sure you have write permissions for the destination folder (i.e. don't unpack into a folder like "C:\Program Files"). It is probably easiest to work with if you place it in your "My Documents" folder as this will make it easier for Lintalist to update your bundles while you are using them. Lintalist is fully portable and doesn't write any settings to the registry, so you can run it directly from a USB flash drive or DropBox folder for example.
If you are already an AutoHotkey user and have it installed, it is recommended to run Lintalist.ahk, this will ensure you will be running Lintalist with your preferred version of AutoHotkey. If you don't have AutoHotkey installed you can start Lintalist.exe.
Notes:
- Lintalist.exe: A renamed AutoHotkey.exe (v1.1.24.02 32-bit Unicode, See https://autohotkey.com/ and/or https://autohotkey.com/download/)
- Lintalist.ahk: The actual (main) source code of the program (see https://github.com/lintalist/lintalist)
Normal use: Starting Lintalist and searching for a Snippet
If Lintalist is running you can activate the search window by pressing CAPSLOCK, the default hotkey. You can change this hotkey via the configuration menu accessible via the tray menu by right clicking on the Lintalist icon
).
Based on the active program title, one or more bundles will be loaded into the search window so you can start searching:
Lintalist search window:
1: Type query.
2: Menu + search options.
3: Result list with Part 1, Part 2, Key(board shortcut), Short(hand, abbreviation). Columns are dynamic, if part 2, key or short are not present in the loaded bundle(s) they will not be displayed.
4: Preview of top most or selected snippet text. In statusbar: loaded bundle(s) and hits / number of snippets.
If you press the same hotkey again while the Lintalist Search window is active it will toggle between the Wide & Narrow view. You can set the width and height of both views via the configuration menu.
While you type, the number of results will decrease (called incremental search or quick filter). A small icon indicates if it is purely a text snippet
or if it actually will run a script
. You can turn the icons on and off via the configuration menu (ShowIcons setting), you can also influence the order of the results by setting various sorting options (see SortByUsage and ColumnSort settings).
After pressing ENTER on a selected entry from the results list, by default the text (Part1) is pasted in the active program (note the explanation above). SHIFT+ENTER and ENTER will use the first item in the results list unless you have selected another item with the arrow keys. Depending on the snippet either a text is pasted OR a script is run (note explanation above).
You can also use the Up, Down, Page Up and Page Down keys to navigate through the list. You can select a different bundle or load all bundles via the Bundle menu. If you choose a bundle from the bundle menu (Alt+b), that bundle will be locked and always remain active until you unlock it (Alt+l).
What happens when you (double) click on an entry in the list is determined by a setting in the configuration menu. (SingleClickSends and DoubleClickSends setting)
Default bundle: there is also a default bundle which is always loaded - unless you lock a specific bundle - that way you always have your generic snippets available in every program.
If you have no need for context sensitive bundles, simply make use of the default bundle and put in all your snippets. In such a case you could also lock the default bundle although there should be no need to do so.
Search options:
You can search for text in your bundles using four different methods:
Method |
Description |
Rglr | Alt+r is Regular or Normal search: the text you type must be found literally
Example:
Typing 'searching text' will find 'searching text' but NOT 'searching for text' |
Fzzy | Alt+z is Fuzzy search: the text you type can be found anywhere making it more
flexible to narrow down the results.
Example:
Typing 'sea tex' will find 'searching text' but ALSO 'searching for text' or 'text about the sea' |
RgEx | Alt+x is Regular Expression search (Perl-compatible, PCRE) so you can search for patterns
Example: se\w*g will find 'searching' 'sewing' etc.
See autohotkey.com/docs/commands/RegExMatch.htm for more information
about using Regular expression for searching [see notes about RgEx search below
for some background info as not ALL Regular Expressions may produce the expected
results] |
Magc | Alt+m is Magic search (QuickSilver like search - experimental)
Example:
Typing 'sax' will find 'searching text' |
Case (in)sensitive search
Use Case
Alt+
c to make your searches case sensitive.
In the area below the search results you will see the preview window of the currently active item in the bundle (Part1 by default but this can be changed via the configuration menu and settings.ini).
The statusbar shows which bundles are loaded and how many items were found out of the total items.
You can control the maximum number of search results and the maximum number of snippets that you can see in the results list.
Which sections of the snippets are searched?
It will search for a match in
Part1,
Part2 and
Shorthand (so not in the Shortcut and not in the Script code). Note that in order to show a more legible text in the results list, Part1 and Part2 are shown differently if they are multi-line texts:
A new line is replaced by
\n and a tab by
\t and it will search
these texts and not the original multi-line (but the original ones will be used when the texts are pasted, once you see it in action couple of times you will get used to it pretty quickly)
RegEx & Case sensitive search
<techtalk> If the
Case check-box is not checked your searches will be case-insensitive. When using the RegEx search method the "i)" option for the regular expression will automatically be inserted before each snippet is searched. This may lead to unexpected results if you pass on other options for your RegEx search.
Example: The case-insensitive RegEx 'se\w*g' it is actually using the following regular expression 'i)se\w*g' while searching. This is done for convenience (otherwise you would have to type i) every time you wanted to do a case-insensitive search (RegEx is by default case sensitive). If you want to pass on extra options it is best to turn Case sensitive ON and add the options you need as described here
autohotkey.com/docs/commands/RegExMatch.htm#Options. This behaviour may change in future version of Lintalist.
</techtalk>
Search letter variations [v1.7+]
Sometimes accented letters are part of the text you are searching for. These can be difficult or slow to type. By adding the variations of these letters to the search string you can search for cafe but still find café. So the 'e' in the query will be translated to searching for 'eéèêḙěĕẽḛẻėëēȩęᶒɇȅếềễểḝḗḕȇẹệæǽǣœᵫ'.
When active all search modes will use a Regular Expression (Regular and Fuzzy)
(De)Activate the setting via the
Lv? checkbox in the Search GUI (
Alt+
v) or the SearchLetterVariations setting in the Configuration menu.
More information in the comments of 'include\LetterVariations.ahk'
Omnisearch (search all bundles)
By default you are only searching in the loaded bundles, you can however search in all bundles using the following methods:
1. Load All Bundles
You can Load all bundles:
- use the tray many, select Load all bundles and bring up the search GUI; or
- bring up the search GUI, bundle menu, first option: Load all bundles
This has the disadvantage that it also sets the Locked state so next time you bring up the search GUI you are searching in all bundles again and you have to unlock it.
2. Omnisearch query
When you start your query with a predefined character (@ by default) Lintalist will search in all bundles independent of the ones that are currently loaded or locked in the search Gui. You can define this character in the settings (OmniChar). If you don't want to use Omnisearch while typing a query simply disable it by erasing the OmniChar in the settings menu.
Query: state -> will find "state" in the currently loaded bundle(s)
Query: @state -> will find "state" in all bundles
3. Omnisearch shortcuts
- While search GUI is active: press
F2 to toggle the Omnisearch.
- If you press
Ctrl+
Capslock the search GUI is opened in Omnisearch mode (tip: use
F2 to toggle). You can define the hotkey in the settings (StartOmniSearchHotkey)
Note: while using option 2 & 3 the text "(All)" will be added to the statusbar (bottom right) to indicate you are using Omnisearch when the results are updated.
Using Shortcuts (Hotkeys)
If the snippet definition includes a shortcut and is part of a currently active bundle you can insert
the text from Part 1 OR
run the script by pressing the hotkey WITHOUT activating the Lintalist search window. Shortcuts are disabled while the Lintalist search window is active.
You can enable / disable the use of Shortcuts via the Tray menu
Using Shorthand (Abbreviations)
If the snippet definition includes a shorthand and is part of a currently active bundle you can insert
the text from Part 1 OR
run the script by typing the abbreviation (= the shorthand) followed by a
Space or
Tab WITHOUT activating the Lintalist search window. Shorthand is disabled while the Lintalist search window is active.
You can enable / disable the use of Shorthands via the Tray menu
Lintalist Keyboard Shortcuts
Apart from the hotkeys defined in bundles, Lintalist has two general sets of hotkeys, one while Lintalist waits in the background and one while the search window is active. Bring up the search window just press
CAPSLOCK (default setting)
Shortcuts while search window is not active
Keys |
Description |
Capslock | Start Searching (Open Lintalist searching window, change via config). If already active you can toggle between Wide and Narrow view. |
Ctrl+Capslock | Start Searching in Omnisearch mode (Open Lintalist searching window, change via config). |
Winkey+z | Start Quick search |
Ctrl+Winkey+q | Quit Lintalist |
Active Lintalist Gui
Keys |
Description |
Esc | Close Search Window |
Enter | Paste Found Text (Part 1) or Run Script *1 |
Shift+Enter | Paste Found Text (Part 2) or Run Script *1 |
Ctrl+Enter | Paste Found Text (Part 1) and DO NOT run script |
Ctrl+Shift+Enter | Paste Found Text (Part 2) and DO NOT run script |
F2 | Omnisearch (toggle) search in all bundles |
F4 | Edit Snippet |
F5 | Copy Snippet and Edit (current bundle) |
F6 | Move Snippet to another bundle |
F7 | Add new Snippet |
F8 | Delete Snippet |
F10 | Bundle properties |
Ctrl+1..5 | 1: Sort Part 1 (toggle)
2: Sort Part 2 (toggle)
3: Sort Shorthand (toggle)
4: Sort Key (toggle)
5: Sort Bundle name (toggle)
The sort will work even the column is not visible - for example if you do not show the Bundle name in the search results (see DisplayBundle) you can still sort it. |
*1 - If Scripts are Paused the script - if any - will not run and text will be sent
- The action for a single- or doubleclick with the left mouse button can be defined in the Configuration menu
(SingleClickSends and DoubleClickSends)
-
Load All Bundles
-
Configuration
-
Reload Bundles
-
Pause Lintalist
-
Pause Shortcut
-
Pause Shorthand
-
Pause Scripts
-
Help
- Exit
Load All Bundles
You can tell Lintalist to simply load all bundles via the Tray menu or Bundle menu (
Alt+
b), these will automatically be locked until you either choose a specific bundle from the Bundle menu OR unlock it (
Alt+
l) in search window).
Reload Bundles
If you have added or removed a new bundle you must reload them all to ensure they are read in memory so they can be searched and new or changed shortcuts and shorthands are correctly updated.
Pause
You can pause Lintalist entirely or pause Shortcuts, Shorthand and Scripts separately. Note: you can also bypass a script with Ctrl-Enter and Ctrl-Shift-Enter, see
Lintalist Keyboard Shortcuts if you select a snippet in the search window.
Configuration
You can either edit the settings.ini file directly with a text editor (like notepad) or use the more user friendly configuration window which is available via the tray-menu. In order for the changes to take effect you must reload the application after changing any settings. If you
edit settings.ini manually be sure to exit Lintalist first otherwise any changes you make might be overwritten by reloading Lintalist.
A description of all settings can also be found in settings.ini or in
the Wiki.
Some important options:
Config |
Description |
SendMethod | If you experience any problems with the way text is sent to the various applications you use,
you should try various methods to see if it resolves the issue:
1 = SendInput
2 = SendEvent
3 = SendPlay
4 = ControlSend |
PasteDelay | If the text of the snippet is not pasted in to your application after a search, shortcut
or shorthand you could try to increase the number of Milliseconds before the text is
pasted. |
TriggerKeys | If Shorthand is activate by default pressing a TAB and SPACE key will expand abbreviations. You can limit this to just the TAB or SPACE by editing this setting. You can also use other keys such as F1-F12 for example.
More options may be added in future versions such as special hotkeys. |
DoubleClickSends | You can change what happens if you double click on an entry in the search results:
1 = Paste Part1, as enter e.g. run script if present
2 = Paste Part2, as shift-enter e.g. run script if present
3 = Paste Part1, as ctrl-enter e.g. always paste part1 even if script present
4 = Paste Part2, as ctrl-shift-enter e.g. always paste part2 even if script present
5 = Edit snippet
6 = New snippet
SingleClickSends as of v1.4 you can also use a single click for the same actions above.
|
DefaultBundle | File name e.g. default.txt
If no matching bundle can be found based on the window title load this bundle. |
AlwaysLoadBundles | File name(s) e.g. default.txt,bbcode.txt,css.txt
Bundles you always want to be loaded as comma separated list.
So Lintalist will try to load one or more specific bundles based on the currently
active application AND will always add the bundles listed here as well. |
MaxRes | The number of maximum results while searching (loaded bundle(s) may be very large,
this will make the program more responsive) |
StartSearchHotkey | The Shortcut (Hotkey) used to launch the Lintalist search window
(Capslock by default)
If you press this Shortcut while the Lintalist search window is active it will toggle
between Wide & Narrow view (you can set the width and height of both views via the
configuration menu) |
QuickSearchHotkey | Hotkey used to start quick search: It will cut (ctrl-x) the word to the left, open
Lintalist and starts a search. If only one match is found it simply pastes or runs
the result directly.
Note that some editors cut or copy an entire line if no selection is made (UltraEdit,
Sublime Text, Editpad ...) so it may lead to some unexpected results.
If you work with such an editor make sure you have always selected some text before
you start this. Some editors will allow you to change this behaviour (UE).
If you want to disable QuickSearchHotkey simply delete the hotkey in the configuration (make it empty)
|
PreviewSection | What to show in the preview area:
1 = Text of part one of snippet (recommended)
2 = Text of part two of snippet (fall back on Part 1 if Part 2 is empty)
3 = Script code of snippet (fall back to Part 1 if 3 is empty) |
PasteMethod | Retain current clipboard or set it as current clipboard content
0 = Paste snippet and retain current clipboard content (=default behaviour)
1 = Paste snippet and keep it as the current clipboard content (so you can manually paste it again)
2 = Don't paste snippet content but copy it to the clipboard so you can manually paste it. |
OnPaste | Exit Lintalist after pasting snippet?
0 = No
1 = Yes |
Edit settings.ini or choose configuration in the tray menu for more options.
Settings
Lintalist Bundles
Basic structure of a Lintalist bundle
Although the preferred format for many applications that support bundles, taglists, clip-lists, or snippets appears to be XML or INI, the Lintalist Bundle Format is just a formatted text file which is easy to understand and edit.
Due to its YAML like structure* it is not as cumbersome as XML to edit in a regular everyday text editor. You can edit bundles using Lintalist as it has a
built-in editor which can
edit,
copy,
move,
add, or
remove snippets from bundles or
create new bundles from scratch. There are also some
bundle converters available to import data from other applications.
* Inspired by Textpow http://textpow.rubyforge.org/svn/mm/manual.mm
A Lintalist bundle has some resemblance to YAML. [ For those interested in YAML and AutoHotkey, there is a parser available for AHK, see www.autohotkey.com/forum/viewtopic.php?t=60670; www.autohotkey.com/forum/topic70559.html ]
The bundles (text-)files are stored in the
bundles\ directory. Once you start editing bundles, a backup will be made and copied to
bundles\backup\.
Snippets & Bundles
A bundle consists of one or more snippets. A snippet consists of five sections:
Section |
Description |
Part1 *1 | Text to paste into active application by pressing Enter, OR run script |
Part2 *1 | Text to paste into active application by pressing Shift-Enter, OR run script |
Hotkey | Paste text from Part1 in active application without searching OR run script |
Shorthand | Expand abbreviations, similar to AutoHotkey. Paste text from Part1 in active application without searching OR run script. |
Script *2 | If a snippet has a script the Text from Part1 will NOT be pasted but instead the script will be run if Enter or the Shortcut-key keys are pressed. |
What happens when you double click on an entry in the list is determined by a setting in the configuration menu. (DoubleClickSends setting)
It is advised to always have some useful content in Part1, this will ensure you can always see what you select while searching, even it if the selected snippet runs a script.
*1 This allows you to search for one thing while pasting another, useful for translations or help texts or ... whatever you can think of. Look at the countries.txt or ahk.txt bundles for examples.
Note: If the part you are trying to paste is empty it will revert to the other part if possible.
*2 The script is regular AutoHotkey code, see
Bundle format for more info.
Example of a Bundle with one Snippet:
BundleFormat: | 1 | |
Name: | CSS | |
Description: | Bundle for Lintalist | |
Author: | Author | |
TitleMatch: | .css | |
Patterns: | | |
- LLPart1: | border-radius: ^|px; | |
LLPart2: | border-radius: [[input=Border radius]]px;
-moz-border-radius: [[input=Border radius]]px;
-webkit-border-radius: [[input=Border radius]]px;
| |
LLKey: | ^+b | |
LLShorthand: | bdrs | |
LLScript: | | |
Part1 & Part2
As described above, a snippet consists of two parts which are both shown in the search results (if both are present).
While you can perfectly use Lintalist without ever having to use the Part2 of the snippet, it can be of value in a number of cases.
Usage 1 - having two options to paste
By having a snippet consisting of two parts, you can search for one type of information, but paste something else.
This is illustrated by the
Countries bundle here.
In Part1 of the snippet you will find the official ISO name, and in Part2 the two letter alpha code, e.g GB for United Kingdom, CA for Canada. This lets you look up a country and either paste the official name by pressing
Enter, or if you need it, the two letter alpha code by pressing
Shift+
Enter.
Paste Part1 (enter) |
Paste Part2 (shift-enter) |
United Kingdom |
GB |
Canada |
CA |
Usage 2 - description / title
You can also use Part2 as a short title to describe the purpose of Part1. In the Markdown bundle below Part2 is used as a description, that way you can for example search for 'bold' to find the bold snippet, this would not be possible without a useful description in Part2 as the markup code in Part1 does not have any useful information to search for.
Paste Part1 (enter) |
Paste Part2 (shift-enter) |
### ^| |
Heading 3 |
**[[selected]]** |
Bold |
__[[selected]]__ |
Italic |
If you have several very similar snippets in a bundle, you can add some info in Part2 of the snippet so the second column in the search results will help you find the correct one:
Paste Part1 (enter) |
Paste Part2 (shift-enter) |
very long snippet that looks similar to many other snippets in the bundle.... |
FAQ |
very long snippet that looks similar to many other snippets in the bundle.... |
Email |
very long snippet that looks similar to many other snippets in the bundle.... |
Excel |
Another example would be time-sheet management. Often certain types of jobs or clients have special codes assigned to them. Instead of having to remember these codes you can simply create a bundle which would allow you to search for a clients name and paste the code in your time-sheet.
Paste Part1 (enter) |
Paste Part2 (shift-enter) |
1578A |
John Smith |
6335D |
Ms. Jones |
X-7685 |
Replaced plumbing |
Interactive bundle text (or Plugins)
Part1 and/or Part2 of a snippet can have special codes to insert specific data.
The following
Snippet Codes
(or plugins) are available.
You can develop your own if you learn to write AutoHotkey scripts, see
plugins\readme-howto.txt for more info.
Reminder: You can also use
Formatted Text Snippets (html, markdown, image and RTF).
Plugins are processed as follows:
1. Local variables first
2. Process each plugin in the order they are presented in the snippet e.g. left to right.
3. If it is a nested plugin: the order is from the left to right AND from the inside out.
Consider the following example:
This is [[plugin1]]
we continue with a triple nested plugin:
[[plugin2 [[plugin2-1 [[plugin2-1-1]] ]] ]]
and ending with
[[plugin3]]
The plugins are processed in the following order:
1. [[plugin1]] is processed first
2. followed by [[plugin2-1-1]] followed by [[plugin2-1]] followed by [[plugin2]]
3. and finally [[plugin3]]
Available plugins:
Code & Parameters |
Description |
^| | Caret position after pasting.
Basic example: "Hello, this is a sample ^| text"
The ^| code will be removed from the text and the caret will
be placed before the word text.
[v1.8+] If you paste a snippet into an editor which supports Multi-caret/edit you can use those in Lintalist snippets by placing multiple caret locations in your snippet. If you don't want to use MultiCaret simply avoid using multiple ^| in a Lintalist snippet.
Supported editors: Atom, Brackets, EverEdit, Komodo Edit, Sublime Text, TextAdept, UltraEdit 23+, Visual Studio Code editor. See docs/MultiCaret.md for details.
|
[[C=Char|Repeat]] | By default pasted texts are trimmed which means spaces and tabs will be trimmed from the snippet. You can use this plugin to insert one or more spaces and/or tabs at the beginning or end of a snippet. Or you can use it as a shorthand-code to insert a repeating text or character.
Basic example [[C=-|30]] insert 30 -'s
Use [[C=space]] or [[C=\s]] for a space, [[C=tab]] or [[C=\t]] for a tab, and [[C=enter]] or [[C=\n]] for a new line.
Neat trick: using a local variable or User input
[[C=[[Var=localvar]]|10]] Repeat the local variable 'localvar' 10 times.
[[C=[[Input=Repeat which character|-]]|[[Input=How many times?|10]]]] Repeat the entered character(s) 10 times.
|
[[Calc=]] *2 | Evaluation of the math expressions - see documentation below. |
[[Calendar=Format|LCID]] | Displays a calendar window to allow you to select a date in a specific format (see DateTime below).
Basic example [[Calendar=dd-MMM-yyyy]] --> Select a date and it will be inserted like so: 25-Jan-2011
[v1.8+] You can now specify an LCID. If you do not define one, the current user's locale is used to format the Date string. To use the system's locale instead, specify LSys. To use a specific locale, specify the letter L followed by a hexadecimal or decimal locale identifier (LCID). You can find a list of Locale IDs Assigned by Microsoft here msdn.microsoft.com/goglobal/bb964664.aspx
|
[[Choice=item1|item2|..]] | Selected an item from a list.
The options are delimited by a | character .
Basic example [[Choice=Red|Green|Blue]] inserts the selected colour in the text.
[v1.9+] If the first option starts with a question mark (?), the first option will be removed from the list and shown as text in the Choice GUI. This can serve as a hint or reminder what the Choice is about.
Example: [[Choice=?Favourite colour|Red|Green|Blue]] . Same as above only the GUI will show "Favourite colour" in the GUI above the options.
|
[[Clipboard]] *1 | Insert current Clipboard content.
* Additional parameters are available, see Extending Clipboard & Selected text. |
[[Counter=Name|Value]] | You can use multiple counters across bundles.
Basic example [[Counter=InvoiceNumber]] --> increment by one and insert value of InvoiceNumber.
By default it will increment the counter by one, you can change that by specifying the Value.
[[Counter=InvoiceNumber|5]] Add 5 and insert.
text … [[counter=cName]] … text … 2nd instance [[counter=cName|0]] with same value
These counters are saved between sessions and stored in settings.ini
You can manage these counters (add, edit, delete) via the tray menu option: Manage counters.
Tips:
1. if you want to use the same counter multiple times in a snippet without incrementation simply "Add zero" (|0) for the second and subsequent instances.
2. if a counter is not created/managed using the "Mange counters" tool the unknown counter will be automatically created. This way you can create counters 'on the fly' using for example the [[Input=]] plugin.
|
[[DateTime=Format|Value|TimeUnits|LCID]] | Insert current Date and/or Time using the FormatTime options,
autohotkey.com/docs/commands/FormatTime.htm
(Date & Time formats, may be dependent on your user locale).
Basic example [[DateTime=dd-MMM-yyyy]] --> 25-Jan-2011 (Todays date)
You can also perform some calculations, example:
[[DateTime=dd-MMM-yyyy|5|Days]] --> 30-Jan-2011, 5 days from today.
TimeUnits can be either Seconds, Minutes, Hours, or Days.
[v1.8+] You can now specify an LCID, see Calendar above. Example: [[DateTime=dd MMMM yyyy|||L1036]] --> show month in French.
|
[[File=Filename|select|clean]] | Will insert text from specified file into the text,
either full path or relative to Lintalist directory.
Basic example [[File=c:\file.txt]] inserts content from that file into the text.
[v1.6+] The file plugin has two options |Select and |Clean .
|Select : if you want to select a file to use add |Select . The "filename" is now used as the directory where you want the Select File dialog to start. If you leave it empty it will start in the Lintalist folder, you can use relative paths (..)
Basic example: [[File=..|select]] --> select a text file in the parent folder of Lintalist.
|Clean : if you know the text file has the following characters in them |[] AND you are using the File plugin as an input for another plugin you need to tell Lintalist to remove the []| characters by using the |Clean option. Otherwise the plugin using the file as an input will most likely fail.
The order of Select and Clean doesn't matter, you can use one or both at the same time.
|
[[Input=Text|Default]] |
Ask for user input (simple inputbox)
Basic example [[Input=Customer's name?]]
Note: If you want to use the same user input more than once you can do so by simply repeating the [[Input=Question]] code.
You can provide a default response after the question by using the pipe char (|),
example [[Input=My favourite color|Green]]
|
[[Random=1|10]]
or
[[Random=a|b|c]] | There are two methods to use Random. 1: Return a random number, 2: Return a random item from a pipe delimited list.
[[Random=1|10]] -> return value between 1 and 10
[[Random=item|from|a list of|entries]] -> returns random item from one of these four items
[v1.8+]
|
[[Selected]] *1 | Replace by selected text if any. This will allow you to insert any
selected text, for example to wrap selected text in a HTML tag.
* Additional parameters are available, see Extending Clipboard & Selected text. |
[[Snippet=Shorthand]] | Will insert text from another snippet at the specified location.
Use the Shorthand code of another snippet from the same bundle. This way you can chain snippets together.
Basic example [[Snippet=shorthandcode]] |
[[Split=input|?1|?2]] *3 | Split input into variables - see Split and SplitRepeat below. |
[[SplitRepeat=input|?1|?2|?3]] *3 | Split input into variables - see Split and SplitRepeat below. |
[[Var=Name]] *4 | Insert local variables. These variables are available across bundles. See Local bundle variables below. As of v1.0.3 local variables are also available in scripts (making it the only plugin available in scripts for the time being) |
[[html]], [[md]], [[rtf=]], [[image=]] | Use these for Formatted Text Snippets. |
*1 Extending Clipboard & Selected text
Additional parameters are available for the
[[Clipboard]]
and
[[Selected]]
plugins.
Parameters are defined as followed:
[[Clipboard=options]]
and
[[Selected=options]]
Options |
Shorthand |
Purpose |
Upper | U | Transforms selected text or clipboard to: UPPERCASE. |
Lower | L | Transforms selected text or clipboard to: lowercase. |
Title | T | Transforms selected text or clipboard to: Title Case. |
Sentence | S | Transforms selected text or clipboard to: Sentence case. |
Wrap|before|after | W | Wraps selected text or clipboard with the defined before and after texts.
If the selection of clipboard has multiple lines each line is wrapped in these texts individually. Example: [[Selected=Wrap|<li>|</li>]] will wrap each line in li html tags.
Before: After:
line1 <li>line1</li>
line2 <li>line2</li>
line3 <li>line3</li> |
*2 Calc plugin
The evaluations of the math expressions in the Calc plugin are done by the Monster/Eval function by Laszlo.
It is capable of basic and advanced math operations including standard AutoHotkey and predefined functions.
A number of predefined constants are also available.
Source: forum thread
• Arithmetic operators: +, -, *, /, \ (or % = mod), ** (or @ = power)
• AHK Functions:
Abs,
Ceil,
Exp,
Floor,
Log,
Ln,
Round,
Sqrt,
Sin,
Cos,
Tan,
ASin,
ACos,
ATan
• Predefined functions: SGN, Fib, Fac (=sign, Fibonacci numbers, Factorials)
• Predefined constants: e, pi, inch, foot, mile, ounce, pint, gallon, oz, lb.
In [[calc=]] | Outcome |
1 + 1 | 2 |
6 / 2 | 3 |
12 + 3 * 4 / 2 - 1 | 17 |
5 \ 2 | 1 (5 mod 2 = 1) |
100/3 $2 | 33.33 (2 decimal places) |
Example using input:
Converting Celsius to Fahrenheit °C x 9/5 + 32. Today it was:
[[Calc=([[Input=What is todays temperature in C?]]*(9/5))+32]]°F (=[[Input=What is todays temperature in C?]]°C)
... you can check this conversion at http://www.wbuf.noaa.gov/tempfc.htm
Example using input & local variable:
You have bought [[Input=Number bought]]
items at a price of [[var=itemprice]]
each.
That brings the total to: [[Calc=[[Input=Number bought]]*[[var=itemprice]]]]
.
Example rounding off the result to a specific number of Decimal places $N (N decimal places):
100 divided by 3 is: [[Calc=100/3 $2]]
.
Note about trigonometry functions: Sin(), Cos(), Tan() etc use
radians. To convert a radians value to
degrees, multiply it by 180/pi (approximately 57.29578). To convert a degrees value to radians, multiply it by pi/180 (approximately 0.01745329252). The value of pi (approximately 3.141592653589793) is 4 times the arctangent of 1.
Source: AHK Docs
In
calc you can use this as follows:
sin(30/180*pi)
180/pi*asin(0.5)
Advanced math: examples of the more advanced options are available in the
forum thread (or study the code in plugins\calc.ahk). Should you have a requirement for such advanced operations you are encouraged to experiment with a standalone Eval script before applying this to the Calc plugin.
*3 Split and SplitRepeat
[[Split=input|?1|?2]]
and
[[SplitRepeat=input|?1|?2|?3]]
The
Split plugin creates an "array" of sequentially numbered temporary variables which you can place anywhere in your snippet.
This can for example be useful if you copy multiple columns and / or rows from a spreadsheet and want to insert them at specific locations in your snippet text.
Option |
Meaning |
input | Can be text, another plugin, or the reserved keywords: selected and clipboard.
Note: the input must not contain the following three characters: []|
|
?1 | the character to split the input at.
There are a number of reserved options \s = space, \t = tab, \n = new line - but you should be able to use any character apart from these: []|
If only use ?1 it will create a simple array of variables you can use like so [[sp=1]] [[sp=2]] [[sp=3]] etc
Think of it as a column marker. |
?2 | You can omit this, but if you do use a second parameter it will create a two-dimensional array of variables you can use like so [[sp=1,1]] [[sp=1,2]] [[sp=3,2]] etc.
If you use both ?1 and ?2 - ?1 is the row marker, and ?2 the column marker. |
Examples
This selected text:
word1 word2 word3
[[Split=selected|\s]]
Hello [[sp=1]]
Hello [[sp=2]]
Hello [[sp=3]]
Result:
Hello word1
Hello word2
Hello word3
Read a text file and use the third line:
[[Split=[[File=example.txt]]|\n]]
The third line of the text file is [[sp=3]]
Two-dimensional example - this selected text:
wordA1 wordA2 wordA3
wordB1 wordB2 wordB3
using this snippet
[[Split=selected|\n|\s]]
Hello [[sp=1,1]]
; wordA1
Hello [[sp=1,2]]
Hello [[sp=1,3]]
Hello [[sp=2,1]]
Hello [[sp=2,2]]
; wordB2
Hello [[sp=2,3]]
Result:
Hello wordA1
Hello wordA2
Hello wordA3
Hello wordB1
Hello wordB2
Hello wordB3
SplitRepeat is similar to Split but has the unique ability to repeat a snippet until all "parts" have been processed.
It takes up to three "split" parameters. ?1|?2|?3.
This can be useful if you don't know in advance how many lines or rows you need to process from your input source.
Option |
Meaning |
input | Can be text, another plugin, or the reserved keywords: selected and clipboard |
?1 | the character to "repeat" the input at.
There are a number of reserved options \s = space, \t = tab, \n = new line - but you should be able to use any character apart from []|
This is useful of you want to process each line from an input.
|
?2 | Think of ?2 as the row marker - see Split above. |
?3 | Think of ?3 as the column marker - see Split above. |
Basic example: this selected text
a,b,c,d using this snippet
[[SplitRepeat=selected|,]]
Hello [[sp=1]][[C=\n]]
Result:
Hello a
Hello b
Hello c
Hello d
Works with two-dimensions as well, this selected text
wordA1,cA1 wordA2,cA2 wordA3,cA3
wordB1,cB1 wordB2,cB2 wordB3,cB3
wordC1,cC1 wordC2,cC2 wordC3,cC3
Using this snippet:
[[SplitRepeat=selected|\n|\t|,]]
1-1 Hello [[sp=1,1]]
1-2 Hello [[sp=1,2]]
Result:
1-1 Hello wordA1
1-2 Hello cA1
1-1 Hello wordB1
1-2 Hello cB1
1-1 Hello wordC1
1-2 Hello cC1
Named Splits
[[Split_name=input|?1|?2]]
and
[[SplitRepeat_name=input|?1|?2|?3]]
If need to use multiple split in the same snippet you can make use of named Splits to prevent the output of the first split to interfere with the second split - see
issue #48. This will also allow you to combine Split and SplitRepeat in the same snippet.
Examples
This selected text:
WordA1 WordA2 WordA3 WordB1 WordB2 WordC1 WordC2
[[Split_MyName=selected|\t]]
[[SplitRepeat_OtherName=[[sp_MyName=2]]|\s]]
result=[[sp_OtherName=1]]
Result:
result=WordB1
result=WordB2
This selected text:
wordA1,cA1 wordA2,cA2 wordA3,cA3
Read a text file and use the third line:
[[Split_File=[[File=example.txt]]|\n]]
The third line of the text file is [[sp_File=3]]
[[Split_Sel=Selected|\t|,]]
[[sp_Sel=1,2]]
[[sp_Sel=3,1]]
Result:
The third line of the text file is: [...]
cA2
wordA3
Combining Split and Choice to create a Snippet with Logic.
You select an option using the Choice plugin and use the result to insert specific information later on.
The chosen item (output of Choice) is used as input for a named Split. As the SP will always be the first (e.g. 1), you can use that as a "variable" to select an option in a second named Split.
[[Split_C1=[[choice=1 Option1|2 Option2|3 Option3|4 Option4]]|\t]]
[[Split_CSub=sub1 sub2 sub3 sub4|\s]]
You made Choice Number [[SP_C1=1]]
And the sub-selection that goes with it is:
[[SP_CSub=[[SP_C1=1]]]]
Result (if you chose option 3):
You made Choice Number 3
And the sub-selection that goes with it is:
sub3
The above method could also be used with Local variables
[[Split_C1=[[choice=1 Option1|2 Option2|3 Option3|4 Option4]]|\t]]
You made Choice Number [[SP_C1=1]]
And the sub-selection that goes with it is:
[[var=LocalVariable[[SP_C1=1]]]]
*4 Local bundle (Variables) [[Var=...]]
By using the
[[Var=]]
code in your texts you can insert variables which are defined in a special bundle and are stored in
local\local.txt. This file has a similar setup to a regular bundle but only has two parts: a name and the content. You can use this to store (personal) information which you can reuse so you do not have to update it multiple times or share it with someone else. This could be your name or address for example:
- LLVarName: MyAddress
LLContent: Agent Cooper
The Black Lodge
Twin Peaks
You can now insert your address in your snippets/bundles by using
[[Var=MyAddress]]
anywhere in the text.
So if your address changes you only have to update the Address variable and all your bundles will be up to date. This makes it also easier to share a bundle with other users as they don't have to update your bundle by editing all your address entries, they can simply add the Address variable to their local bundle.
Manage local variables (Local bundle editor)
You can edit your local variables using the Local bundle editor. You can access the editor via the Tray menu or via the Edit menu in the Search GUI (Manage local variables)
Local bundle editor
You can use the Scan button to scan your bundles for new local variables and add them.
Example Text Snippet (Part1 or Part2):
Dear [[Input=Enter Name of Customer]]
,
thank you for your order of your pair of [[Choice=Red|Blue|Black|Pink|Brown]]
shoes
at [[DateTime=dd-MMM-yyyy]]
.
Your sincerely,
[[Var=Name]]
[[Var=Address]]
Script
You can include any valid AutoHotkey script into a snippet. The code is saved to a temporary file and run with AutoHotkey. The temporary script is written to
tmpscrpts\ in your Lintalist directory. After the script has finished it is deleted.
You can enable / disable the use of Scripts via the Tray menu
Special Script Function: LLInit()
If you include
LLInit()
in your script (at the start) the following variables and functions will be
available:
Variables:
- ActiveWindowID (use with ahk_id)
- ActiveWindowProcessName (use with ahk_exe)
- ActiveWindowClass (use with ahk_class)
- ActiveWindowTitle
- ActiveControl
- SendMethod (settings)
- PasteDelay (settings)
These Active* variables contain the information about the application that was active
when the Lintalist Search window was activated
OR in case of shortcut or shorthand the current active application.
You can use these variables in your "Snippet" script to ensure your script operates on the correct window if need be.
See
Configuration for information about SendMethod, PasteDelay.
Functions:
- GetActiveWindowStats()
Get Active Window & Control information
- SendKey(Method = 1, Keys = "")
Send text of keystrokes using the defined method (SendMethod)
Method: 1, 2, 3 or 4.
1 = SendInput, 2 = SendEvent, 3 = SendPlay, 4 = ControlSend
For more background info see the AutoHotkey Send documentation
autohotkey.com/docs/commands/Send.htm
- ClipSet(Task,ClipNum=1,SendMethod=1,Value="")
Used by Lintalist to set/restore clipboard.
SendMethod as above with SendKey, set by configuration.
See
include\default.ahk for full details as ClipSet has a number of
other functions which may be of interest for more advanced use(r)s.
Formatted Text Snippets
As of LintaList v1.1 several types of formatted text are supported in Snippets.
Formatted text, styled text, or rich text, as opposed to plain text, has styling information beyond the minimum of semantic elements: colours, styles (boldface, italic), sizes, and special features (such as hyperlinks).
Source: wikipedia
General Notes:
1. The application where you paste the snippet INTO does have to accept the formatted text, otherwise nothing will be pasted. Pasting an image into Notepad for example will have no result. Some applications will not accept RTF but will accept HTML or vice versa.
2. Plugins are supported in HTML, Markdown and RTF, not Image. Note that support in RTF may depend on how the RTF file is written (line breaks, formatting etc.) so you may have to experiment and also try to avoid applying styles to the plugin text.
3. The Caret position after pasting -
^|
- does not work with any of these Formatted Text Snippets.
4. In the Listview these formatted snippets are indicated by HTML/Markdown, RTF and Image icons (if Icons are shown)
HTML
To paste HTML code as formatted text you have to include
[[html]]
in your snippet, usually at the start of the snippet but it can be anywhere.
You are allowed to omit the html, head and body tags.
You can nest or chain various HTML snippets using the
[[Snippet=]]
plugin.
If one or more of the nested snippets contains the
[[html]]
plugin the entire snippet will be converted to HTML.
Do not mix and match HTML and MD snippets to avoid unexpected end results.
[[html]]
<h3>Hello: [[Input=What is your name]]</h3>
<p>This <b>is</b> a <em>sentence</em> with formatting.</p>
<p>Today is <em>[[DateTime=dd MMMM yyyy]]</em>.</p>
<ul>
<li>list item</li>
<li>list item</li>
<li>list item</li>
</ul>
<p>Images also work - either use an http URI: (http://lintalist.github.io/img/lintalist.png)<br />
<img src='http://lintalist.github.io/img/lintalist.png'></p>
<p>or a file URI: (docs/lintalist.png)<br />
<img src='docs/lintalist.png'></p>
Notes:
1. Some applications will need a HTTP URI for images to work (webmail for example) - background info on file URI:
wikipedia.
If you want to use an image file on your computer you can omit adding the entire file path "file://c:/..../path/to/file.jpg"
Lintalist will automatically insert the full path relative to the folder where lintalist is installed.
Examples:
An image in a Images sub-folder:
<img src='Images/lintalist.jpg'>
An image two folders "up" from the Lintalist folder:
<img src='../../anotherimage.png'>
Markdown
To paste Markdown code as formatted text you have to include
[[md]]
in your snippet.
Note that only basic Markdown code is properly converted, nested lists are not supported (yet) for example and table formatting is rudimentary - see remarks below.
You can nest or chain several MD snippets, but do not mix and match with HTML snippets to avoid unexpected end results.
[[md]]
# Heading 1
* unordered list entry
* unordered list entry
this is a **normal line** of *text* with some markup
1. numbered list entry
2. numbered list entry
Inserting a link [AutoHotkey](https://autohotkey.com) also works
As does an image:

Or a table (slightly deferring from the original markdown)
|cells in the first row are treated | as header cells (th)
cell 1 |cell 2
cell 3 |cell 4
Credits: This markdown conversion to HTML function comes from [GenDocs](https://autohotkey.com/boards/viewtopic.php?f=6&t=1797)
Example of HTML block:
~~~
<ul>
<li>list item</li>
<li>list item</li>
<li>list item</li>
</ul>
~~~
The above should be displayed as a unordered list.
This markdown conversion to HTML function comes from GenDocs, which uses a simplified version of the Markdown syntax.
It supports:
- Paragraphs: blocks of text delimited by blank lines. Equivalent to HTML <p>...</p>.
- In-paragraph line breaks: end a line with two spaces. Equivalent to HTML <br />.
- Headings: start a line with up to three hash (#) characters, followed by space. Equivalent to HTML <hN>...</hN>
- Emphasis marks: *...*. Equivalent to HTML <em>...</em>
- Strong emphasis marks: **...**. Equivalent to HTML <strong>...</strong>.
- Inline code marks: `...`. Equivalent to HTML <code>...</code>.
- Code sections: unlike standard Markdown, they use the blockquote syntax: blocks of text whose lines start with > followed by a space.
- Unordered lists: lines that start with *. Equivalent to HTML <ul>...<li>...</li>...</ul>.
- Ordered lists: lines that start with a number, dot and space (e.g. 1. ); or letter, dot and space (e.g. a. ). Equivalent to HTML <ol>...</ol> and <ol style="list-style-type: lower-alpha">...</ol> respectively.
- Escape sequences: the sequences \*, \`, \[, \], \! and \\ are recognized, and yield literal characters.
- Links: [Link text](Link URL). Equivalent to HTML <a href="...">...</a>.
- Images: . Equivalent to HTML <img src="..." alt="..."/>.
Insert HTML:
- You can include HTML code by placing it between two sections of ~~~ like so
~~~
<p>HTML code here</p>
~~~
Tables are defined as follows:
- If a line starts with pipe character (|) it indicates the start of a table (<table>).
- The end of a table is marked by an empty line (</table>).
- Cells in the first row are treated as header cells (<th>).
- You should not define the start and end of a row, each line is treated as a row (<tr><td>...</td></tr>)
- Use a single | to mark a cell division (</td><td>)
- Not supported: Text-alignment in cells (always left aligned), Cell- and Rowspans.
Example, a 3x3 table:
|Table | Description | headers
Cell | Cell | Cell
Cell | Cell | Cell
RTF
Using RTF is similar to the
File plugin, it will insert the formatted text including images from the specified file. Either use the full path to the RTF file or a path relative to Lintalist directory.
All other text in the snippet will be discarded.
[[rtf=Extras\examples\example.rtf]]
You can find an example RTF file including a plugin in the Extras\formatted\ folder.
Image
Using Image is similar to the
File plugin, it will insert the image from the specified file. Either use the full path to the image or a path relative to Lintalist directory.
All other text in the snippet will be discarded.
[[image=Extras\examples\image.png]]
You can find an example image file in the Extras\formatted\ folder.
Editing Snippets and Bundles
F4 (Edit Snippet)
Start searching your bundle and select the snippet you want to edit (highlight with cursor or mouse) and use F4 to edit it. The Lintalist Bundle Editor will be shown so you can now edit the shortcut, shorthand, both text parts and the script. If you prefer to edit the texts or scripts in your default text editor* click the corresponding 'Edit in Editor' button. It will open the text or script in a new editor window. Save the temporary file and close the editor to automatically copy any changes back to the Lintalist Bundle Editor. You can use the plugins menu to insert plugins including the available local variables and counters.
To store the modified snippet click the save button, the changes are immediately available.
* [v1.7+] you can change the editor used via the "SnippetEditor" setting in the configuration menu.
Snippet editor

To modify the bundle properties such as the name, titlematch etc use
Lintalist Bundle Editor.
F5 (Copy Snippet and Edit)
Start searching your bundle and select the snippet you want to copy (highlight with cursor or mouse) and use F5 to edit it. The Lintalist Bundle Editor will be shown so you can now edit the shortcut, shorthand, both text parts and the script. If you prefer to edit the texts or scripts in your default text editor click corresponding 'Edit in Editor' button. It will open the text or script in a new editor window. Save the temporary file and close the editor to automatically copy any changes back to the Lintalist Bundle Editor.
To store the modified snippet click the save button, the changes are immediately available.
You can also modify the bundle properties such as the name, titlematch etc on the second tab of the Lintalist Bundle Editor.
Note: this action (F5) is not thoroughly tested.
F6 (Move Snippet to another Bundle)
Start searching your bundle and select the snippet you want to move (highlight with cursor or mouse) and use F6 to move it. A popup menu will allow you to select the bundle you wish the snippet to move to.
Note: this action (F6) is not thoroughly tested.
F7 (Add new Snippet)
To add a new snippet to bundle make sure the bundle you wish to add the snippet to is loaded in the search window. If multiple bundles are loaded you are asked to select the bundle to which you want to add the new snippet first.
To add the new snippet to the selected bundle click the save button, the changes are immediately available.
F8 (Delete Snippet)
Start searching your bundle and select the snippet you want to edit (highlight with cursor or mouse) and use F8 to delete it. After confirmation the snippet is removed from the bundle.
Backup: Whenever a snippet is edited (F4) or a deleted (F8) a backup of the bundle will be made in a backup folder when Lintalist is re-started or the program is closed. These can be found in the bundles directory: bundles\backup\. If you are not happy with the changes you have made you can copy back the prior version of the bundle. You may have to re-add any new snippets you have added after the last backup was made.
Managing Bundles
- If you have a new bundle you can add it to Lintalist by simply copying the file into the Bundles directory and (re)starting Lintalist
- If you want to create a new bundle, start Lintalist, open the search window and
press F10. The new bundle will be saved in your Bundles directory.
- If you no longer wish to use a particular Bundle, Exit Lintalist first and then simply remove the file from the Bundles folder and start Lintalist or use the Bundle Editor and delete it there.
- You can also use a
bundle converter to convert files from a variety of formats to the Lintalist format.
F10 (Bundle properties)
If you want to change the properties of an existing bundle such as the name (appears in the Menu) or the TitleMatch you can use the bundle properties editor. Press F10 or use the menu to open it while the Search window is active. Select the bundle in the list and change the properties and click SAVE.
New bundle
There are two methods of adding a new Bundle to Lintalist.
1. Create a new bundle in your text editor and copy that file to the \bundle\ folder and reload.
2. Use Lintalist to create a bundle and start adding snippets.
To add a new bundle (a collection of snippets) open the Lintalist search window and use the Edit, Bundle properties menu (or press F10). The Lintalist bundle editor will be opened where you can enter the name and other information. When you click save you will be asked for a file name of your bundle.
The most important fields are Name and TitleMatch. The Name is used in the Bundle menu and can be displayed in the search results (see configuration) and the TitleMatch field will allow you to make a Bundle context sensitive which means the search, abbreviations and shortcuts will only be available in Windows which match the title you enter in the TitleMatch field.
The TitleMatch field can be a comma separated list of partial window title matches. You can not use Wildcards.
Example: .txt,.doc is OK, *.txt,*.doc is not.
As of v1.9 you can also do the opposite: use the TitleMatch field to define the windows where the bundle should NOT be active by starting the list with a ! (exclamation mark).
This can be useful if you want a bundle to work everywhere except in a specific window.
Example: !txt
will make the bundle work everywhere apart from txt files.
Just to note that this feature hasn't been tested as vigorously as the regular TitleMatch mode.
New bundles are stored in the bundle directory. Lintalist is restarted after you add a new bundle. A first snippet is automatically added when a new bundle is created.
Once you have created a bundle you can add new snippets via the Edit, New snippet menu or press F7 - make sure the bundle is loaded first by selecting it via the Bundle menu in the Search window. You can add as many snippets as you like. Once ready do not forget to unlock the bundle by ticking the Lock check box in the Lintalist search window.
An illustrated guide is available in the Wiki.
Bundle editor
Bundle Converters
The following converters are available via
Extras\BundleConverters\ (requires AutoHotkey) or available via the Tools menu in the Search window and the Bundle editor.
- List.ahk Regular lists (plain text file, one item per line)
- UltraEdit.ahk UltraEdit Taglists (
http://www.ultraedit.com/downloads/extras/tags-autocomplete.html)
- CSV.ahk Comma-Separated Values (CSV) files (
en.wikipedia.org/wiki/Comma-separated_values)
(Uses ReturnDSVArray by DerRaphael)
- Texter.ahk Texter (Exported) Bundles (No known (general) repositories, experimental convertor,
github.com/adampash/texter/)
If you have made a converter let me know so I can add a link to it or possible include it with Lintalist.
Also, if you know of taglists, bundles, etc of other editors and programs you would like to see converted drop a line at the AutoHotkey forum or
GH and include a link to some examples if possible.
Command line parameters [v1.2+]
-Active: starting Lintalist and open the search window
Usage Running lintalist.exe installed:
lintalist.exe lintalist.ahk -Active
Usage AutoHotkey installed:
lintalist.ahk -Active
There is also a configuration setting that can do this: ActivateWindow
-Bundle=filename.txt: load specific bundle and lock
-Ini=filename-for-settings.ini: use a different settings file (default is settings.ini) [v1.8+]
F.A.Q & Known Issues
Faq
Q1: Nothing gets pasted / I just see the letter v (or nothing at all)
A1: You probably need to increase the PasteDelay setting. Right-click tray icon, configuration, PasteDelay.
Increase the milliseconds. You may need to experiment a bit to find a good setting.
Q2: It still does not work!
A2: There are a number of SendMethods you can try. There are 4, Right-click tray icon, configuration, SendMethod.
Try various methods until you find one that works, see Q1 as well as you might need to try a number of combinations.
A good program to test it in is Notepad.
Q3: My editor(s) selects a line of text even if nothing is selected.
A3: There are a number of editors that automatically select an entire line - even it it is empty - when selecting
a snippet with [[selected]] or script. Known editors:
- UltraEdit (can be turned off in configuration), - EditPad, - Sublime Text and possibly others.
If you can not turn off this behaviour, make sure something is selected before you use a snippet OR
modify the snippet by removing [[selected]].
Q4: I want to do an OR search as in "this OR that"? Is that possible?
A4: Yes, choose RgEx (Regular Expression) search (alt-r) and use a | (pipe)
Example: this|that
will find find snippets with either THIS or THAT as part of the text (part1, part2, shorthand)
Q5: I type the shorthand (abbreviation) or press the shortcut but nothing happens!
A4: - Make sure shortcuts and shorthand are not disabled (tray menu). Perhaps Lintalist is paused.
- Another bundle may be locked so the bundle you think should be active isn't, unlock it.
- Make sure the title match of the bundle is set correctly if it is not the default bundle.
Known Issues
K1: I can not append a new snippet to my bundle!
A1: If this happens try "Reload Bundles" or restart Lintalist, for some reason Lintalist can not find
or access the bundle or possibly it has lost track of which bundle it should append to.
This should be fixed in a future update of Lintalist
K2: It doesn't always work with Flash edit controls
A2: When the Lintalist GUI becomes active the Flash (edit) control looses focus. It is not possible to
reliably detect and (re)focus these types of controls. If you experience this often you could resort to
manual pasting after you've changed the
PasteMethod setting to 1 or 2 - See
#68
History
History
> version 1.1 see
changelog.md
* Version 1.1 - Formatted text support.
* Version 1.0.x - Minor improvements and bug fixes.
* Version 1.0 - First public release.
< Version 1.0 - private versions only (small set of users)
* See also credits.txt
Disclaimer: Use at your own risk. If you find a new bundle take a look at the script sections of each snippet. As Lintalist can run any AutoHotkey script it can also run faulty or insecure code. Be sensible, if you simply want to try a bundle selecting 'Pause scripts' via the tray menu might be a useful idea.
© Copyright 2009-2015 Lintalist. See license.txt