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

Post a reply


In an effort to prevent automatic submissions, we require that you type the text displayed into the field underneath.
Smilies
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :| :mrgreen: :geek: :ugeek: :arrow: :angel: :clap: :crazy: :eh: :lolno: :problem: :shh: :shifty: :sick: :silent: :think: :thumbup: :thumbdown: :salute: :wave: :wtf: :yawn: :facepalm: :bravo: :dance: :beard: :morebeard: :xmas: :HeHe: :trollface: :cookie: :rainbow: :monkeysee: :monkeysay: :happybday: :headwall: :offtopic: :superhappy: :terms: :beer:
View more smilies

BBCode is ON
[img] is OFF
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Lintalist 1.9 Searchable interactive lists to copy & paste text with plugins

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

Post by list » Yesterday, 13:18

Glad to hear you managed to get it working :)
kunkel321 wrote:My Capslock got stuck in the on position ... check on startup and, if Capslock = on, then display a message ...
That is a nice idea, I've added it here https://github.com/lintalist/lintalist/issues/93 and will be part of the next update.
kunkel321 wrote:For fun, I took the core list of autocorrects ... make them into an LLbundle.
Also nice, although I don't specifically recommend it, but if it works for you, it works. I have other plans for an "AutoCorrect 2.0" (especially with AutoHotkey v.1.1.28 coming up) - discussion (and sneak preview, screenshots) here https://github.com/lintalist/lintalist/issues/32 (I'll start a new repo + discussion here on the forum in the next couple of weeks)

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

Post by kunkel321 » 22 Jan 2018, 16:44

For fun, I took the core list of autocorrects from my main script (which evolved from this awesome one https://www.autohotkey.com/download/AutoCorrect.ahk ) And converted them to a .csv, then used Lintalist to make them into an LLbundle. It is here: https://gist.github.com/anonymous/1f6e3 ... 26dc42d71b

Lintalist seems to handle it just fine. My main script is a tiny bit faster. Maybe because it is sending key presses directly rather than using the Window clipboard--IDK. LL is plenty fast enough for regular daily use though. There are 4,483 words. Only the first couple of dozen show up in the LL window, but they are all accessible via the find feature, or by simply typing a recognized misspelling. I've even been using it as I type this post 8-)

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

Post by kunkel321 » 22 Jan 2018, 14:53

My Capslock got stuck in the on position. It took a moment for me for figure out what was going on... *facepalm* You might want to do an ID10T check on startup and, if Capslock = on, then display a message such as "You are starting Lintalist with Caplocks activated. It will be stuck on. Do you want it turned off?"

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

Post by kunkel321 » 20 Jan 2018, 20:58

Thanks for the replies. I am able to run the test script without an error. (Though I do find that Google Drive occasionally locks files when it's syncing!) Running as administrator made no difference. I moved it to swkunkel/autohotkey just to be safe. Importantly: I noticed in the error message that it is looking in \lintalist\bundles\default.txt, but I checked the folder and default.txt was actually located in lintalist\example. The \bundles folder didn't exist, so I created it and copied default.txt in there. It seems to work now. fyi: The list of snippets had been blank this whole time. I didn't realize that it should have sample snippets until just now. :D Thanks again. I will read the documentation more thoroughly and experiment.

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

Post by list » 20 Jan 2018, 03:44

kunkel321 wrote:Hey does anyone know for sure if Lintalist works with Win 10?
If I make a new snippet, it doesn't get saved: ... Error

I can confirm it works on Windows 10. Every once in a blue moon I get that "Can't save" error too, I've tried to debug it but alas, I can not consistently replicate it, and I haven't solved it yet - it happens once and if I reload Lintalist the same snippet is added just fine.
In your case I see that you're saving it to "Google Drive"* - I'm not familiar with that but perhaps that folder has some settings that prevent Apps from writing to it directly? Running as Admin might indeed help. You can also try to move Lintalist to another folder where you know you have write access, that way you can see if it works. Just close Lintalist, copy the Lintalist folder to say your regular "My Documents" folder or perhaps a USB flash/thumb drive and start it again.
If you still can't add snippets & bundles I would be surprised.

* a small test script, just save it as test.ahk and start it (I assume you have AutoHotkey installed)

Code: [Select all]GeSHi © Codebox Plus

FileAppend, test`ntest,C:\Users\swkunkel\Google Drive\AHK 2018\testtestahk.txt
If ErrorLevel
MsgBox ERROR

It tries to create/append to a text file on your Google Drive folder, if it can't it will show you a Message, if that is the case the Folder can't be accessed directly. By default (from what I've just read) you can't search that folder in Windows either so I'm assuming there is something special to it.
See also https://support.google.com/a/answer/6105699?hl=en "Allow third-party apps for files in Drive: As an administrator, you control whether users can open Drive files with third-party apps ..."

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

Post by boiler » 19 Jan 2018, 20:37

I use it all the time on Win 10, although I don't add snippets to bundles. Perhaps it needs to be run as admin. Although I would think it wouldn't automatically do that if it is necessary, but it's worth a try.

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

Post by kunkel321 » 19 Jan 2018, 20:30

Hey does anyone know for sure if Lintalist works with Win 10?
If I make a new snippet, it doesn't get saved:
---------------------------
Error
---------------------------
ERROR: Could not append snippet to Bundle

C:\Users\swkunkel\Google Drive\AHK 2018\lintalist\bundles\default.txt

- LLPart1: This is my sample input.
LLPart2:
LLKey:
LLShorthand: samp
LLScript:
---------------------------
OK
---------------------------
Also, bundle editor doesn't seem to do anything. The GUI shows, but if I add a new bundle, then reopen the editor, the bundle has not been saved (doesn't show up in list).

Thoughts?

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

Post by list » 01 Jan 2018, 04:56

v1.9.4 functions, AHK variables, editor w. syntax highlighting
https://github.com/lintalist/lintalist/releases

  • New: Functions in Snippets are now also allowed: [[function()]] - both AHK built-in as user defined - #86 https://github.com/lintalist/lintalist/issues/86
  • New: support a subset of AutoHotkey built-in variables (A_MyDocuments etc)
  • New: Additional safety check when processing snippet by "removing" faulty plugins plus a simple error check when saving snippets.
  • New: Editor now has (optional) Syntax highlighting (plugins, html, scripts) by using the RichCode class by @G33kDude - #88 https://github.com/lintalist/lintalist/issues/88 (when using RichCode you can toggle word wrapping in the edit controls by pressing ctrl+w)
  • Fix: Editor - "Edit in Editor" routine improved, notepad.exe may not show ".txt" in Window title, and actually delete "__tmplintalistedit.txt" file in tmp folder (didn't do so correctly)
  • Change: User plugins (and now functions) can be added to MyPlugins/MyFunctions so future updates of Lintalist won't overwrite plugins/functions added by users each time. See NOTE below.
  • Fix: Closing Input and Choice plugins via close button (x) in Gui now properly cancels snippet
  • New: added icons to Tray menu and some Search menu entries.

NOTE

User plugins/functions must now be included in plugins\MyPlugins.ahk and plugins\MyFunctions.ahk and no longer in `plugins\plugins.ahk`. Future updated will not overwrite these two files. More information and samples in https://raw.githubusercontent.com/linta ... -howto.txt
This readme also includes the example provided by FG.

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

Post by list » 17 Nov 2017, 14:59

For the adventurous: here is a development branch https://github.com/lintalist/lintalist/ ... -functions

  • support for user/ahk functions in snippets: [[SubStr("AutoHotkey",5,3]] -> Hot
  • support for subset of AutoHotkey built-in variables: A_MyDocuments etc

See the documentation "Functions" for a rudimentary introduction (docs needs some work)

I've also added some error checking* when processing snippets (plugins/functions) - this will avoid Lintalist to crash - if it finds a plugin/function it can't process it will wrap the that section of the snippet in {{braces}} so if you made a typo [[inpt=Name?]] or call a non-existing function [[MyFunk()]] it will become {{inpt=Name?}} {{MyFunk()}} so you can see there is an error in the snippet.

Suggestions and bug reports welcome :-0

* I should probably add some more by preventing snippets calling Lintalist functions as that could really mess things up but I haven't done so yet.

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

Post by list » 16 Nov 2017, 12:29

hoppfrosch wrote:Here here here! I would probably use it! ... I'm looking for a template system (written in AHK) ...

It wouldn't be to hard to "extract" it from Lintalist but if you do so "as is" you'll have a quite few global variables which some wouldn't like, so transforming the labels to functions would be preferred to have a nice and clean solution. I'll put it on my list :shh:

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

Post by hoppfrosch » 16 Nov 2017, 05:21

Here here here! I would probably use it! ;)

I'm looking for a template system (written in AHK) to automate/simplify the generation of the awesome AHK-page on github. For sure this can easily be done in any other scripting language - but how awesome is AHK, if it's a major barrier to implement a templating system to generate the awesomeAHK-page? :lol:

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

Post by list-nli » 16 Nov 2017, 03:38

@hoppfrosch funny you should say that - I've always thought it might be "useful" to separate the snippet+plugins processing from Lintalist as a standalone function/library. That way you could use it in other scripts by simply #include snippets.ahk

Code: [Select all]GeSHi © Codebox Plus

::hotstring:: ; or hotkey
var:=snippet("Hello [[Input=Name]]")
return

#include snippets.ahk
Not sure if it is worth the effort to do so as I don't expect many people would use it. :think:

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

Post by hoppfrosch » 16 Nov 2017, 01:00

list wrote:I already got to the point so that you can simply call a function like [[function(parameters)]] it sees there is no = and then knows its a function.

Code: [Select all]GeSHi © Codebox Plus

This is a test with a user [[func1(1,2,3)]] function and AHK [[SubStr("AutoHotKey",5,3)]] function
the result is (func1 just adds the numbers as a test to pass on parameters)

"This is a test with a user 6 function and AHK Hot function"

Pretty nifty if I do say so myself :D


Pretty cool 8-). it's funny: I'm currently working on a template mechanism for AutoHotkey V2, having a similar functionality is definitly on my plan!

Will have a look at your code - if you don't mind, I might "borrow" some ideas ;)

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

Post by list » 15 Nov 2017, 14:37

I'll have look through the list of variables and see what could be useful. Little point in adding A_GuiEvent for example.

I already got to the point so that you can simply call a function like [[function(parameters)]] it sees there is no = and then knows its a function.

Code: [Select all]GeSHi © Codebox Plus

This is a test with a user [[func1(1,2,3)]] function and AHK [[SubStr("AutoHotKey",5,3)]] function
the result is (func1 just adds the numbers as a test to pass on parameters)

"This is a test with a user 6 function and AHK Hot function"

Pretty nifty if I do say so myself :D

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

Post by FanaticGuru » 15 Nov 2017, 14:23

list wrote:What if I added support for (some of) AutoHotkey's built-in variables, so you could just write A_MyDocuments anywhere in your snippet (or plugin) and it would be translated to the correct value.
The paths could be useful. Maybe the time ones although you already have the DateTime=.

If it is just the path ones if might be better to stay with your current scheme like you did for DateTime= and do a Path= and have things like [[Path=MyDocuments]] but allow all the A_ path variables.

A_MyDocuments is easy for me but Path= but might be more consistent for your non-AHK users.

For those comfortable with AHK, I would just add an ability for them to use AHK functions whether standard or custom.

Now that I think about it this could be something like [[AHK= ]] where anything after the = gets evaluated as an AHK expression so you could technically do something like [[AHK=Floor((A_DD+2)/2)]]. This alone would open up a ton of stuff for the power users including custom functions assuming you had a way to #include them like you do the plugins.

Now that I think about it, I could probably just do this under the current version just by writing a custom pluggin called "AHK".

Just thoughts off the top of my head.

FG

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

Post by list » 15 Nov 2017, 12:21

What if I added support for (some of) AutoHotkey's built-in variables, so you could just write A_MyDocuments anywhere in your snippet (or plugin) and it would be translated to the correct value.

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

Post by list » 14 Nov 2017, 12:28

I'll play around with functions and post an update here. Thanks for the clarification / example.

Edit: outline https://github.com/lintalist/lintalist/issues/86

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

Post by FanaticGuru » 13 Nov 2017, 21:18

list wrote:
FanaticGuru wrote:Below is my first plugin for Lintalist. It produces an Ordinal Indicator for a number.
Yay - first third party plugin :-)
Would be useful for others as well I think, would you mind if I included in a future version?
You are more than welcome to use any of my code anyway that you want.

list wrote:Just curious: did you see the readme-howto.txt and template.plugin files / documentation?
I did but it just was not very intuitive and took me a bit to puzzle out what you were explaining.

Maybe a super simple plugin called "Example" would help like:

Code: [Select all] [Expand]GeSHi © Codebox Plus

I did not actually test this and you could refine the comments or plugin but something like this would have made it very clear to me very quickly. I think one problem I had was that I did not quickly realize what was Standard Global stuff and what was stuff I could change whether it be structural stuff in the plugin or variable names.

list wrote:It doesn't matter that much if I call IsLabel or IsFunc so as such it wouldn't be too much work to also allow functions. I think.

An ability to do functions would be nice. You can still use #include to get them in your script. I think that is fine.

How to designate them in the markup is a design choice. Could be something different than [[ ]] like << >> or could be a character within the standard syntax like [[*SomeFunction()]] with * being whatever character seems like a good flag for a function. Could also just autodetect if there are () and no = sign.

The source code would need to handle the inserting whatever the function returned into the PluginText.

FG

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

Post by list » 09 Nov 2017, 17:10

FanaticGuru wrote:Below is my first plugin for Lintalist. It produces an Ordinal Indicator for a number.
Yay - first third party plugin :-)
Would be useful for others as well I think, would you mind if I included in a future version?
FanaticGuru wrote:This was mainly done to learn about how to make Lintalist plugins. ... It took me longer than it seems like it should have for me to read and understand how to create my first plugin.
Just curious: did you see the readme-howto.txt and template.plugin files / documentation?
FanaticGuru wrote:.. I could just copy a dozen functions ... into a folder with no modification and then have them available to use.
There is certainly room for improvement - large part of the code is spaghetti code (long story, but I thought it "best" to go with labels and the =option|option vs ("option","option","option")).

I've thought about adding some form of plugin management:
  • either by having a GUI which looks at files in a folder and presents a listview with checkboxes allowing you to select which ones you'd like to add and/or remove.
  • Or just entirely dynamic: either based on user input ("update plugins") or always at start up (lintalist.ahk would just become a launcher for a new "main script")
This would create the #include and menus at each start up - something like the plugins framework from majkinetor.
The reason for #includi-ng everything is otherwise it won't find the functions (labels) - because they are being called as "%PluginName%" and that won't work with a "\lib\" folder so some form or pre-processing is required for it to work "automatically".

It doesn't matter that much if I call IsLabel or IsFunc so as such it wouldn't be too much work to also allow functions. I think.

FanaticGuru wrote:... I really do like Linalist.
:-)

All suggestions remain welcome - for example if you have any thoughts on modifying the Choice plugin - let me know https://github.com/lintalist/lintalist/issues/53

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

Post by FanaticGuru » 08 Nov 2017, 14:38

Below is my first plugin for Lintalist.

It produces an Ordinal Indicator for a number. That is the "st nd rd th" that goes after a number in English.

[[OrdinalIndicator=3]] will produce "rd"
[[OrdinalIndicator=3|]] will produce "3rd"

Code: [Select all] [Expand]GeSHi © Codebox Plus

This was mainly done to learn about how to make Lintalist plugins.

I really like Lintalist. It is one of the scripts I always have running. But I was not too crazy about the plugin system. It took me longer than it seems like it should have for me to read and understand how to create my first plugin.

It would seem so much easier and intuitive if plugins were just "functions". As opposed to the current system of gosubs with global variables that creates an overhead that you have to understand of how input and output works with the gosubs. Functions inherently already have an understood system of input through parameters and output through return.

[[OrdinalIndicator(1234)]] would seem so much easier to understand in the Lintalist markup, in the creation of the plugin, and even in the source coding of Lintalist. Just put a bunch of custom functions in a folder and those functions then become useable in the Lintalist markup.

It would be great if I could just copy a dozen functions that I already have for things like putting commas in numbers, formatting money, padding strings, various string manipulations, etc. (basically standard function from my AHK library) into a folder with no modification and then have them available to use in Lintalist.

Maybe a dual system where <<OrdinalIndicator(1234)>> indicates a custom function and not a plugin.

There might be other problems with this approach that I have not thought about and it would be a major modification at this point. Just my feedback. The most important feedback being that I really do like Linalist.

FG

Top