Hey guys. I'm pretty excited about getting to post this. Warning: Wall of text incoming. This is like an account of all the stuff that's happened. Don't worry, to prevent total boredom, I've added pictures and gifs. Like a picture book.
Anyway, I've had this
big bout of insomnia lately. Like 1-3 hours of sleep a day. Less than 20 hours in a week.
It SUCKS! Maybe it's because my
my laptop is inoperable due to fan failure. I had to order a new one because the original died and we all know shipping time is brutal from
China.
I'm mentioning that so I can mention this. Me getting 1-3 hours of sleep a night = Hella free time. Hella free time + my main machine being down = X
Solve for X. X = I needed a project.
Of my options on "Things to do", SciTE4AutoHotkey was something that had been on there a while, piqued my interest, was something I could start from scratch, could be done on a sub-par laptop, and it seemed beneficial to not just me but
everyone. So, I picked it up like a
pair of scissors and ran with it.
Some of you may have seen
my comment the other day. Twas not a bluff or an attempt at getting free
uppies. A couple days before that post, I had already started (and have been actively) rewriting the entire ahk.api and ahk.keyword.properties files from scratch.
I'm also worried about the fact that it has been like 1/2 a decade since someone has updated these files.
I finished rewriting and "carding" every command, built-in function, and built-in variable a couple nights ago. Since then I've (mostly?) finished getting all the "other keywords" listed (What a pain in the ass. Even at this point I know I've missed some stuff. There are just so many options, subcommands, sub-subcommands, properties, methods, options...you guys are smart. You get what the hell I'm going on about.) Last night I started getting into the guts of the program, commenting out the AHK files, reading up on .api files, reading
about SciTE's options, etc...
More SciTE info for those interested. So, what changes have you made to the API?
The following numbers are rough but accurate. Items refers to commands, built-in variables, built-in functions, flow controls statements, and other keywords. "Other keywords" refers to language verbs, options, subcommands, subcommand options, etc... Example:
and not in is between extends this on off alwayson alwaysoff toggle ...
Registry words/values, sound options, sysget/winget/process options, etc... are all "other keywords":
REG_SZ REG_BINARY HKLM HKU PCSPEAKER SYNTH Monitor ID PID ...
You get the idea.
The Old API has about 1093 items. Of those 1093 items, only 123 have any type of additional info bundled with them. 970 are cardless/infoless. The ones that do have info provided have only the most basic of information and options with no info about anything else.
At the time of this posting, the new API I've written has 1383 items. Up 290 items from the old API. (I can guarantee this will go up before beta release.) Of those 1383 lines, 738 of those items (almost every single command, built-in function, variable, and flow control statement) has a card. Up 615 from the old API's basic info. Of the 645 of those items that don't have cards, most lack one, because they're either "other keywords" or are options|subcommands that are covered on a main command's/function's card.
Why even bother adding all those extra words to the API? It seems like a lot of crappy work for no payoff.
A few reasons.
- It causes those commands to show up in the word list.
- It makes typing things easier to type. Example: Typing REG_ shows all the Registry stuff in the word list. Pick the one you want and hit enter.
- Having all the different keywords listed allows them to receive syntax highlighting. This can be used like a form of visual validation while coding.
A little more info on the updated API (
because everyone loves tables!):
| Count | New | Old | Increase |
| CHARACTERS | 119,338 | 28,930 | x4 |
| WORDS | 17,451 | 3,533 | x5 |
| PARAGRAPHS | 1,383 | 1,093 | x1.3 |
| WHITESPACE* | 19,123 | 2,485 | x8 |
* Lots of padding from formatting and cheat sheets.
What exactly are these "CARD" things?
Cards are what I'm calling extended tooltips. For example, with the old SciTE4AHK, if you type #KeyHistory you'd
see this. With the new version, you'd
see this. (That's one of the lesser detailed cards).
Why bother making cards?
Well, I get sick and tired of wasting time alt+tabbing back and forth from SciTE to the docs just to get small pieces of info. It seems like this wastes a lot of time.
Does this function return a 1 or a 0? Or an empty string? Does it return a word? If yes, what word? What does that word mean? What's the subcommand for this command? Does the subcommand have different syntax?? What are that subcommand's options? What's the option for removing duplicates when using the sort command? What about that option that lets you sort by numbers even if they're inside of a string? Does this command's field use traditional or expression format? Does this command set an errorlevel? Have you the Format() command?!
Do you see what I mean? Time wasted because we need some tiny bit of NECESSARY info to make everything work.
I thought "Why the hell not just update the tooltips to have all the info right there?" Why not make SciTE4AHK better by making its calltips more robust and more like a quick reference guide?"
It sounded good to me so...I did it.
How do these cards look?
Currently, each card is set with its full syntax (multiple lines if the command warrants it) followed by its use and whatever extra info goes with it. I've tried to keep these cards small and compact but still pack in as much info as possible. Commands with multiple subcommands have all subcommands listed at the bottom and each subcommand should have its own card with its own options. The goal is not to cover the entire documentation of each command on each card, but to streamline the important info, the options, get return/errorlevel info, etc.
To the newer users out there, you should always read a command's/function's documentation before using it. Don't go off just the card/calltip. Some commands have tons of info that I could never fit onto 1 card. You might miss an option you need or you might misunderstand a command's usage/output/etc... Though I don't think this will be likely because the cards are pretty straight forward.
Here's the general layout/legend for the current card setup. This lists the majority of LABELS: I use with the cards. No one card will ever have all these.
Command, Value|Subcommand, [OptionalParams, Select|One|Option] NOTES: Item refers to any command, built-in function/variable, or keyword. Parameters separated by | pipes indicate "select one of these". Items inside [] brackets are considered optional. TAGS: USE: What a command/function is used for. VALUE: Variable/text/number. Used as input/output for commands. SUBCOMMAND: List of subcommands for the current command. Most subcommands have their own card and own options. DEPRECATED: A command is phased out and should no longer be used. Deprecated tags always come with a replacement tag. REPLACEMENT: Replacement commands/functions for deprecated items. REPLACEMENT: Use SubStr() instead. REMARK: Additional or beneficial information about an item. REMARK: Omitting WinTitle will default to LastFoundWindow. RETURN: The values a function can return and what they mean. RETURN: 1 = Key Down. 0 = Key Up. ERRORLEVEL: Possible ErrorLevel values and what they mean. ERRORLEVEL: 0 = Failure. 1 = Success. EX: Example of command/function use. Most items have these. Also shows return values and/or how the new data looks. R = Return value of command/function => vaobj after of command/function runs EX: arr =: [1, 2, 3] Arr.RemoveAt(2) ; R=2 ; arr => [1, 3] CHEAT: This item has additional data or info on a Cheat_Sheet_ card. These are used for reference charts, data tables, or other info that just can't fit onto 1 card and tend to be larger than normal.
About cheat sheets: This is a new category I've added. It's a bunch of cards that have the prefix Cheat_Sheet_ and can be called just like any other command or function. Type "cheat", select the one you want
from the word list, hit enter to make the text appear (unfortunately, this is necessary) and then hit space. Like I mentioned before, have you seen the Format() function!? That thing is getting its own cheat sheet.
Examples:
Cheat_Sheet_HTML_Color_Names Cheat_Sheet_RegEx Deleting the word makes the tooltip go away. Ctrl+Backspace deletes a whole word instead of just 1 character. It makes things easy. Or just hit esc.
If you're close to being done with the API (and subsequently the keywords file), what do you have left?
I still have quite a bit left.
Re-organize some of the content Homogenize card formatting (make sure every card follows the format that I've changed like 8 billion times since starting) Proofread EVERYTHING again to find errors, typos, etc... Quite a few cheat sheets to create/finish/prettify. Find a clean way to incorporate hotkey card changing/scrolling. Wanting to use mousewheel up/down and arrow up/down (or possibly ctrl+up/down for this). Get TillaGoTo to recognize functions correctly. Change the opening/closing behavior of calltips/cards and find a way to ensure that the wordlist comes up when it's supposed to. Add a new syntax category that acknowledges AHK's built-in properties and methods. Example: File object methods, file object properties, default object methods, exception object properties, etc.. I'm considering making a "lite" version of the API for those who want minimalistic calltips. 1-3 lines per card? Let me know if there's a want for this. Add a light/dark mode for the wordlist, calltips, and tillagoto. See if there's a possibility to add color support for wordlists/calltips in the themes/option. Looking at bundling
Maestrith's GUI Creator with this instead of Smart GUI Creator. I feel Maestrith's GUI Creator is a much better GUI Creator. Or, should I leave Smart GUI Creator in along with it? Opinions? Also, I'm thinking about bundling this impressive message box creator called
Magic Box to replace the older MsgBox Creator.
It's a long list but I'm trying to knock stuff off it little by little.
Here's hoping to have a working Beta available soon for you guys.
Speaking of releasing a Beta... If you guys notice a typo, error, come up with a word(s) that should be added, or anything else, SPEAK UP AND LET ME KNOW. Worst case scenario: I disagree with you, I don't add it/change anything, and you're not out anything. Best case scenario: I agree, add it, and you+everyone else get the functionality you requested. Same goes with design ideas/suggestions. But, being honest, I don't have plans on doing tons of expansions to this program (I might not even be capable of it). Regardless, feedback is a great thing. Opinions on the name SciTE4AHK_GO? For GroggyOtter Edition.
When the beta is released, I'll be making a
new sticky post. If you'd like a tag notification, leave a comment below with "notify me" in it.
I'll post edits if there's anything else worth mentioning/updates to give. Make sure you check back.
Gonna go
grab a burrito.
<3 Edit: Still actively working on this. I've invested quite a bit of time into it and will probably be investing quite a bit more as the list of things I want to change/add is growing. Also, my fan finally came. Didn't work. Wrong brand. Wrong amperage... The moral of the story is don't order things from China.
Edit 10Oct2018: For those checking back, I'm still going at this full bore. I had to, unfortunately, rewrite my rewritten API. I did a really REALLY dumb thing. During a simple RegEx search/replace during a formatting thing I was doing, I managed to not click the "in selection" box. It wiped out everything after a comma... All the items and their formatting were saved, but a lot of sentences became 1/2 sentences, commands had all parameters wiped, examples were blanked, etc. :( "Why didn't you just ctrl+z?" Because I didn't know about it until way WAY after. "Why didn't you restore a backup?" The last one I had was pre-finish, let alone pre-formatting changes I had started to do. So, yeah, moral of the story is back your shit up (frequently) and don't make formatting changes to a master document...
On a positive note, I've gotten EVERYTHING redone except for commands H-Z (so like 90% of all lexems in the lexer). As a bonus, the rewrite (I don't like saying rewrite. It's more like re-transcribe and re-format...) allowed me to restructure everything and made the whole process go much faster and smoother. It took probably less than 1/2 the time to do it the second time around. :)
I've also added quite a bit to the "things I'd like to change/implement" list. Not going to post it because I don't know what I want to keep and not keep and don't want to get hopes up. But I will mention one thing I came up with that I really liked and want to run with. I came up with this option. No name yet but I'm thinking SynGUIs or SynStrings. Anyway, the current idea is based on a .syn hotstring. It checks the command/function just typed, looks it up, and then loads a small GUI with that command/function and all its parameters preloaded with defaults (maybe add an option to save user preferred command defaults?). The first design was to use all edit boxes but then I decided to use param appropriate controls. If there are only 3 options, add a dropdown with the 3 options. If there are multiple options, add some checkboxes. Tab navigation. Escape to close. Enter (or click OK button) to insert command where it just was. AKA mouseless navigation. Also, I'd like to implement some kind of error checking. I'm hoping something like this will result in faster code creation with fewer errors. I've already started working on this as a "take a break from writing and formatting the API".
So, that's the update. I hope to have a working beta for you guys sooner than later. Just know that I'm actively working on this every day during my free time. :)
Edit 18Oct2018: I've pretty much written an entire AHK v1.1 Lexicon from the online docs. From that I've made an updated/revised ahk.api rewrite. Admittedly, I think the calltips are a bit large and I need to consider trimming them down or possibly just making a "lite" version with more minimalisitic calltips. I've created some more Cheat_Sheets. Yay! I'm currently working on updating the syntax file with the new categories I've made. This will expand what gets highlighted and allows for more color options.
I've started updating TillaGoto. All the regexs for labels, hotstrings, and functions have been rewritten. Yes functions now show up! Overhauling the GUI and adding some new features. A new sort feature has been added to sort the results in the lsit box by 1) The order it was found 2) ascending order or 3) descending order. Can be seen in the screenshot below. The original colors were really bright, especially against my happy hacker theme. Screenshot of original TillaGoto. I decided to add a "dark mode". Updated TillaGoto in dark mode with the same file. Dark mode can be accessed from the new system tray icon. If anyone wants to design a neat new icon, feel free to post them. I'll let you know if I want to use it. I want to add classes to the detection list and possibly class method detection. I also want to add a tab system that will allow users to sort results by specific type. So there would be an All tab, a Function tab, a Label tab, etc...
That's not everything, but it's a good chunk. With the lexicon rewrite (which I will be posting, too) and api being done, I'll be able to really focus on the changes and updates I wanted to make.
Cheers.
submitted by Create & Analyze options strategies, view options strategy P/L graph – online and 100% free. An option's premium is the combination of its intrinsic value and time value. ... For example, binary options have a simple payoff structure that is determined if the payoff event happens ... Binary Options Indicators Explained. The Open (or opening price), Close (or closing price), the High Low; often referred to as OHLC for short Bollinger bands are binary options tr A binary option is a financial product where the buyer receives a payout or loses their investment, based on if the option expires in the money. Binary options depend on the outcome of a "yes or ... Binary Option Payoff Search. Search This Blog Posts. Showing posts from January, 2018 ... In order to use this method you will only have to use a total of 4 indicators on your chart. The great advantage of this newbie binary options winning method is the fact that it always promises proven results in around 75%-90% of the time you are trading ...
"Binary options are not promoted or sold to retail EEA traders. If you are not a professional client, please leave this page." Reliable Binary Options Broker with a ★Profit of up to 95%★! Binary Options (BO106) - Chart Timeframes Financial Trading School. ... How To Pay Off Your Mortgage Fast Using Velocity Banking ... 60 Seconds binary options strategy 99 ... Binary options tend to be considered a type of gambling rather then expenditure due to their damaging cumulative payout (the brokers have an edge over the Trader) and since they are marketed as ... https://binaryoptionsbeat.com/ #Binaryoptions #Nadex #Nadextutorial You can always contact me via [email protected] In this video I tried to explain ... 60 SEC Binary Options Strategy : Profitable Logical Sixty second Binary Trading : Binary ALPHA INTRO - Duration: 27:55. BINARY ALPHA 166,371 views