Improve performance of forward navigation via xsl:call-template

Are you missing a feature? Request it's implementation here.
lbo
Posts: 5
Joined: Tue Jul 23, 2019 3:54 pm

Improve performance of forward navigation via xsl:call-template

Post by lbo » Wed Feb 05, 2020 1:12 pm

Dear Oxygen team,

I have a git project which includes the DocBook distribution as a submodule. Even though the actual project only has a small number of stylesheets, the DocBook submodule brings in a large number (298) of stylesheets.

Now when hovering over the name value of any xsl:call-template instruction in my own set of stylesheets and then pressing Ctrl+Left Mousebutton to forward navigate to the named template being called, the experience is quite frustrating:

a dialog pops up whose title is "Searching declarations", with a progress bar including the text "Calculating resource dependencies". Due to the large number of DocBook stylesheets, this takes quite long - roughly ten seconds. Even though the dialog has a "Cancel" button, pressing it doesn't stop the already running "Calculating resource dependencies" background task. You'll have to wait until it's finished, no matter what. Third, this behavior occurs not only on the first attempt to forward navigate to any given named template, but each time, even when not a single file has changed in the meantime.

Would you please consider improving the performance of this foward navigation function, possibly by avoiding recalculating resource dependencies when it's not necessary?

Kind regards, Lambert

Radu
Posts: 6980
Joined: Fri Jul 09, 2004 5:18 pm

Re: Improve performance of forward navigation via xsl:call-template

Post by Radu » Wed Feb 05, 2020 1:35 pm

Dear Lambert,

If you right click on the root in the Oxygen Project view there is an action called "Enable Master Files Support". If you check that action a new "Master files" virtual folder will appear in the Project. You can right click that folder and add all the top-level XSLT stylesheets.
Oxygen should keep a dependency graph starting from the top level stylesheets which should make locating target templates faster.

Regards,
Radu
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com

lbo
Posts: 5
Joined: Tue Jul 23, 2019 3:54 pm

Re: Improve performance of forward navigation via xsl:call-template

Post by lbo » Wed Feb 05, 2020 1:52 pm

Thanks Radu. I have enabled Master Files Support and added only one XSL (from the main project, not the DocBook submodule) there. The resulting dependency graph should be very small (<20 files) and refer to local storage only (no HTTP-based HREFs).

Sill, the dependency re-calculation continues, and it obviously doesn't examine local storage only, but also seems to be retrieving files via HTTP - from the DocBook release. I've added a screenshot to confirm these observations - note specifically the "http..." text in the modal dialog.

Maybe it's a bug?
oxygenxml.jpg
oxygenxml.jpg (152.52 KiB) Viewed 336 times
Kind regards,
Lambert

Radu
Posts: 6980
Joined: Fri Jul 09, 2004 5:18 pm

Re: Improve performance of forward navigation via xsl:call-template

Post by Radu » Wed Feb 05, 2020 2:31 pm

Hi Lambert,

You did not mention you are using the Oxygen plugin for Eclipse and my original tests were with the standalone Oxygen.
I checked also with the Oxygen Eclipse plugin and at least on my side once I define the master files folder Oxygen no longer spends time computing that reference (when ctrl-clicking a reference to a template).
Indeed those remote HTTP references on your side are quite strange, can you check if any of your DocBook XSLTs have references using xsl:include or xsl:import to http remote XSLT stylesheets? If they do, then maybe there is a "catalog.xml" somewhere in your project mapping those remote references to local resources. If that catalog.xml is there maybe you can open the Eclipse Preferences and the Oxygen XML Editor plugin has an "XML Catalogs" preferences page where you can add a reference to that XML catalog.
In this way Oxygen will map those remote XSLT references to local resources and compute the graph of dependencies much faster.

Regards,
Radu
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com

lbo
Posts: 5
Joined: Tue Jul 23, 2019 3:54 pm

Re: Improve performance of forward navigation via xsl:call-template

Post by lbo » Wed Feb 05, 2020 2:45 pm

Thanks, adding the catalog.xml to the preference you mentioned indeed improves the speed of the resource calculation drastically.

Still, the depdency recalculation re-occurs every time. Maybe consider whether this can be optimized in future releases.

Thanks for workaround, anyway.

Radu
Posts: 6980
Joined: Fri Jul 09, 2004 5:18 pm

Re: Improve performance of forward navigation via xsl:call-template

Post by Radu » Thu Feb 06, 2020 10:20 am

Hi,

Thanks, I added an internal issue to see what we can do about the computation being done every time.

Regards,
Radu
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com

Post Reply