Improve performance of forward navigation via xsl:call-template
Are you missing a feature? Request its implementation here.
-
- Posts: 6
- Joined: Tue Jul 23, 2019 3:54 pm
Improve performance of forward navigation via xsl:call-template
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
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
-
- Posts: 9434
- Joined: Fri Jul 09, 2004 5:18 pm
Re: Improve performance of forward navigation via xsl:call-template
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
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
<oXygen/> XML Editor
http://www.oxygenxml.com
-
- Posts: 6
- Joined: Tue Jul 23, 2019 3:54 pm
Re: Improve performance of forward navigation via xsl:call-template
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?
Lambert
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
Kind regards,Lambert
You do not have the required permissions to view the files attached to this post.
-
- Posts: 9434
- Joined: Fri Jul 09, 2004 5:18 pm
Re: Improve performance of forward navigation via xsl:call-template
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
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
<oXygen/> XML Editor
http://www.oxygenxml.com
-
- Posts: 6
- Joined: Tue Jul 23, 2019 3:54 pm
Re: Improve performance of forward navigation via xsl:call-template
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.
Still, the depdency recalculation re-occurs every time. Maybe consider whether this can be optimized in future releases.
Thanks for workaround, anyway.
-
- Posts: 9434
- Joined: Fri Jul 09, 2004 5:18 pm
Re: Improve performance of forward navigation via xsl:call-template
Hi,
Thanks, I added an internal issue to see what we can do about the computation being done every time.
Regards,
Radu
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
<oXygen/> XML Editor
http://www.oxygenxml.com
Jump to
- Oxygen XML Editor/Author/Developer
- ↳ Feature Request
- ↳ Common Problems
- ↳ DITA (Editing and Publishing DITA Content)
- ↳ SDK-API, Frameworks - Document Types
- ↳ DocBook
- ↳ TEI
- ↳ XHTML
- ↳ Other Issues
- Oxygen XML Web Author
- ↳ Feature Request
- ↳ Common Problems
- Oxygen Content Fusion
- ↳ Feature Request
- ↳ Common Problems
- Oxygen JSON Editor
- ↳ Feature Request
- ↳ Common Problems
- Oxygen PDF Chemistry
- ↳ Feature Request
- ↳ Common Problems
- Oxygen Feedback
- ↳ Feature Request
- ↳ Common Problems
- Oxygen XML WebHelp
- ↳ Feature Request
- ↳ Common Problems
- XML
- ↳ General XML Questions
- ↳ XSLT and FOP
- ↳ XML Schemas
- ↳ XQuery
- NVDL
- ↳ General NVDL Issues
- ↳ oNVDL Related Issues
- XML Services Market
- ↳ Offer a Service