erinata / fingertext Goto Github PK
View Code? Open in Web Editor NEWTab triggered snippet plugin for Notepad++.
Home Page: https://sourceforge.net/projects/fingertext/
Tab triggered snippet plugin for Notepad++.
Home Page: https://sourceforge.net/projects/fingertext/
Tab key is not functional when Notepad++ is launched.
It works only after NPP loses focus then re-focused.
I don't know why sciFocus is needed, but anyway this variable is set to 0 at launch-time, thus tabActivate() isn't functional at that moment.
Hello,
I would like to be able to insert a date using a custom format.
I tried using the run command and the date program, but it inserts a new line, which I don't want.
When I used the pipe symbol, it displayed
extra operand '|'
so I couldn't come up with a way to make it work.
Regards,
Hello, erinata,
I am using portable version of npp, since in my situation, I have jump from one computer to another where some of them do not have npp installed.
I seeing the config file directory and db3 file appears when I launch NPP, but it just disappears whenever I close npp.
Would it be hard to make it able to define the TriggerText via regex? It would be awesome for CSS/LESS/SASS.
BTW: Don't you have a donate button somewhere? People like you are exactly the type I want to support by sending a few bucks. Great work.
triggerText:barChartField
Scope: GLOBAL
Snippet:
a!barChartField(
label:$[![]!],
instructions:$[![]!],
categories:$[![]!],
series:$[![]!],
xAxisTitle:$[![]!],
yAxisTitle:$[![]!],
stacking:$[![]!],
showLegend:$[![(lis)true|false]!],
showDataLabels:$[![(lis)true|false]!],
showTooltips:$[![(lis)true|false]!],
allowDecimalAxisLabels:$[![(lis)true|false]!]
)[>END<]
Whenever I tab into a list and select the value I want, the next line is deleted. I think this could be a bug, but I don't discard a syntax error on my end. Any ideas?
take this string for example:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
putting the caret right after the end and pressing tab will open up a dialog with
'Unknown exception' as the message.
There is a problem with docked windows redraw when you turn off SnippetDock.
Heres a picture of it: http://dl.dropbox.com/u/2850724/gray_bug.PNG
You can see gray background gray color, and labels have white background.
The solution is to check is SnippetDock visible.
Heres a modification of your function updateMode around 4262 line:
void updateMode()
{
updateScintilla();
g_lastTriggerPosition = 0;
TCHAR fileType[MAX_PATH];
::SendMessage(nppData._nppHandle, NPPM_GETFILENAME, (WPARAM)MAX_PATH, (LPARAM)fileType);
if (::_tcscmp(fileType,TEXT("SnippetEditor.ftb"))==0)
{
snippetDock.toggleSave(true);
g_editorView = true;
snippetDock.switchDock(false);
updateLineCount();
} else if (g_enable)
{
snippetDock.toggleSave(false);
g_editorView = false;
if (snippetDock.isVisible()) snippetDock.switchDock(true);
} else
{
snippetDock.toggleSave(false);
g_editorView = false;
snippetDock.switchDock(true);
}
}
I don't know why, but whenever I try to use the snippet editor, notepad++ crashes. I've tried reinstalling notepad (and removing all files in the notepad and appdata notepad directories. The problem occured after I was pasting a rather large code into a template. I don't know if that caused it or not. But everything I've tried since to get this working, has not helped.
I'm able to do the regular tasks, but I just cannot open the snippet editor .
Any idea what may be causing this?
Like the title says, the first time you open the dock, it's doesn't update on the current file.
nodepad++ version: 5.8.7
FingerText version: 0.5.6 (0.5.7 has the same issue)
This is duplicated from stackoverflow:
http://stackoverflow.com/q/21273888/2736496
I've been using TextPad for 15 years or so, and I'm daring to give Notepad++ a try. After reading this answer
http://stackoverflow.com/a/7737503/2736496
and watching his cool video, I'm also giving FingerText a try.
I have the following snippet, which contains four hot-spots, the first and third of which share the same output-text.
catch(RuntimeException rtx) {
CIObject.nullOrReturnCause($[![var-name]!], $[![(lis)s_clgFunc|YYY|"YYY"]!], "$[![var-name]!]", $[![(lis)null|o_xtraInfo]!], rtx);
}$[0[]0][>END<]
It is working just fine, up until I get to the second hotspot: $[![(lis)s_clgFunc|YYY|"YYY"]!]
. While it presents the three options in a drop-down, as expected, and it prints my selection correctly, it is causing the next two hotspots to disappear.
After typing o_theObject
into the first hotspot--which is duplicated into the third--this is the result:
catch(RuntimeException rtx) {
CIObject.nullOrReturnCause(o_theObject, $[![(lis)s_clgFunc|YYY|"YYY"]!], "o_theObject", $[![(lis)null|o_xtraInfo]!], rtx);
}$[0[]0]
Good so far. Now hotspot two, $[![(lis)s_clgFunc|YYY|"YYY"]!]
, is highlighted, and I choose "YYY"
from its drop-down. It results in this:
catch(RuntimeException rtx) {
CIObject.nullOrReturnCause(o_theObject, "YYY", rtx);
}$[0[]0]
This is unexpected. The third hotspot (the duplicate of the first) has disappeared, as has the fourth: $[![(lis)null|o_xtraInfo]!]
.
What am I missing here? Thank you for helping me.
Greetings,
Is it only possible to go one way on the tab stops? or is it possible to use e.g. shift + tab to go backwards?
what the subject says. If I currently create a new snippet and don't put a hotspot marker in it, the cursor position will be before the inserted snippet, not after it as one would assume.
Example (using the provided default snippets): I am editing an HTML file and want to insert a line break. (| should be the cursor position)
br|[now I press TAB]
now, it is correctly replaced, but the cursor moves to the beginning, not the end:
|<br/>
I have to move to the end again to continue writing. I think in the majority of cases it is expected that the cursor stays where it was before the snippet replacement happened, and that is, naturally, at the end.
If you don't agree, it would be at least nice to make this configurable, I find this a little annoying.
P.S. of course I know I can change the behaviour of this by inserting an empty hotspot in the snippets definition, but this is not the point, i don't want to do this for every snippet, I think the normal way should be natural (cursor position stays at the end)
Hi, I'm new to fingerText, and it is really awesome!!!
I've created several code snippets for javascript at home, such as 'switch', 'console.log' etc. and i'm going to share it with other computers, I simply used the "Export all Snippets", and dialog pops up saying export successfully, but I couldn't find any file it exported. Even I run notepad++ using administrator privilege, it still can't work.
anyone could help? the version i'm using is 0.5.60 (see from Plug-in manager dialog)
thanks.
Using 0.5.52.0 Alpha
This is the markup I'm using:
<nav>
<a href="/">Link</a>
<a href="/">Link</a>
<a href="/">Link</a>
<a href="/">Link</a>
</nav>
<article>
$[![]!]
</article>
<aside>
$[![]!]
</aside>
<footer>
$[![]!]
</footer>
I have the following snippet for "link": <link />[>END<]
When I hit TAB by the closing '>' after an </a>
containing the word "Link", FingerText does this:
<nav>
<a href="/">Link</a>
<a href="/">Link</a>
<a href="/">Link</a>
<a href="/"><link />
</nav>
<article>
/a
</article>
<aside>
/a
</aside>
<footer>
/a
</footer>
I figured /a was considered an argument, since it does the same with Link(/a)
. I found this by accident, but I assume it was by design.
Thing is, I have a bunch of HTML snips and many of them use tag names as snippet names. Considering FT is not case-sensitive, I am now concerned over how many unwanted invocations I'll trigger. Can I at least not use <> to wrap parameters?
When several lines are selected and you press TAB the first line isnt indented but he rest are.
Also the selection is increased over 1 more line everytime i press tab.
Heres a video of it: http://dl.dropbox.com/u/2850724/finger.mov
I have this behavior in 0.5.42.0 version.
Fingertext doesn't consider current document's EOL mode, so snippet insertion may cause mixed-EOLs problem.
Below is a quick patch to convert LF-ended snippets into current document's EOL at insertion time.
It doesn't check whether a snippet is CRLF-ended or not, so additional code is needed to make sure an user-created snippets always have LF-ended. (I can see that every imported snippets are converted to LF)
--- PluginDefinition.cpp Thu Jan 15 18:14:12 1970
+++ PluginDefinition.cpp Thu Jan 15 18:14:12 1970
@@ -2962,7 +2962,12 @@
bool replaceTag(char *expanded, int &posCurrent, int &posBeforeTag)
{
+ char *expanded_eolfix;
+ int eolmode = ::SendScintilla(SCI_GETEOLMODE, 0, 0);
+ char *eol[3] = {"\r\n","\r","\n"};
+ expanded_eolfix = replaceAll(expanded, "\n", eol[eolmode]);
+
//TODO: can use ::SendMessage(curScintilla, SCI_ENSUREVISIBLE, line-1, 0); to make sure that caret is visible after long snippet substitution.
//TODO: should abandon this `[SnippetInserting] method
int lineCurrent = ::SendScintilla(SCI_LINEFROMPOSITION, posCurrent, 0);
@@ -2972,7 +2977,9 @@
::SendScintilla(SCI_SETTARGETSTART, posBeforeTag, 0);
::SendScintilla(SCI_SETTARGETEND, posCurrent, 0);
- ::SendScintilla(SCI_REPLACETARGET, strlen(expanded), reinterpret_cast<LPARAM>(expanded));
+ ::SendScintilla(SCI_REPLACETARGET, strlen(expanded_eolfix), reinterpret_cast<LPARAM>(expanded_eolfix));
+
+ delete [] expanded_eolfix;
searchNext("`[SnippetInserting]");
int posEndOfInsertedText = ::SendScintilla(SCI_GETCURRENTPOS,0,0)+19;
@@ -5247,3 +5254,34 @@
//::SendMessage(nppData._nppHandle, NPPM_ACTIVATEDOC, MAIN_VIEW, 1);
}
+
+char *replaceAll(char *src, const char *fromstr, const char *tostr) {
+ char *result, *sr;
+ size_t i, count = 0;
+ size_t fromlen = strlen(fromstr); if (fromlen < 1) return src;
+ size_t tolen = strlen(tostr);
+
+ if (tolen != fromlen) {
+ for (i = 0; src[i] != '\0';) {
+ if (memcmp(&src[i], fromstr, fromlen) == 0) count++, i += fromlen;
+ else i++;
+ }
+ } else i = strlen(src);
+
+
+ result = (char *) malloc(i + 1 + count * (tolen - fromlen));
+ if (result == NULL) return NULL;
+
+
+ sr = result;
+ while (*src) {
+ if (memcmp(src, fromstr, fromlen) == 0) {
+ memcpy(sr, tostr, tolen);
+ sr += tolen;
+ src += fromlen;
+ } else *sr++ = *src++;
+ }
+ *sr = '\0';
+
+ return result;
+}
\ No newline at end of file
--- PluginDefinition.h Thu Jan 15 18:14:12 1970
+++ PluginDefinition.h Thu Jan 15 18:14:12 1970
@@ -168,7 +168,7 @@
void testing();
void testing2();
-
+char *replaceAll(char *src, const char *fromstr, const char *tostr);
For example, I'd like to write a snippet like this:
<div$[![(opt)|id="$[![]!]"|class="$[![]!]"]!]>
$[![]!]
</div>[>END<]
So in that case, you can use the arrow keys to choose an option, and then once the option is chosen, the cursor will be placed at the next hotspot of the chosen item.
currently, it will break if I try to do that and it'll look like this:
<div$[![(opt)|id="$[![]!]"|class="$[![]!]"]!]>
</div>
When i click to show the dock it flashes on for a split second and then back off. It's very hard to maintain snippets without the dock
Hello,
Would it be possible to have trigger names be case sensitive?
Let's say I enter a trigger in my document, start completing the hotspots, and press tab to go to the next hotspot. However, the text I need to enter on one of those hotspots is also a trigger's name.
One solution to the problem would be to change the name of the trigger, but I like my names to be easy to remember, so this is not feasible.
Another solution would be to use one hotkey to move to the next hotspot, and another to validate a trigger. I like using the tab key for doing lots of things, doing different things in different contexts, because I need to remember less stuff, and it's easily accessible on the keyboard. This solution is not optimal.
Yet another solution would be to have triggers be case sensitive. For example, my text often has the first letter capitalized, and I have lowercase triggers, but it would also work if I made all triggers be full caps. This solution would work in my case.
Regards,
I am trying to start a convention-driven repository of snippets. One of the .ftd files I wrote is supposed to expand to the contents of an .ftd file that would contain reserved snippet names.
In order to make sure that FingerText would not stop parsing early, the multiple [>END<]
blocks that were supposed to be part of a snippet were changed to [>$[![END]!<]
so I could just hit TAB a couple of times after typing a scope. I am guessing that not doing the same to the $[]@#
blocks caused some trouble, because when I attempted to import this content, both Notepad++ and Fingertext went bonkers.
"Bonkers" means that every last item in the FingerText menu at the top of the window would yield an "Unknown exception" error, and I could not even close Notepad++. Attempts to do so would yield a "bad allocation" error. I could not even delete the snippet database through N++.
After terminating the process, I tried to open other files and got the same behavior. I then opened the original FTD file for editing and saw this.
I say again: This happened when I tried to open the original FTD file for editing. This did not happen with other files, which only resulted in "Unknown Exception" or "bad allocation" errors.
After clicking the first error away, this pops up.
N++ then froze and became simply unusable. I had to actually go in and remove the FingerText DLL to even open N++ again after that.
The code below is the WIP contents of the ftd file I tried importing to text how FingetText would treat it. Paste the following into an ftd file and import it to see what happens.
Since I could not use N++ or FingerText, I am unable to look up the version info. I should be able to use FingerText again if I manually delete the snippet database. I can also provide a dump if you tell me how to do it.
std-base
GLOBAL
cm
$[![scope]!]
[>$[![END]!]<]!$[FingerTextData FingerTextData]@#
if
$[![scope]!]
[>$[![END]!]<]!$[FingerTextData FingerTextData]@#
ifel
$[![scope]!]
[>$[![END]!]<]!$[FingerTextData FingerTextData]@#
while
$[![scope]!]
while ($[![]!])
{
$[![]!]
}
[>$[![END]!]<]!$[FingerTextData FingerTextData]@#
for
$[![scope]!]
[>$[![END]!]<]!$[FingerTextData FingerTextData]@#
class
$[![scope]!]
[>$[![END]!]<]!$[FingerTextData FingerTextData]@#
func
$[![scope]!]
[>$[![END]!]<]!$[FingerTextData FingerTextData]@#
try
$[![scope]!]
[>$[![END]!]<]!$[FingerTextData FingerTextData]@#
man
$[![scope]!]
[>$[![END]!]<]!$[FingerTextData FingerTextData]@#
info
$[![scope]!]
[>$[![END]!]<]!$[FingerTextData FingerTextData]@#
[>END<]$[FingerTextData FingerTextData]@#
Create a new snippet. Enter the following dynamic hotspot from the documentation as the snippet content:
$[![(opt)Snippet1|Snippet2|Snippet3|Snippet4]!]
Now trigger the text. "Snippet1" will appear as expected, but presseing "tab" changes the text to "Snippet2". Pressing "tab" again does not change the text to "Snippet3", it moves the cursor to the end of "Snippet2".
This seems like a bug. I would think that arrow keys would change among options, but "tab" should not, it should advance the cursor.
I don't see any point in using large fixed width font for dialogs.
Can't you use regular dialog font - MS Sans Serif at 8pt?
Hello,
Thank you for your wonderful plugin, I find it very useful and easy to use.
I'm using version 5.60 alpha of FingerText with Npp++ 6.1.2, and the OS is Win7 x64 Professional.
My problem is relatively new to me, since I've been able to use it flawlessly so far. Long story short, I can't create a new snippet anymore. When I try to create a new snippet Npp++ hangs and eventually crashes.
I've tried running Npp++ with Administrator priviledges also, but without success.
If you need further details or tests, please, let me know. At the moment I couldn't say what could cause the issue.
Thank you again for your time.
Regards
I tried the step describing in
https://github.com/erinata/FingerText/wiki/Surrounded-with-functionality
to wrap a text with an anchor tag.
eg.
I am creating a HTML link:
My original text is "Going to another place"
when select this text -> open SnippetDock -> select insert -> double click the "a" tag
"Going to another place" is being replaced instead of being "wrapped"
replaced with "$[![{text}]!]" instead of expected result
I tried
tag also without hotspot, but the result is same.
Am I overlooked some settings or is it a bug/current limitation?
System information:
Windows 8
Notepad++ 6.3
Fingertext 0.5.6.0 Alpha
Many thanks.
Why?
Because when you are working on a large file (let's say, over 5000 lines of code or more) and you just press the TAB key with the idea of just doing that (adding a tab to your code) FingerText kicks in and tries to find triggertexts and hotspots thus slowing the simple operation of just adding a tab.
When I code away I use the tab key a lot just to indent my code properly and I want this to be fast. When FingerText is on and the file is large this simple operation is slow on machines that are so-so (like old laptops etc).
By the way, I tried to disable FingerText and when you do it the TAB key does not work at all (Notepad++ would not add a tab to the code; it would do nothing whatsoever).
A solution would be to be able to choose a different key for FingerText other than the tab key (maybe the CTRL key or whatever you choose). I guess most people would stick with the TAB key anyway.
What do you think?
The Import snippets from .ftd file shows as a "Save As" dialog. File loads OK.
Hey erinata PHP lang tag type doesn't work, here's the mistake:
PluginDefinition.cpp line 3939
char *s[] = {"Lang:TXT","Lang:PHP ","Lang:C","Lang:CPP","Lang:CS","Lang:OBJC","Lang:JAVA","Lang:RC",
There is a one space after Lang:PHP; just remove the space.
Please preserve the "Toggle On/Off FingerText" setting across sessions (or allow people to set the default toggle setting in the ini file).
it'd be nice if we could select an option in one location and also select the corresponding option in another location.
This is my problem:
I have:
<div$[1[(opt)| id="$[![Unique ID]!]"| class="$[![Class Name]!]"| id="$[![Unique ID]!]" class="$[![Class Name]!]"]1]>
$[![]!]
</div><!-- #$[![Unique ID]!] .$[![Class Name]!] -->[>END<]
After I am done inserting a tag I will see something like <!-- #UniqueID .ClassName -->
if I choose the last option from the option set (it includes both id and class attributes). but if I choose the first option, I will be left with <!-- #UniqueID . -->
and if I choose the second option, I will be left with <!-- # .ClassName -->
when I am done inserting the tag.
It'd be neat if we could match option sets. For example, if we have $[2[(opt)|Option1|Option2|Option3]2]
and somewhere else you have $[2[(opt)|OtherOption1|otherOption2|otherOption3]2]
, it'd be nice if the options sets get matched if they have the same number of options and same priority number. Since both option sets are number 2 and have the same number of options (three each), then when we choose an option during the first selection the corresponding option would appear at the location of the second selection.
If the numbers are different, or if the number of options doesn't match, then no matching would happen.
Here's an example:
Pretend we make a snippet like this:
<div $[1[(opt)|one|two|ONETWO]1]>
$[![]!]
</div><!-- $[1[(opt)|ONE|TWO|OneTwo]1] -->
Currently when we type the triggertext for this snippet and press tab to insert the div element, we will be able to choose an option at the first location:
<div ONETWO>
$[![]!]
</div><!-- $[1[(opt)|ONE|TWO|OneTwo]1] -->
It'd be nice if when we choose the third option in the first option set that the third option in the second option set also gets chosen like this:
<div ONETWO>
$[![]!]
</div><!-- OneTwo -->
If we press the down arrow key to change the selected option of the first option set, then the second option set location would also be updated like this:
<div two>
$[![]!]
</div><!-- TWO -->
Then, when we're done making our selection and press tab, we will be moved to the next hotspot like usual:
<div ONETWO>
We type here now
</div><!-- OneTwo -->
If our template is like this:
<div $[1[(opt)|one|two|three]1]>
$[![]!]
</div><!-- $[1[(opt)|ONE|TWO|THREE|FOUR]1] -->
or like this:
<div $[1[(opt)|one|two|three]1]>
$[![]!]
</div><!-- $[2[(opt)|ONE|TWO|THREE]2] -->
then no matching would happen, and we would select the option for each option set separately, like the current functionality.
Now THAT would be frawsome (freackin' awesome)!
Hi again,
Another feature that I would really like to have is the possibility to create one or more aliases for a given snippet's name, so that for example, I can setup many variations of it and don't have to remember all the names exactly, neither do I have to be worried if I am typing with the caps lock activated.
In case of aliases conflicts you could make an automatic opening of the insertion dialog window so that you can choose which snippet you want.
Thanks
I am working with getting a snippet to give a user a Listbox choice between Nothing, and the particular line or block of script. For some reason when ever the "AnimationArray = AnimationListArray" line is hit it is removed automatically when tabbing too it.
I am assuming I have a syntax error or something but I have been unable to find any thing. Any advice?
P.S. Is there a better way to allow the user to choose between nothing and something without a empty carriage return being left in place of the "nothing"?
Here is the data I am using:
TriggerText = desc
Scope = GLOBAL
Content =
$[![(lis)ActorDesc|base/npcdesc]!]
{
$[![(lis)|AnimationArray = AnimationListArray
{
AnimationLists = array
(
#$[![(run)C:_Vigil\Project4\assets\mainline\build\scripts\helpers\getPackageName.bat]!]/$[![(key)FILENAME]!]_Animations,
);
};]!]
}[>END<]
First of all, I'd like to thank you for this awesome plugin.
Would love to define single snippets for multiple file extensions.
For instance atm I'd like to use a snippet for both *.js & *.coffee
Firstly thanks for providing such a good plugin . I'm using NP++ from so long but just recently only i saw your plugin which is excellent . I'm facing some issues related to Surround functionality. [ Windows 7 32 bit , NP 6.5.1 unicode , FT 0.5.60 ]
Issue 1 :
Unable to wrap selected content with () or {} in the same line .
selected some text -> Alt + / -> script
partially working one ( only to right of Selection ) :: $[![(key)SELECTION]!] $[![(lis))|}]!] $[0[]0]
partially working one result :: SELECTION ) or } [ ie selectedText ) or selectedText} ]
not at all working ::
not at all working result :: ( or { [ even selectedText is also gone ]
Issue 2 ::
If in same NP document there is an expression but cursor is not in that position , still it is getting replaced upon clicking tab .
ex:
abc text [press Tab here]
Result : 4
abc text
Expected Result :
abc text [tab space ]
Issue 3/ Feature Request ::
When text is selected and upon pressing Alt + / , its good only to show the scripts which are having $[![(key)SELECTION]!] only (other than same scope ) , otherwise the selected text will be replaced by the selected expression
This plugin is giving lot of features which probably are not even present in IDE's like chaining , eval's . Excellent work
Hi. the JS snippets are not JS style compliant. Curly brakets should be in the same line with the statement. e.g. for(var i=0; i<len; i++) {
//do stuff
}
see for instance: http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml
There is, I think, a bug when you select some text and try to align whih tab. Something happens that a new line is included in every tab stroke.
The problem does not exist in previous versions.
Thanks!
The issue:
Attempting to create a snippet in FingerText crashes Notepad++
The platform:
Windows XP Professional (Version 2002) Service Pack 3
To replicate:
The message:
An exception occured. Notepad++ cannot recover and must be shut down.
The exception details are as follows:
Code: 0xC0000005
Type: Access Violation
Exception address: 0x1001765D
The versions:
Notepad++: 5.9 (Unicode build)
FingerText: 0.5.7
I have the NppDump if you need it.
Hello,
I'm using Notepad 5.9.3 Unicode on Windows XP. Fingertext has just updated from the plugin manager.
I had created many snippets. They worked as I expect them to.
Since I updated, snippets are inserted with every new line doubled, that is, there are two new lines whereever I expected to have only one.
I discovered that snippets are now inserted with CRCRLF
characters instead of the previously used CRLF
.
I opened one of the snippets with the Snippet Editor, deleted all new lines, rewritten them, and now that snippet works as expected.
I exported all snippets to an ftd file, and in the file, all snippets are written with CRLF
. I didn't modify and import that file back because I didn't want to make things worse.
What do I have to do to have new lines be inserted as they were before, without having to modify my existing snippets?
Regards,
ruijoel
For example, How would I highlight a sentence, then surround it with
tags?
I have tried several approaches to this, I have tried the Customize Toolbar plugin, and editing the CustomizeToolbar.btn, but no luck..
There has to be a fast way then going thru the plugins menu.. is there a shortcut key to open and close the SnippetDock as needed?
Please advise.
Hi,
Before all, many thanks for your great job with this plugin. It really saves a tons of time!
An annoying issue I found, is that I can't easily rename the snippets once I create them. If I change their name in the editor with the edit button it finishes creating a new one, so I have to delete the old duplicate.
Could you consider inserting a Rename button in the plugin?
Of course, the better solution would be a rename button and a batch renamer with some options to change the prefix or the suffix, or to replace some characters from a list of selected snippets' names, but a simple button would be enough useful.
Thanks for the attention.
PS: related to this, another behavior I find frustrating of FingerText is that it opens up a superflous dialog everytime you save a change. Is there a way to avoid this? I am pretty aware that I am saving the changes, why bore me by saying the obvious?
I added a snippet like this: $[![(opt)Snippet1|Snippet2|Snippet3|Snippet4]!][>END<]
When I hit tab, it is activated and when I hit arrow keys, nothing happens. I don't see it cycle through the options.
hi,
do triggers must start with a letter? can that be changed?
I'd like to setup triggers like: "$(" (without the quotes of course) to expand to jquery ready function, or use the open-tag "<" as a prefix for some of the triggers.
Hello,
Can we have the date calcuation using fingertext.
For example :
I am looking to achieve Current date + 3 days.
With the Below snippet I can get the current date.
$[![(key)DATE]!]
but I am not able to add three days to current date and show it.
Any Ideas?
Really nice job with the plugin, it is really awesome.
however I am having an issue. When using multiple hotspots with the same default value, entering something into the first hotspot updates the others but this is not the case if the text comes from a plugin e.g., easy color picker, the other hotspots come up blank.
Can this be fixed please?
Would it be possible to separate the label and the default text? Something like this:
$[![label#default value]!]
I need this function because I am creating a config file, where the user can decide which line to leave and which one to comment out. My first approach for this was:
$[![//]!] command1 = someValue,
$[![//]!] command2 = someOtherValue,
but this way all // are affected at once. I you would separate the label and the default value this would be easier. to do, like:
$[![var1#//]!] command1 = someValue,
$[![var2#//]!] command2 = someOtherValue,
Using 0.5.50
I saw serious potential in being able to open documents from a snippet to automate further typing (i.e. generate a .hpp/.cpp pair with content). I spit out snippets with
Trying to run notepad++.exe from the command line outside of notepad++ works fine, even if it is open.
Can you make it possible to use $[![(run)notepad++.exe]!] to open documents?
The snippet dock doesn't open/launch when I close and re-open notepad++
I have to enable it every time under \FingerText\Toggle on/off SnippetDock
Is it this setting in the .ini snippetdock_state=1? It doesn't seem to make a difference if I change this value.
Great plugin by the way :-)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.