|
Use with caution. These public beta programs contain new fixes and new features that haven't been fully tested. I need you to tell me if you find any problems with these program or even if the changes listed work as you expect. |
AC and RM Roadmaps
Rename Master is currently in feature freeze. No new features will be added at this point - only bug fixes and polishing. Final preparations are being made for an official release. It's been several months since the last release, so the remaining TODO list items are scheduled for the next version. A JavaScript Step, a better method to switch between Wildcard/RegEx textboxes, as well as a way to do number math for renaming are all planned.
ArsClip doesn't have any further planned changes for the current version. Experimentation is happening with a new HTML viewer, but this change would occur in the next version if things work out. The release is currently scheduled after RM has been released with time allocated for any possible hotfixes.
ArsClip and Rename Master Beta Status Updates
I've received some excellent feedback/ideas from a user, so I decided to temporarily switch focus to updating RM. The new features are support for longer filenames (Win10 build 1607 and above), better navigation support for the Renaming Script, and a ?reg? metavariable to turn a single search textbox into a full Regular Expression. There are 2 polish items left on the TODO list for RM, so this is almost complete.
AC Beta still has one major feature left on the TODO list. Similar to the new "_Clip Menu" group, the new group will be to customize the "Alter Clipboard" menu on the Clipboard Bar. I'll be using this space to also disclose some new HTML scripts, to show off the new scripting support. I'm still testing a new HTML control in a experimental project, but I doubt this be in the next official release. There's a lot of testing left to be done with this control: it needs to be fast, stable, and fit the size limits of the Tooltip.
ArsClip Beta Roadmap
I've a few items that I've already planned for the next Public Beta.
The first change will be experimental. I'll be adding a new command line parameter to generate a language.ini file. This won't support all text in the program, but most static controls will be included. This will be a compromise between having zero language support and completely rewriting the program.
The next change will be some optimization for loading the program. I've already started to do record the loading speeds for all the windows in the program. I've pinpointed the slowest loading parts to diagnose. I found that writing to INI files is slow due to external scanners, so I'll be updating these to be in-memory writes followed by a single disk write. The last Beta already optimized the Configuration window ArsClip.ini storage. The last Beta also optimized the loading of Removed Clips in the History tab, but there are probably more places for optimizations.
A small tweak for Clip Sets is planned. When multiple sets exist, but the last Clip Set has less clips than the configured size - blank spaces will be shown instead of shrinking the Popup. This will help the Popup feel a bit more consistent in size and will work better when using the Scroll Wheel to change Clip Sets.
Custom Clip Menu macros will be moved to the clip database. This will work about the same, except it wouldn't make sense to enable Global Hotkeys for these clips.
Similarly, I'm still planning on added an Alter Clipboard section to the database for the Clipboard Bar. I've some design issues to work out still, but this would show off some of the new HTML Clip support with some default clips.
Lastly, I'm testing a newer HTML Viewer that could be used for showing HTML Clips on the Tooltip and possibly the Clipboard Bar.
ArsClip Beta Feature Freeze
No new features will be added to the current Public Beta of ArsClip. Enough has changed that I just want to focus on fixing issues and preparing for an official release. The current changes can be summed up as: scripting support for HTML Clips and History/Permanent Clips Tab polishing.
This is a first step for better HTML Clip support. Ideally, I'd like HTML Clips to be visible as formatted text on the Clipboard Bar and on the Tooltip when hovering clips. The currently solution for showing HTML Clips in the History / Permanent Clips works OK, but would not work for those other locations. I'll be researching a better solution (more below).
For the next version, it's going to be a bunch of research. First, I had an idea for supporting a language file. It wouldn't cover everything, but I could automate the extraction of pre-designed text from windows. To fully do translation for my software would just be too much work and I'd have zero idea if the translation was done well.
I'm also testing a new control for displaying HTML. If I had a way to convert HTML to RichText, this would be perfect. I've just not found a solution for this, since AC already supports RichText in a lot of locations. Since AC supports old OSes, I'm looking at a solution that's not dependent on "Edge". So, the control needs to be quick, not rely on an OS specific component, and let me disable scrollbars. The biggest issue with the current solution is that it doesn't work for smaller windows like the Clipboard Bar and the Tooltip, since the scrollbars take up so much space. I may just have to have HTML formatted text as an option to ensure Tooltips are quick.
ArsClip and HTML Clips
I've added support to Permanent Clips for retrieving data from HTML Clips. My plan is to use these to create a group of "Alter Clipboard" clips that do specific functions for HTML data. For example:
function main(clipboardStr) {
var doc = getClipboardHTMLDocument();
if (doc == null) return;
var links = doc.getElementsByTagName("a");
for(var i = 0; i < links.length; i++)
{
links[i].innerText = links[i].innerText + ' ( ' + links[i].href +' ) ';
}
setClipboard(doc.body.innerText);
}
This function gets a standard DOM Document object for the HTLM Clip on the clipboard. Then, it places the URL in parenthesis for each link. Finally, it converts the entire clip to plaintext. So, basically, this preserves links for clips made from a web browser. You could easily change a few lines and create an "extract links" script instead. Example:
function main(clipboardStr) {
var doc = getClipboardHTMLDocument();
if (doc == null) return;
var links = doc.getElementsByTagName("a");
var s = "";
for(var i = 0; i < links.length; i++)
{
s += links[i].innerText + ' ( ' + links[i].href +' ) \n';
}
setClipboard(s);
}
Over the years, the Chrome engine has stopped supporting RichText and now only places an HTML Clip for the formatted text on the clipboard. My idea is to expand the current "Alter Clipboard" menu of the Clipboard Bar to work with HTML Clips. At the same time, I want the menu to be a Permanent Group that users can customize. So, if you have any HTML Clip needs - let me know. I might be able to whip up a quick script.
Visuals and Modern Windows - Feedback Requested
ArsClip and Rename Master were first designed when 640x480 and 800x600 monitor resolutions where the normal. Both programs still have assumptions based on these sizes. I've been rethinking the choices and what I should do to modernize the programs. For example, AC uses a very small font for some Tooltip messages that doesn't make sense on today's larger monitors.
The latest Public Beta of Rename Master added an experimental rm.ini setting for changing the scaling of forms. This is a work-around since just changing font sizes would break a lot of text not fitting in controls. RM already had settings for changing the font of the File List, but that was it. AC has a different usage pattern, so it doesn't have a main window that people look at the majority of the time. AC also had full customization of the Popup's size and look.
Neither program has support for Light/Dark mode. AC already has color options for the Popup, but there are several forms in the program. I've done some preliminary testing on changing the "theme" of the programs, but there are some issues for RM. Since I'm drawing and creating my own controls for the Renaming Script, a small part of this would have to be partially rewritten.
--
My question is this, would you use settings to rescale all the windows and/or want dark mode support in RM/AC?
ArsClip Update Part 3
This is a "silent" update. I've created 2 new Clip Menu scripts and 1 new Permanent Clip script for the "View > Online Code Examples" section. Currently, Clip Menu scripts are accessed under Configuration>Clip Menu>Custom Menus. When "New" is selected from this location, the Online Code Examples shows a list specifically for the Clip Menu. Permanent Clips have their own separate list of example scripts.
The first Clip Menu script, called 'Open Clip as File (JavaScript)', saves the selected clip to a file and then runs a program that accepts a filename as command line parameter. This example uses Notepad, Wordpad, and Paint as standard installed programs, but these can be replaced with any program.
The second Clip Menu script, called 'Paste Clip into Program (JavaScript)', copies the selected clip to the clipboard and then runs a program and simulates a paste. This example also uses standard programs that can be replaced.
The Permanent Clip script, called 'Open Clipboard as File (JavaScript)', detects the type of clip on the clipboard and then runs a program that accepts a filename as a command line parameter. This is similar to the Clip Menu script, but it is designed to only work with the clipboard contents.
These scripts show of how to use the new Clip Menu functions and the Save Clip to Folder functions. These scripts are a little more complicated than normal, so they'll work on a default install of Windows.
ArsClip Update Part 2
This update is focused on the scripting part. I spent a few hours working on some scripts to exercise the routines and noticed quite a few shortcomings in the process. My goal is to have new Online Code Examples created for the Clip Menu that show off the new features better than my minimal patch notes.
These new changes are almost exclusively JavaScript, because conditional statements are usually a requirement. The new Save Clip to Folder routines return the full generated filename, and that type of work just doesn't fit in the AC Macro design scheme. The Clip Menu information could be a Pinned, Popup, or Clipboard Clip that requires using specific routines.
First, the Clip Menu debugging was a pain. Having to exit out of the editor, open the Popup, activate the Clip Menu, and select the custom script was tedious. The new Index/Location functions in JavaScript are great for writing a single script that will work with the Pinned, Popup, and Clipboard Clips. However, it needed some help. So, I created a function that will fake selecting a specific clip from the Clip Menu to make debugging much easier.
Next, getting debug information from the script wasn't straight forward. There is a writeDebugText() function that writes to the AC Debug Window. This is fine if you know how to show it, know where it is in Configuration, or know the double right-click system tray trick. The showDebugText() function show a message box, but it stops the flow of the script. A simple change was to add a textbox under the Results that only shows when you use the writeDebugText() routine. So, when you run a JavaScript clip, you can see the clipboard state, the pasted results (if any) and all the debug text you've created.
Lastly, the JavaScript Reference section was completely re-written. It now uses a control system just like the Command Reference that mimics the "Insert JavaScript" menu.
I've a few minor ideas for tweaks for improving the experience. For example, some code-insight like features would be nice. Clicking on a function or command and being able to right-click it to show the reference material would be a nice QoL feature. So, there may be a part 3 update. I first needed to make the new changes to see what feedback I receive. I'm well aware that a small group of users try macros and an even smaller part use JavaScript clips or custom Clip Menu scripts. I'm also thinking of creating a new "_ClipMenu" system group and importing all the custom Clip Menu scripts to the database. Having them hidden away in a separate location makes discovery harder.
---
Public Beta uploads are now going to be slightly delayed, if the changes are significant. Returning to the program a second day to review my changes lets me see details that I'd probably miss the day before. It also gives me more time to use the program as I normally do to find issues that may crop up. I've been testing this method for the last few betas and fell it improves the quality.

