C11 App Gen Template Error - No LanguageBindingDescriptor using the language(null)

Just testing some templates in C11.

The attached template and C6 app in the zip file which works in C6 doesnt work in C11.

I get various messages basically citing No LanguageBindingDescriptor using the language(null)

Its a really basic template just checking the Target attribute.

#Template(TesterTemplate,'Tester Text'), Family('Tester')
#Procedure(Todo,'Tester - Todo','Tester'), Default 
#Application('Tester - Application')
#Program(ProgramTemplate,'Tester - Program','Tester','.tst')
#Module(ModuleTemplate,'Tester - Module','Tester')
#Procedure(ProcedureTemplate,'Tester - Procedure','Tester')

tester.zip (3.3 KB)

This doesnt work in C11.13244, can anyone say if it works in the latest version of Clarion?

TIA

Edit. I have tried to submit this to the Problem-Tracker Support System (softvelocity.com) but it appears my login credentials no longer work, ie email address for user name and C6 numerical portion of the serial number as the password for the password.

I have tried emailing SV before, probably getting on for a couple of years ago now, but my emails go unanswered so I dont know if they are getting blocked by spam or something.

Unfortunately as I no longer have those domain names that were registered to me, I cant simply put my old email address into the Problem-Tracker Support System (softvelocity.com) page to get it sent out automatically.

Just checked my paperwork and it says I should also be getting C12, but I’ve had nothing since C11.13244. Strange but I dont have the email address I used to purchase it with either, which might be a factor?

Edit.

I’ve just emailed sales and support so will see what happens.

Edit 2
Should the PTSS website be a unencrypted website using http:// or is it a secure website using https:// ?
TIA.

Edit3. Added Template to the the “reserved” words Program, Module & Procedure in case that affected it, but it still doesnt work. At this stage I cant even add a program extension to start customising the template and I dont think you can get a smaller template family/chain/set, than whats written above.

Shouldn’t that be ABC or CW20 or something like that?

You can have whatever you like there.

In C6 you can write it two different ways
Family(‘ABC’),Family(‘Clarion’),Family(‘ABCClarion’)
or
Family(‘ABC’,‘Clarion’,‘ABCClarion’)

Not only that, but if you take the template posted above and lets call that the base template, off the top of my head as an example which I’ve never thought of before, you should be able put the clarion template into a procedure extension, and the abc template into a procedure extension, and add both to the base template above, and have both abc and legacy templates in the one app.

Thats just a thought experiment, but I see no reasons why that shouldnt work logically.

Edit.

I should add, the above has only come about because I think I’ve found a bug in the Where(expression) in the #For loop in C6.
I only found this by adding
#RunDll(‘MyC6functions.dll’,‘[email protected]’,‘Some Message Here’)
placed before and inside the #For loop and I needed to test the template on C11.

You see the way Windows is designed, it provides a not so clever cover of criminal activity namelly the accessing of procedures (ie exported in a dll or not exported in a dll) and I now look at schools, colleges and universitys as a form of premptive state brainwashing people of into conformist thinking, which then reinforces the conformist theorys of people like Solumn Asch.

With State Employees, my parents included, engaged in unethical experiments on the population at large, with subjects having no say in the matter. Ala Winston Churchill, the needs of the many outweigh the needs of the few.

The State gets away with its criminal activity by not teaching law to everyone when they first enter education and there should be a special term to describe the brainwashing of offspring by parents, just like the term Stockholm Syndrome exists, to describe how kidnap victims start aligning with the views of their kidnappers.

I think we could probably invent a term to also describe people who align with other types of groups, or even programming styles, ie handcoders etc, but the term Templaters doesnt exist which could be used to describe people who prefer using templates and wizard as seen in Clarion,Winddev and Lotus Approach and possibly other wizard driven db/programming tools.

Edit
Its not your fault personally, its your jobs fault, but since before primary school, I have suffered criminal activity at the hands of employees of the state, across the many tentacles of the state and your job triggers me. Its a bloody miracle I have not ended up in prison by now. But its the States crypto/stealth way of justifying its existence, whilst also demonstrating my knowledge at such a young age. AKA its a way of holding back clever people.

How else do you efficiently get conformist behaviour when the state is resource burned and people dare to ask questions or disagree? You dish out extreme violence and other unpleasant things and the cover it up, especially when looking at the past when the technology like the internet, IoT, phones didnt exist in order to track and monitor every person with some technology on this planet like there is today?

I should count myself lucky I even made it to this age, considering whats been done to me, and the absolute lies of the state that they are there to protect kids above all else! The State is the ultimate child abuser.

The .NET part of the IDE performs some tuning to handle interaction with the AppGen depending from the target language. Sounds, the IDE does now know the language Tester.

Where do I find a list of valid language’s which can be used here?

My guess: IDE menu -> Tools -> Options… -> Coding -> Edit Standard Headers. The drop-box with the list of supported languages is on the top. #D (=> CW IDE too) allows to install extensions to support more languages. I don’t know requirements to such extensions.

What would the template language be classed as?

@RSchofield might have some insight on that? I think he has written some perl templates.

@RSchofield loves his Perl!

Do you want to use templates to generate template texts?
In general case, it’s a good variant to skip the language parameter of #PROGRAM.

I’ll bear that in mind thanks.

So I’ve add a new entry in [RootDrive]:\Clarion[majorversion]\data\options\StandardHeader.xml

I’ve just simply copied the last entry and duplicated and edited it
< Property name = “StandardHeader.Tester”>/*
< snip>
*/< /Property>

reloaded the IDE, Tools>Options>Coding>Edit Standard Headers where Tester now shows.

So I’ve then tried to create a new app using this template, File>New>Solution,Project or Application, Clarion for Windows, Application, fill in the name myTester, click Create, the Application Properties window appears, I click the Template Application ellipse button, select Tester, this then fills in the Application entry box with TemplateTester, and the ToDo is updated so it shows ToDo(TemplateTester), Application Wizard is unticked as I know this template has no utility wizard at this stage, so I then click OK and nothing happens.

If I then click cancel, and try to load the app file, I can see the MyTester.~ap is visible, along with MyTester.app.
If I close the IDE, and then try to load the app file again, the MyTester.~ap is missing and I then get this message

Application Generator
The Application Path\To\App\MyTester.app couldnt be loaded. Check for missing templates or invalid app file. There is no LanguageBindingDescriptor for the application Path\To\App\MyTester.app using the language (null).

This is with the StandardHeader.xml updated to include Tester.

Any other suggestions?

TIA

Yes.

I’ll make some changes to the template and see what happens.

I’ve had a look online for Ron’s website and any mention of his perl templates, because he used to have a website with it on, but nothing is showing up in the search engines.

Do you think it would be ok for me to contact him and what would be the best method to use?

"Language " is not just a standard header. It is also syntax highlighting and I believe many other things. I know only the part of the .NET side I’ve written myself - support of Clarion Windows as custom controls in .NET Forms. So, I don’t know exactly how the .NET part of the IDE uses the target language parameter. Just use Clarion or omit it.

I’m guessing the LanguageBindingDescriptor, might be a reference to the popup code completion window that appears when typing in the text editor, so I’ll have a hunt around for files linked to that and if I find one or more, I’ll try to create some template language command entries for this standardheader.xml entry.

I cant think of anything else that it might be related to at this stage, its my best guess so far.

That will be my fall back option. :grinning:

Edit.

So Notepad++ is excellent for displaying the contents of any file very quickly in a hassle free way, its like a better version of PCTools Hex Editor.

Clues obtained from here
Add your own programming language to SharpDevelop Part 1: Make your templates available – Serge Desmedt (wordpress.com)

Location : c:\Clarion11\Bin\Addins
In particular c:\Clarion11\Bin\Addins\BackEndBindings\ClarionBinding\ClarionWin\CWBinding.dll.
File sizes are a magnetic for me. :wink:

The files of interest are CWBinding.dll, if you scroll to the last 25% of the file, there are some sentences and some xml, eg
Defines in the format equate=>value
and
<System.Windows.Forms.UserControl>

Sidenote: The use of the word Formater would suggest its Danish for the English word: Formats, potentially indicating the nationality of who worked on this section of the IDE. A truly international effort.

Couldnt see anything at this stage to see why the Sheet and Tab control plays up here, but I might find that later. Further down we have various levels of Keywords which pretty much seem to match the Clarion language commands.
So if I were a betting man, I think I need to create my own binding files.

I can see why you said just use Clarion or omit, as I think it would need creating.

Are there any objections to me creating a new programming language binding for the templates?

After all, if we have a Template family/set/chain for the template language which we could use in the appgen, I think we could unlock the full potential of the IDE as the ultimate IDE for code generation, for all languages, OS’es and cpu’s. What a tool that could be! :crazy_face: I suspect that scares some people as well!

The IDE complains about line 6 #Module(ModuleTemplate,‘Tester - Module’,’’,’.tpw’) which is according to the docs, valid.
The Error message in the output pad which has to be pinned in order to see it when various error message windows and dialog windows appear, suggesting these are Modal windows preventing the user from being able to view the output pad when its hidden cites
Tester.tpl 6,43 Error: ) expected File =…
I can clearly see the close bracket, suggesting an error with the parsing.

Whats also interesting is the .tpw is displayed in black, suggesting the IDE text editor is not parsing the '','.tpw correctly either. I dont know how linked the text editor is to the appgen at this stage.
Consequently the appgen first procedure module is defaulting to the .clw file extension and not .tpl as it should be, when swapping the appgen Tree Mode view to Module.

So @also what this means is, unless I generate all procedures in the appgen in the #Program using the #Program’s assigned file extension, what ever that might be eg .tpl, I cant use the #Module and #Procedure to generate .tpw files.

ie one .tpl file with everything in it, but no .tpl with lots of #Include(‘file.tpw’) and the subsequent file_[000].tpw from modules.

Yes you were right about it being CW20 and not Clarion, memory isnt so good which is one of the reasons why I’m writing this template.

So the Edit Standard Headers, lists
Clarion
Clarion#
C#
VBNET
C++. Net
plus my entries.

However when working in the text editor of C11, I wanted to block comment some code and I wondered if I could block comment the code with a #! instead of the ! seen in C6.
Right mouse click in the text editor File Optiions> lists
ASP/XHMTL
BAT
Patch
XML
JavaScript
Default
HTML
PHP
Clarion
C++. net
Clarion Template

Anyway selecting the Clarion Template and then hilighting a block of code and right mouse clicking Format>Comment Region surprisingly commented the text with #! which was nice as that is a nuisance in C6 at the moment.

Now when I type #Template into the text editor there is no code completion window popping up next to the cursor suggesting template commands, which would suggest to me the Edit Standard Headers window is tied to the code completion window seen in the text editor.

Anyway main thing being it was nice to be able to block comment using the template comment ie #!