aplteam / fire Goto Github PK
View Code? Open in Web Editor NEWGUI for Find and Replace operations in Dyalog APL
License: MIT License
GUI for Find and Replace operations in Dyalog APL
License: MIT License
This might well be down to a typo, and resettings takes away the chance to fix that typo.
When the "Edit" command is invoked from the menbar then it's fine.
When it is invoked from the context menu then the focus goes back to the session.
Since the same code is executed on both occasions this is a mystery.
Occasionally Fire causes a less than helpful message in the status bar. The attempt to suppress had only limited success: the messages don't show any more when Fire is traced.
... under unknown circumstances when it should not.
Because searching an empty hit list does not make any sense.
However, this is relevant only in case issue #33 is rejected
If the item to be removed is a variable and it is not the last one then all remaining ones disappear.
When searching for, say ⎕Ed
in ⎕SE
Fire crashes when a demo script is running.
This might be caused partly due to the fact that the demo script is fixing part of itself or/and because it is assigning functions and global variables on the same line separated by a ⋄
.
Replacing ⋄
by NL
in Fire.RemoveFnsAndOpr
avoided the crash but the body, after masking all text, still contained a dfn when it shouldn't.
An attempt to break it down was tested with the new test functions Test_Replace_004
and Test_Replace_005
but both test cases pass. No more time at the moment to investigate further but there must be at least additional condition before the bug shows.
Also, avoiding the crash did net help when a "Replace" let to a WS FULL later on due to an endless loop.
This is an old Dyalog bug that is not going to be fixed for compatability reasons. Therefore we have to make sure ourselves that the same position is occupied when the dialog is re-opened.
Removed stuff should be grayed out.
It should remember everything until the current APL session is closed down.
This is a very serious bug introduced with the commit from 2019-05-19.
fire does not find ReadMe.html if User command path is [HOME]\MyUCMDs
I installed fire 9.6
I start Dyalog 18.2 64-bit Unicode
]fire
v
[HOME]\MyUCMDs [SALT]\spice
:For thisPath :In v
)si
⎕SE._Fire.Fire.FindFireReadMe[27]*
⎕SE._Fire.Fire.Run[27]
⎕SE.input.c.Fire_UC.LoadFire[18]
⎕SE.input.c.Fire_UC.Run[26]
⍎
⎕SE.SALTUtils.CallUserCode[0]
⎕SE.UCMD[2]
After installing, I do not have a Fire key in APLTree. I work around this issue by creating a Fire key and a string value HelpFileFolder as I can see in the code.
HKCU\Software\APLTree\Fire\HelpFileFolder
I'd like to start fire while in a Fire Acre project. What's the function and params to launch the app?
WHen after a search operation "Report hits" is triggerd and then an objects edited from that report via its conext menu then the "Search" box in the editor is not pre-populated.
Imagine you've fixed a very important bug in a package Foo
, and now you want to find out which packages are using Foo
in order to update all of them.
Currently this is not possible in Tatin, but there should be a user command and an API function that scans all known registries and report the findings to the session (user command) or return it as the result (API function) as
[alias]package-ID
Since a new version needs to be created, reporting the very last version of any <group>-<name>-<majorNo>
is sufficient.
When I'm trying a search phrase and mistakenly hit down arrow, the search phrase is deleted.
The search phrase dropdown is empty on my system.
Obviously the tab ⎕NL
can be confusing, in particular when the user closes Fire without switching back to the "Workspace" tab and then later does not realize that after a restart ⎕NL
is still the selected tab.
Therefore it might be better to move the name search feature to the "Report" menu. Not ideal either because it does create a new hit list!
Alternatively after a restart the "Workspace" tab could become automatically the active one.
Another option is to associated an icon with the Tabs "Workspace" and ⎕NL
but to display the icon only with the active Tab.
A particular combination of trad fns, dfns, assigned functions and diamonds make Fire crash.
A test case (Test_Replace_008
) was added that crashes on this code:
:Namespace NS
f1←{⍵} ⋄ f2←f1∘⌽
∇ Fns y;a;b
a←⍬ ⋄ b←{⍵}
∇
:EndNamespace
Characters that have a special meaning within regular expressions must be escaped because Fire is using internally RegEx.
I.e.
]fire search for this
Would start fire and execute the search with default settings.
Should the "Hit report" become visible in an additional space added to the right of the current GUI?
Actions like "Remove from hit list" would become much more understandable. Also, checking the "Hit" report is almost always advisable, therefore it should be visible all the time one could argue,
So far when a search expression is a RegEx and the user wants to replace any hits she must go through all objects one by one.
There should be a button "I know what I am up to, fix all in one go" really
With variables it seems that all hits are correctly found but not necessarily correctly marked up.
#.notes.at
from the dfns
workspace demonstrates the problem.
I don't think this is a good behavior. Changing the start path should not reevaluate the search without an explicit button click.
There is so easy way to do a standard Select All vis keyboard or mouse. This is a problem with really long expressions that I'd like to copy.
Edit->Select All doesn't seem to do anything.
Fire version 6.6.3.5
This happens when an item is removed from the hit list from within the "Hit" report.
Only the header gets grey. Instead the whole div surrounding an object should become grey.
To be discussed.
Until the user tries to untick a check box it might not be obvious that the screen shows what is going to be the result after pressing "Fix confirmed changes"
If I close fire while its position is on monitor B and unplug the monitor, fire will not reposition on the main monitor.
This fixes the issue
n←CreateGUI debugFlag;isAv;posn;size;IsPosnAvailable
⍝
n←##.CreateGuiRefContainer
n←CreateIcon n
n←CreateMainForm debugFlag n
n←CreateHiddenButtons n
n←CreateFind n
n←CreateWhereToLook n
n←CreateTabs n
n←CreateTab1Children n
n←CreateTab2Children n
n←CreatePushButtons n
n←CreateCheckBoxes n
n←CreateHitList n
n←SetStateAndActive n
n←CheckStartButton n
IsPosnAvailable←{
⍝ check if coords are actually available to be displayed on
⎕USING←'System.Windows.Forms,System.Windows.Forms.dll' 'System.Drawing,System.Drawing.dll'
(y x)(h w)←⍵
pt←⎕NEW Point(x y)
screens←Screen.AllScreens
contains←screens.Bounds.Contains pt
∨/contains
}
:Trap 0
:If IsPosnAvailable ##.G.(Posn Size)
posn←##.G.Posn
size←##.G.Size
:EndIf
:EndTrap
n.Form.Posn←posn
n.Form.Size←size
⍝Done
However, this will only become possible once LINK offers a reliable API.
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.