So having found this section of the website Latest ide/Customization topics - ClarionHub
I wondered how far I could take the customisation process.
So this is what I’ve discovered so far, bearing in mind, I have “currently” no interest in dotnet I’m just coming from a Windows api perspective.
So yesterday I saw something which suggested dot net is just bindings so it got me thinking what exactly do this mean and so I started to peruse this section of the website.
A variety of XML files exist, eg C:\Clarion[version]\bin\Addins\Clarion.addin
inside lots of stuff, looks esoteric, but it can be worked out.
Some basics.Dot Net dll’s, are called Assemblies, they differ internally to a traditional win32 dll.
So you’ll need a tool like ILSpy Releases · icsharpcode/ILSpy · GitHub
https://github.com/icsharpcode/ILSpy/releases/download/v7.2.1/ILSpy_binaries_7.2.1.6856.zip
https://ilspy.net/
ILSpy is the open-source .NET assembly browser and decompiler.
To see whats inside, its alot more detailed than the Clarion LibMaker, which is what I was looking for originally.
In C:\Clarion[version]\bin\Addins\Clarion.addin there is this line.
<Import assembly=":Clarion.Core"/>
Refers to the Clarion.Core.Dll file found in C:\Clarion11\bin
Further down the Clarion.addin file is this section
<Path name = "/Workspace/Autostart">
<Class id = "StartRedirection"
class = "Clarion.Core.Redirection.StartupCode"/>
</Path>
Now using ILSpy, load up the Clarion.Core.dll file. For the first time, there will be nothing in the left hand pane, and to remove entries which appear here, just right mouse click and choose remove to clear this pane.
File, Open, C:\Clarion11\bin\Clarion.Core.Dll
Expand the node Clarion.Core (11.0.0.13244, .NETFramework, v4.0)
You should now see a few nodes with { }, expand the one called Clarion.Core.Redirection and then you should see a greyed node called StartupCode.
This refers to the class = "Clarion.Core.Redirection.StartupCode"/>
seen above in the Clarion.addin xml file.
Another useful tool is the XML notepad. Install - XmlNotepad (microsoft.github.io)
This makes it easy to view alot of these XML files.
Anyway click back on the node called StartupCode and in the right hand pane, click on the ellipse button with the 3 dots.
Now I dont know if this infringing SV licence agreement at this stage, but if you were to click on OpenFileDialog.InitialiseRedirection();
ILspy will then jump you to the node where InitialiseRedirection is, which happens to be at Clarion.Core.Redirection.OpenFileDialog.InitialiseRedirection and then you can see more bits of code.
Anyway this will help you get a feel for whats going on under the hood and maybe help you work out how you can further customise your IDE.
Some other observations. In the same Clarion.addin file is this section.
<MenuItem id = "Insert" label = "${res:XML.MainMenu.EditMenu.Insert}" type="Menu">
<MenuItem id = "InsertColor"
label = "${res:XML.MainMenu.ToolMenu.InsColor}"
class = "ICSharpCode.SharpDevelop.DefaultEditor.Commands.ShowColorDialog"/>
<MenuItem id = "InsertClarionColor"
label = "${res:XML.MainMenu.ToolMenu.InsClarionColor}"
class = "ICSharpCode.SharpDevelop.DefaultEditor.Commands.ShowClarionColorDialog"/>
<MenuItem id = "InsertGuid"
shortcut = "Control|Shift|G"
label = "${res:XML.MainMenu.ToolMenu.InsGUID}"
class = "ICSharpCode.SharpDevelop.DefaultEditor.Commands.InsertGuidCommand"/>
</MenuItem>
Shortcut Keys
shortcut = “Control|Shift|G”
Labels seem to be obtained from "${res:
This appears to be a ResourceService.GetString found in C:\Clarion11\bin\ICSharpCode.Core.dll
Anyway there are lots of other XML files in other subfolders.
C:\Clarion11\bin\Addins\BackendBindings\ClarionBinding\Common\Controls\SoftVelocity.Clarion.Runtime.Procedures.xml
This file might be the one that displays the tooltips when using the embed editor
<member name="M:Clarion.RTLProcs.CLIP(System.String)">
<summary>
Removes trailing spaces.
</summary>
<param name="strVar">A string expression.</param>
<returns>A substring with no trailing spaces.</returns>
</member>
Displays in a yellow box
STRING CLIP(STRING str)
Removes trailing spaces.
str:A string Expression.
Returns.A substring with no trailing spaces
When references to icons are made they tend to be:
Icons.[Size].[What]
Icons.24x24.EnableCodeCompletion
Icons.16x16.CommentRegion
Anyway, that might give others a bit more of a clue in order to further customise their IDE.
So now, I’m going to see if I can do a C6 retro layout, with the best bits that I like from C6 and the best bits from C7+
A few other useful links
How to view assembly contents
Assembly dissembler
Calling the dissembler
Loading VS powershell
Load Visual Studio without code,
Tools, Command Line, Developer Command Prompt