Hi,
To help myself not get lost while writing chat script files, I’ve started work on a editor/IDE for ChatScript. It’s current very basic , but I thought that I would post it here so people could have a look and see if they think it would be useful and hopefully give me some feedback.
First I should say that the version attached doesn’t even allow editing, its currently reading only as I’m still working on the editing/saving part. So as it doesn’t ever save anything to your files it shouldn’t be possible for it to corrupt any file, however as with any application that is in the early stages of its development you should always make copies of your files and then use it with those copies.
This is a .net application, so on windows you will need the .net 4.0 framework installed. I would think most windows computers would already have that version installed by now. The application also “should” work under mono so it “should” work on linux or Mac if they have mono installed. However I haven’t even tested it under mono on windows so can’t say for sure that it would work on anything other than a windows computer.
Now on to trying to explain how to use/test it. When it first opens you will see that the window is divided into two parts, on the left is a list section (currently empty) and on the right is the text section (also currently empty).
So you need to open a file, which is done by using the file menu and the load file option.
Once you have selected a ChatScript file in the dialog, then that file will be loaded and in the list section of the window will appear a root node with the name of the file and then under that a list of topics and concepts that are in the file. In the text part of the window will appear the text of the topics and concepts. Note this will be slightly different to the plain text of the file, as currently the parse process, that the application uses, strips some of the formating off (again this change isn’t actually saved to the file, so your file will be unchanged). As a example, most tabs are stripped.
If you expand the topics then you will see child nodes under them, one for each rule in the topic. Currently these child nodes only tell you what type of rule it is (t, s, r, u, ? ).
Now when selecting a topic or a concept in the list, then one of two things happen: (selecting a child rule node has no effect at the moment)
1: by default the application will clear the text window and then only display the text that makes up the selected topic or concept. Selecting another topic or concept will again change the displayed text to the revelant text for that selection. To view the whole file again (all topics and concepts) you need to select the root “File: <name of file>” at the top of the list.
2: the application also has scroll mode, where the text window will always display the whole file but it will auto scroll to the position of the selected topic or concept. To enable this mode you need to select “Scroll To Topic” in the options menu. Also once you have changed to this mode, if you had only a concept or topic text being displayed in the text window, then you need to first select the root “File: <name of file>” item in the list. After that you can select a topic or concept and the text window will scroll to its position.
I’m not that great at writing instructions on how to use a application, so I think these instructions make it sound a lot more complicated than it is.
There is also so very rough/basic colour coding of the text. Text like “topic:”, “concept:” “u:” should be colour coded, but there is some problems in that it doesn’t alway find all the words that should be coloured. You also can turn this on or off from the options menu and the “colour coding” item in that menu.
It is also possible to have multiple files open/loaded at the same time. While in the default mode, when you select on a topic/concept in another file then it will automatically display the text for that selection (all files and there topics will be in the list). However in the scroll to topic mode, currently you will need to manually select the root node of a different file first and then after that you can select the topic/concept.
Now as I said this is a very early stage for the application and it needs a lot of work. It currently can’t read some valid ChatScript files, like it can’t read the default “simplecontrol.top” file. I’m working on finding out why it can’t parse that. But most simpler files work mostly okay. The default “simpletopic.top” works with two minor problems in that the application currently doesn’t ignore comment lines so it tries to parse those lines.
So at the start of the file it thinks the line:
#It is well commented with annotations for :abstract and :verify.
Is defining two new rules that have type “for:” and “and:”. However this has no actual effect at this stage as they are just listed as a extra two rules under the CHILDHOOD topic.
So I need to do quite a bit more work on the parse.
I’m sure if you just have a quick test of it, then how it all works will be clearer than I’m explaining here.
So I would really like to hear what people think of it and any suggestions.