Lintalist 1.9 Searchable interactive lists to copy & paste text with plugins

Post your working scripts, libraries and tools for AHK v1.1 and older
list
Posts: 221
Joined: 26 Mar 2014, 14:03
Contact:

Lintalist 1.9 Searchable interactive lists to copy & paste text with plugins

18 Apr 2014, 07:32

Lintalist: Searchable interactive lists to copy & paste text, run scripts, using easily exchangeable bundles

v1.9 !TitleMatch mode, Resizable editor, updates to Choice and Random plugins

v1.8 New: cmd line parameter INI, Multi-Caret, Random plugin, LCID for datetime/calender, various fixes - see https://github.com/lintalist/lintalist/releases for changelog

v1.7 New: Split plugin now accepts "named Split", Settings (SearchLetterVariations, SnippetEditor, PlaySound), Added 'Help' and 'About' to GUIs - see https://github.com/lintalist/lintalist/releases for changelog

v1.6 improved plugin parser, new Split* plugin, column settings and various other updates, check for updates in tray menu - see https://github.com/lintalist/lintalist/releases for changelog

v1.5 Bundle name in search results, set font/size and Omnisearch and various other updates, check for updates in tray menu - see https://github.com/lintalist/lintalist/releases for changelog

v1.4 New calc plugin, extended clipboard & selected plugins and various other updates, check for updates in tray menu - see https://github.com/lintalist/lintalist/releases for changelog

v1.3 New config option, check for updates in tray menu - see https://github.com/lintalist/lintalist/releases

v1.2 Several new config options and other updates

v1.1 introduces formatted text support - Snippets can now have HTML or Markdown markup which will be pasted as formatted text, or you can read a RTF or Image file which will be pasted into your current application.

Source: https://github.com/lintalist/lintalist
Website: http://lintalist.github.io/

Introduction

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 (see screenshot below). Bundles can be context sensitive and multiple bundles can be used at the same time (if they match the criteria).

(more videos below)

Background: this is a script I've developed and used for a long time and I thought Easter was a nice time to finally share it. It was inspired by the Textmate Bundle/Snippet concept which a few years back was hardly available in a Windows text editor. Lintalist has the advantage it should work in any program (as long as it allows AutoHotkey to paste text) - not just your editor.

Features:
  • A novel feature is the ability to use two parts of text depending
  • Assign keyboard shortcuts to your favourite Snippets
  • Use abbreviations (shorthand) for your favourite Snippets
  • Run scripts which can be included in a Bundle
  • Standard Plugins:
    • Caret position after pasting
    • Insert date & time (incl. math operations)
    • Pick date from a Calendar
    • Choose item from a list
    • Use counters
    • Use selected text
    • Use the clipboard
    • Insert text from a file
    • Chain snippets (insert the contents of one snippet into another snippet)
    • Insert a character
    • Use local variables
  • Read more in the documentation...
Screenshot

Image
  1. Type query (multiple search modes)
  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.
Videos (not the best of quality, YT reduces the quality I'm afraid after uploading)
Notes:

Some example bundles are available here https://github.com/lintalist/lintalist-bundles/ simply copy these to the Bundles\ folder and restart Lintalist - right click tray menu.

The release (see GH) contains lintalist.exe - it is simply a renamed autohotkey.exe included for convenience.
In order for Lintalist to run scripts it needs a copy of AutoHotkey - Lintalist is not meant to be compiled.
Last edited by list on 30 Oct 2016, 05:15, edited 13 times in total.
User avatar
tank
Posts: 3122
Joined: 28 Sep 2013, 22:15
Location: CarrolltonTX
Contact:

Re: Lintalist: Searchable interactive lists to copy & paste

18 Apr 2014, 08:01

havent tried this YET but i will. I think this is a superb Idea
We are troubled on every side‚ yet not distressed; we are perplexed‚
but not in despair; Persecuted‚ but not forsaken; cast down‚ but not destroyed;
Telegram is the best way to reach me
https://t.me/ttnnkkrr
If you have forum suggestions please submit a
Check Out WebWriter
guest3456
Posts: 3454
Joined: 09 Oct 2013, 10:31

Re: Lintalist: Searchable interactive lists to copy & paste

21 Apr 2014, 00:04

this does look quite impressive

User avatar
hoppfrosch
Posts: 443
Joined: 07 Oct 2013, 04:05
Location: Rhine-Maine-Area, Hesse, Germany
Contact:

Re: Lintalist: Searchable interactive lists to copy & paste

23 Apr 2014, 00:19

Awesome work - including suberb documentation!
list
Posts: 221
Joined: 26 Mar 2014, 14:03
Contact:

Re: Lintalist: Searchable interactive lists to copy & paste

25 Apr 2014, 14:01

v1.0.2 is now available at https://github.com/lintalist/lintalist/releases

Changelog v1.0.2
  • New: Added Quick start guide to program and tray menu (can be turn on/off)
  • New: Tray tip on Tray icon shows "hotkey" to start a search as visual reminder
  • Fixed: Better handling of new (empty) bundles
  • Fixed: Double click to edit snippet (method 5) was actually creating new snippet and it was missing from the INI - New: method 6 to create new snippet
  • Fixed: Missing "tmpscrpts" folder from repo - @hoppfrosch - https://github.com/lintalist/lintalist/issues/1
  • Fixed: Now actually implemented the center & mouse(alternative) settings for Lintalist window position + New: remember position set by user - these can now also be set via the Configuration gui
  • Change: Removed "fake" text menu and now using a proper Gui menubar
Do read the upgrading notes on the release page (you need to delete your current settings.ini)

Thanks for the feedback so far.
list
Posts: 221
Joined: 26 Mar 2014, 14:03
Contact:

Re: Lintalist: Searchable interactive lists to copy & paste

25 May 2014, 03:53

v1.0.3 is now available at https://github.com/lintalist/lintalist/releases

Changelog v1.0.3

* New: you can now use Local variables in your script code as well - ht: tpr
* Fixed: minor fixes local bundle editor (adding, removing) - ht: tpr
* Fixed: minor fix local counter editor (double click on empty row)

Source & Releases at https://github.com/lintalist/lintalist/
list
Posts: 221
Joined: 26 Mar 2014, 14:03
Contact:

Re: Lintalist: Searchable interactive lists to copy & paste

03 Jan 2015, 08:09

Lintalist v1.1 - Formatted text support (HTML, Markdown, RTF, Image)

Snippets can now have HTML or Markdown markup which will be pasted as formatted text, or you can read a RTF or Image file which will be pasted into your current application.

Documentation: http://lintalist.github.io/#FormattedText

:thumbup: Thanks to: WinClip() by Deo - http://www.apathysoftworks.com/ahk/index.html - and Markdown2HTML() from GenDocs by fincs - https://github.com/fincs/GenDocs
list
Posts: 221
Joined: 26 Mar 2014, 14:03
Contact:

Re: Lintalist 1.2 Searchable interactive lists 2 copy&paste

17 Jan 2015, 12:48

v1.2 some new config options - see https://github.com/lintalist/lintalist/releases

Also some videos (not the best of quality, YT reduces the quality I'm afraid after uploading)

Introduction:


Other videos
list
Posts: 221
Joined: 26 Mar 2014, 14:03
Contact:

Re: Lintalist 1.2 Searchable interactive lists 2 copy&paste

25 Jan 2015, 08:36

Update: Lintalist v1.3.1 - https://github.com/lintalist/lintalist/releases
  • New: Configuration setting "AutoExecuteOne" if only one result is left during the search AutoExecute (no need to press enter)
  • New: Right menu Check for updates and install update if possible
(some videos have been updated with a white background, looks better)
danielo515
Posts: 58
Joined: 18 Feb 2015, 15:06

Re: Lintalist 1.3 Searchable interactive lists 2 copy&paste

10 Mar 2015, 14:20

Hello,

I don't know if I misunderstood the titleMatch thing, but as I understand it is not working for it.
Let's say I have a couple of snippets for Oracle, and I want them to be available only when I'm using Oracle SQL developer. Then I will create a bundle called oracle and I will set the titleMathc to Oracle, and I will add the snippets there. I tried in other windows, for example notepad, and the hotstrings are still responsive. How can I change this?

Thanks in advance.
list
Posts: 221
Joined: 26 Mar 2014, 14:03
Contact:

Re: Lintalist 1.3 Searchable interactive lists 2 copy&paste

10 Mar 2015, 15:44

Hi danielo515,

it seems you've understood it correctly, I google the program name and found some screenshots and it seems the program always has "Oracle SQL developer" in the window title. So the bundle should look something like the example below and if you have in \bundles\ and you can see it in the Gui it is loaded properly. Did you make it the default bundle by any chances or did you lock it or used "load all bundles" (there would be a checkmark in the tray menu if that was the case)

Code: Select all

BundleFormat: 1
Name: Oracle SQL
Description: Bundle for Oracle SQL developer
Author: danielo515
TitleMatch: Oracle SQL developer
Patterns:
- LLPart1: Oracle1
  LLPart2: SQL1
  LLKey: 
  LLShorthand: sqx 
  LLScript:
I think Oracle SQL developer is a java program is that correct? Perhaps that is the problem and AHK has a problem getting the windows title from the program - you can test that with a small script

Code: Select all

^F12::
WinGetActiveTitle, ActiveWindowTitle
MsgBox % ActiveWindowTitle
Return
Make sure Oracle SQL developer is the active application and press ctrl-f12 - it should show the "Oracle SQL developer" in the msgbox.
danielo515
Posts: 58
Joined: 18 Feb 2015, 15:06

Re: Lintalist 1.3 Searchable interactive lists 2 copy&paste

11 Mar 2015, 01:59

Hello list,

Thank you for taking so much efforts.
Here is one of my bundles:

BundleFormat: 1
Name: Oracle
Description:
Author: Danielo
TitleMatch: Oracle SQL Developer
Patterns:

As you can see it is empty. I created another bundle, called MySQL for toad, and it don't even appear on the bundles folder. When are the bundles saved?
If I open the "configuration" of each pattern the bundle configuration is correct, but, as I said, this is not reflected on the bundles folder.

Another weird thing is that The latest created bundle is always the selected one, no matter which window is active, and I don't see the default one anymore.

I checked your script and it works properly with Oracle SQL developer, the window title is displayed correctly. As I said, this seems to be a problem with all the windows. Maybe bundles not being saved. When are bundles saved to disk? I create the bundles "on the fly" when I create a new snippet. Should I create the bundle first?
danielo515
Posts: 58
Joined: 18 Feb 2015, 15:06

Re: Lintalist 1.3 Searchable interactive lists 2 copy&paste

11 Mar 2015, 02:26

Hello again,

I'm making some more test and the title match does not seems to work on any window. I tried with browsers and editors. The latest selected bundle is always the selected one.
Another question: is there any way to edit a bundle once created? The edit bundle option shows a "variables manager".
danielo515
Posts: 58
Joined: 18 Feb 2015, 15:06

Re: Lintalist 1.3 Searchable interactive lists 2 copy&paste

11 Mar 2015, 03:16

Wow!

It is now working. Here is how I fixed it:
1 I selected "load all bundles" from the bundle menu
2 Then I deselect that option
3 it started to work

But I'm still curious about the other things I asked:
* How can I edit a bundle from your program?
* What is the purpose of the bundle tab when you create a new snippet?
list
Posts: 221
Joined: 26 Mar 2014, 14:03
Contact:

Re: Lintalist 1.3 Searchable interactive lists 2 copy&paste

11 Mar 2015, 13:26

danielo515 wrote:It is now working.
Glad to hear you managed to solve it yourself.

Adding a new bundle can be a bit complicated the first (few) times. I've prepared an illustrated HOWTO in the Lintalist wiki here:

https://github.com/lintalist/lintalist/ ... -Lintalist
danielo515 wrote:But I'm still curious about the other things I asked:
* How can I edit a bundle from your program?
* What is the purpose of the bundle tab when you create a new snippet?
1. Open the Lintalist search window and use the Edit menu which will allow you to edit, copy, move, add new or delete a snippet. Or add a new bundle as now shown in the Wiki. It is briefly addressed in the Help Documentation as well online here http://lintalist.github.io/#Editing or use the Tray menu, help option.

2. When adding a new Bundle you must at least give it a name so you can access the bundle via the Bundle menu in the Lintalist search window. When editing a snippet in an existing bundle you can modify the name and titlematch properties of the bundle by switching to the second tab. So in your case: if you want to add "Microsoft MySQL Server" as a window title simply edit a snippet from your Oracle SQL Bundle and switch to the second tab and add ",Microsoft MySQL" to the TitleMatch (sans quotes). Click save - it never hurts to reload Lintalist after adding a new Bundle or changing its properties.

I hope the above answers your question and you find Lintalist to be useful.
danielo515
Posts: 58
Joined: 18 Feb 2015, 15:06

Re: Lintalist 1.3 Searchable interactive lists 2 copy&paste

11 Mar 2015, 17:20

list wrote: Glad to hear you managed to solve it yourself.
But not in the best way. I did not noticed the "lock" tick near to the search box. Unlocking it will be definitively easier,faster and cleaner than my method. It's an important part of using your program and can frustrate users. I think it deserves at least an screenshot in the wiki.
list wrote: Adding a new bundle can be a bit complicated the first (few) times. I've prepared an illustrated HOWTO in the Lintalist wiki here:

https://github.com/lintalist/lintalist/ ... -Lintalist
Thank you very much for this guide. It clarifies some important points. Please consider including the above suggestion.

list wrote: 1. Open the Lintalist search window and use the Edit menu which will allow you to edit, copy, move, add new or delete a snippet. Or add a new bundle as now shown in the Wiki. It is briefly addressed in the Help Documentation as well online here http://lintalist.github.io/#Editing or use the Tray menu, help option.
So there is no clear way to manage bundles directly, just indirectly by moving and creating snippets.
list wrote: 2. When adding a new Bundle you must at least give it a name so you can access the bundle via the Bundle menu in the Lintalist search window. When editing a snippet in an existing bundle you can modify the name and titlematch properties of the bundle by switching to the second tab.
Here, again, there is no direct way to edit a bundle. You have to select a snippet, edit that snippet and then switch to the bundle tab. Not very intuitive. I would prefer to have an option on the menu where I can select which bundle to edit and edit it directly.

Did you noticed that if you create a new snippet without selecting a bundle, and you switch to the bundle tab and fill the bundle information that information goes to some kind of limbo?

And, here goes an important suggestion: I would love to have a "bundle belonging" column in the snippets list. It's hard to determine to which bundle belongs each snippet when many of them are selected. This is specially important because you have to edit bundles indirectly by selecting a snippet that belongs to that bundle.

list wrote: I hope the above answers your question and you find Lintalist to be useful.
It is very useful. I was thinking in create something similar myself, but I though: "hey, maybe someone has spend a good amount of time doing what I want to do" and then I found your program, which fit my needs like it has been made with my instructions plus some better ideas.
list
Posts: 221
Joined: 26 Mar 2014, 14:03
Contact:

Re: Lintalist 1.3 Searchable interactive lists 2 copy&paste

12 Mar 2015, 12:58

danielo515 wrote:I did not noticed the "lock" tick near to the search box ... I think it deserves at least an screenshot in the wiki.
I will highlight it in the "Step 6" image. There is no particular need to Select (and thus Lock) the bundle but it makes it easier if you want to add multiple snippets in a row to a (new) bundle. If the bundle is loaded into the Gui you can add snippets to it, as several bundles can be loaded you would have to select the bundle first when you add the snippet.
danielo515 wrote:So there is no clear way to manage bundles directly, just indirectly by moving and creating snippets.
... You have to select a snippet, edit that snippet and then switch to the bundle tab. Not very intuitive. I would prefer to have an option on the menu where I can select which bundle to edit and edit it directly.
The way I use it is that I add a new bundle, add its properties and then only edit/modify snippets and don't touch the bundle properties again. You have to bring up the search Gui and make sure the Bundle you want to modify is loaded, either by making sure the Window which matches the TitleMatch is active before opening the search so it is loaded automatically.

But it is true, it does require some "thought" and might not the most intuitive method (although it comes natural to me as I made it of course).
danielo515 wrote:Did you noticed that if you create a new snippet without selecting a bundle, and you switch to the bundle tab and fill the bundle information that information goes to some kind of limbo?
Yes and no. Yes if you don't add anything in the snippet (tab 1) before editing the properties (tab 2), if you do add something in tab 1 changes in tab 2 will be saved (after reloading).

I've been contemplating a different snippet/bundle editor for a while, nothing planned yet but it would have to be easier to use and lesss error-prone. If you were to look at the code of the editor (not recommended) you might notice the spaghetti-code (it evolved over a long period of time adding "quick" fixes to make it work) and it should be rewritten.
danielo515 wrote:And, here goes an important suggestion: I would love to have a "bundle belonging" column in the snippets list....
For me that would make the Gui a bit cramped but of course it could be added and also be user configurable. A method I'm (also) considering would be to allow for colours in the listview so each bundle would have its own color (user configurable) - I would also like to introduce settings for the font & font size used in the listview and preview area - I'll add these ideas to the ISSUE at GH.
danielo515 wrote:It is very useful.
Thank you.
User avatar
FanaticGuru
Posts: 1906
Joined: 30 Sep 2013, 22:25

Re: Lintalist 1.3 Searchable interactive lists 2 copy&paste

13 Mar 2015, 18:57

Nice script!

I have run into a problem. I updated from AHK 1.1.14 to 1.1.20.02 and then noticed problems with Lintalist.

If I hit caplock to open it when the desktop or a folder is active I get an error at line 234:
Gui, Show, w%Width% h%Height% x%Pos1% y%Pos2%, %AppWindow%

Which traces back to line 230 which has:
XY:=StayOnMonXY(Width, Height, Mouse, MouseAlternative, Center) ; was XY:=StayOnMonXY(Width, Height, 0, 1, 0)

This is returning an XY of null which then causes an invalid option in the Gui, Show because Pos1 and Pos2 end up being null.

I do not have this problem if something like a Notepad window or an email has focus which is the normal type places you would paste to but then other windows do cause this error like if I hit Caplock in this forum post.

I can avoid the issue by running the Exe Lintalist as it uses an older version of AHK.

I don't know if this is something buggy with this version of AHK that will change or if this is a change in behavior of AHK that is permanent going forward. Just thought you would want to know.

Also you mention adding the option for font size. I would find this useful as my display is 2560x1600 which makes the letters smaller than I would like.

Great job. I especially like the [[html]].

FG
Hotkey Help - Help Dialog for Currently Running AHK Scripts
AHK Startup - Consolidate Multiply AHK Scripts with one Tray Icon
Hotstring Manager - Create and Manage Hotstrings
[Class] WinHook - Create Window Shell Hooks and Window Event Hooks
list
Posts: 221
Joined: 26 Mar 2014, 14:03
Contact:

Re: Lintalist 1.3 Searchable interactive lists 2 copy&paste

14 Mar 2015, 03:18

Glad you like it and thanks for reporting the error - I noticed that too, it is an error in the script - an old bit of code that never got updated correctly but also never caused an error - will be fixed in the next update. If you want it fixed now you can change lines 232 & 233 from

Code: Select all

If (x="") or (y="")
	x:=100, y:=100
to

Code: Select all

If (Pos1="") or (Pos2="")
    Pos1:=100, Pos2:=100
If you already want a bigger font in the listview you can change alter line 220 to Gui, 1:Font,s12, for example.
list
Posts: 221
Joined: 26 Mar 2014, 14:03
Contact:

Re: Lintalist 1.4 Searchable interactive lists 2 copy&paste

14 Mar 2015, 12:38

You can use the tray menu, check for updates, to upgrade, or download it manually via https://github.com/lintalist/lintalist/releases
Changelog v1.4
  • New: Extended Clipboard & Selected plugins (upper, lower, sentence, title, wrap*)
  • New: Calc plugin - Evaluate arithmetic expressions (using Laszlo's Eval/Monster)
  • New: Plugins & Tools menu in Bundle Editor including dynamic submenus for clipboard,
    selected, counter & local variables plugins
  • New: Setting for Single click in listview to act as double click
  • New: Command line parameters -Bundle: load specific bundle and lock
  • Fix: Minor bug which would allow last snippet to be pasted again if enter was given
    on an empty results list
  • Fix: Up & Down arrow navigation should now work in the Bundle menu (Search GUI)
    this includes sending additional hidden keystrokes to the search control, do
    report errors if you experience any.
  • Fix: Error on Gui, Show in lintalist.ahk for AHK v1.1.20+
The wrap is a nice option, example this

Code: Select all

<ul>
[[selected=wrap|<li>|</li>]]
</ul>
turns this selected text:
line1
line2
line3
into:
<ul>
<li>line1</li>
<li>line2</li>
<li>line3</li>
</ul>

Return to “Scripts and Functions (v1)”

Who is online

Users browsing this forum: tidbit and 123 guests