helpfiles/refpages for jsui/v8ui in Max 9 no longer accessible ?

Nodanoma's icon

Hi there,

Before Max 9, one could define one's own objectfiles and substitutions for custom jsui-objects which also allowed direct access to their .maxhelp/refpages when set up correctly. This was achieved using the method:

; max definesubstitution

usually written in a .txt-file in the /init-folder of a package.

Since Max 9 the objects are still created correctly with these lines of text, however, helpfiles and reference pages are no longer accessible and one always ends up at the general jsui/v8ui helpfile.

In the new Max 9 documentation, under The define Message, it says the following needs to be written in the textfile , or sent as a message to max:

; max define 

With the example provided in the above mentioned documentation, it's all hunky dory and everything works as expected, including the mentioned 'transform'-command from the object's dropdown-menu. None of this works anymore, whether using the deprecated (?) definesubstitution or define messages.

autocompletion works…
…file is not loaded though.
javascript file has to be entered manually…
'Transform'-options unavailable

So, I am quite lost and would like to map all the helpfiles and refpages set up to their jsui/v8ui objects again. What can I do?

I have created a quick 'TEST'-package to make sure I am not missing anything and to allow others to reproduce:

package tree and contents

the file 'test-objectmappings.txt' contains the following line, as suggested in the documentation:

max define max.defined.v8ui v8ui max.defined.v8ui.js;
the-define-message.zip
zip

Any help or guidance would be gretly appreciated!

PS: Since the jsui is now considered legacy, it would make great sense to upgrade the dropfile-options for JavaScript files in Max, since v8ui/v8/v8.codebox are not offered but still only js/jsui when dragging a .js-file onto an unlocked patcher. This obviously throws an error when js-Files have been coded for v8.

v8/v8ui/v8.codebox should instead be offered

Thank you very much!

Nodanoma's icon

when instead the line is provided like this:

max define [objectname] v8ui @filename [javascript-file];

with the @filename attribute added, the mapping (finally) works. Alas, the helpfiles still are not launched, neither are the refpages. This does, however, work with other mappings like jit.gen; here, the helpfiles are launched, just not with v8ui.
That being said, in the above shared folder the reffile is not named correctly, it needs to be max.defined.v8ui.maxref.xml.

TFL's icon

Got fooled by the same thing as you a while back. A difference between v8 and v8ui is that v8 can take a filename directly as an argument while v8ui cannot. So max define max.defined.v8ui v8ui max.defined.v8ui.js; won't work because v8ui max.defined.v8ui.js is not a valid object, while v8ui @filename max.defined.v8ui.js is.

If you haven't already, I recommend the reading of this 3 parts article about package authoring. The last part is about authoring specifically,

Nodanoma's icon

Yes thanks, TFL. As mentioned above, that @filename reference fixes the mapping to the v8ui-files at least — but the helpfiles/refpages (the concern of this post) are still not launched.

The Article about package authoring is great and has helped me massively when I first studied it a while ago. The issue with the missing helpfile-mappings isn't addressed there though afaik and seems to be an issue since upgrading to Max 9 since it had worked in Max 8 (if I am not mistaken).

Any further guidance or hint on this I would highly appreciate. Thanks!

Joshua Kit Clayton's icon

Thank you for the report. I can confirm that there is a regression with helpfiles for jsui in Max 9 (reference files work for jsui if they have the correct maxref.xml file-extension). I can also confirm that this doesn't work for v8ui.

I've ticketed and we will look into this issue.