-
Notifications
You must be signed in to change notification settings - Fork 93
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Outline for DTD file is messed up #226
Comments
#228 should fix that |
@fbricon I have started to manage DTD ElementDecl and attributes witth teh DOMDocument. Outline should now display DTD <!ELEMENT and <!ATTLIST (external or intenal DTD should work). For external DTD, I display the DOCTYPE, because external DTD is a DOMDOcument which have only a DOMDocumentType (it's a choice that I have done to continue to work with DOMDocument only, and not have a new structure like DTDDocument)) @NikolasKomonen, @fbricon hope you will like it. Tests must be written. |
mmm WTP chose to not even display AttList elements in its outline |
@fbricon I wanted to display attribute in hierarchy (I have coded that), but it seems teh hierarchy doesn't use the "containerName". It seems it uses location, so it's not possible to display attributes after a given element as a tree. That's why I display attribute with element@attribute label. Any feedback are welcome! |
do you have a new screenshot? |
I will do it if you wish, but you can try it. I have pushed my work. |
Sorry I can't play with lsp4xml today |
Here the result in vscode: Please note that you must use vscode-xml 0.2.0 to test it with lsp4xml from master because if redhat-developer/vscode-xml#94 |
|
I think you have your Outline vscode sorted by type, no? Sort by location or name should fix your sort, no?
fixed. I have written tests too, so if you think we can close this issue, close it. thanks. |
So the list of document symbol returned to the client is properly ordered, matching the order of their declaration in the document. debug output[Trace - 2:10:16 AM] Sending request 'textDocument/documentSymbol - (13)'. Params: { "textDocument": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd" } } ... [Trace - 2:10:16 AM] Received response 'textDocument/documentSymbol - (13)' in 68ms. Result: [ { "name": "web-app", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 71, "character": 0 }, "end": { "line": 75, "character": 70 } } }, "containerName": "" }, { "name": "auth-constraint", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 93, "character": 0 }, "end": { "line": 93, "character": 53 } } }, "containerName": "" }, { "name": "auth-method", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 104, "character": 0 }, "end": { "line": 104, "character": 32 } } }, "containerName": "" }, { "name": "context-param", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 112, "character": 0 }, "end": { "line": 112, "character": 64 } } }, "containerName": "" }, { "name": "description", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 127, "character": 0 }, "end": { "line": 127, "character": 32 } } }, "containerName": "" }, { "name": "display-name", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 139, "character": 0 }, "end": { "line": 139, "character": 33 } } }, "containerName": "" }, { "name": "distributable", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 149, "character": 0 }, "end": { "line": 149, "character": 30 } } }, "containerName": "" }, { "name": "ejb-link", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 173, "character": 0 }, "end": { "line": 173, "character": 29 } } }, "containerName": "" }, { "name": "ejb-local-ref", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 190, "character": 0 }, "end": { "line": 191, "character": 32 } } }, "containerName": "" }, { "name": "ejb-ref", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 208, "character": 0 }, "end": { "line": 209, "character": 27 } } }, "containerName": "" }, { "name": "ejb-ref-name", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 225, "character": 0 }, "end": { "line": 225, "character": 33 } } }, "containerName": "" }, { "name": "ejb-ref-type", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 238, "character": 0 }, "end": { "line": 238, "character": 33 } } }, "containerName": "" }, { "name": "env-entry", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 247, "character": 0 }, "end": { "line": 248, "character": 16 } } }, "containerName": "" }, { "name": "env-entry-name", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 261, "character": 0 }, "end": { "line": 261, "character": 35 } } }, "containerName": "" }, { "name": "env-entry-type", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 282, "character": 0 }, "end": { "line": 282, "character": 35 } } }, "containerName": "" }, { "name": "env-entry-value", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 296, "character": 0 }, "end": { "line": 296, "character": 36 } } }, "containerName": "" }, { "name": "error-code", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 303, "character": 0 }, "end": { "line": 303, "character": 31 } } }, "containerName": "" }, { "name": "error-page", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 311, "character": 0 }, "end": { "line": 311, "character": 63 } } }, "containerName": "" }, { "name": "exception-type", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 319, "character": 0 }, "end": { "line": 319, "character": 35 } } }, "containerName": "" }, { "name": "extension", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 327, "character": 0 }, "end": { "line": 327, "character": 30 } } }, "containerName": "" }, { "name": "filter", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 338, "character": 0 }, "end": { "line": 339, "character": 27 } } }, "containerName": "" }, { "name": "filter-class", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 346, "character": 0 }, "end": { "line": 346, "character": 33 } } }, "containerName": "" }, { "name": "filter-mapping", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 363, "character": 0 }, "end": { "line": 363, "character": 69 } } }, "containerName": "" }, { "name": "filter-name", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 371, "character": 0 }, "end": { "line": 371, "character": 32 } } }, "containerName": "" }, { "name": "form-error-page", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 381, "character": 0 }, "end": { "line": 381, "character": 36 } } }, "containerName": "" }, { "name": "form-login-config", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 390, "character": 0 }, "end": { "line": 390, "character": 63 } } }, "containerName": "" }, { "name": "form-login-page", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 399, "character": 0 }, "end": { "line": 399, "character": 36 } } }, "containerName": "" }, { "name": "home", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 411, "character": 0 }, "end": { "line": 411, "character": 25 } } }, "containerName": "" }, { "name": "http-method", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 418, "character": 0 }, "end": { "line": 418, "character": 32 } } }, "containerName": "" }, { "name": "icon", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 427, "character": 0 }, "end": { "line": 427, "character": 42 } } }, "containerName": "" }, { "name": "init-param", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 435, "character": 0 }, "end": { "line": 435, "character": 61 } } }, "containerName": "" }, { "name": "jsp-file", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 443, "character": 0 }, "end": { "line": 443, "character": 29 } } }, "containerName": "" }, { "name": "large-icon", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 460, "character": 0 }, "end": { "line": 460, "character": 31 } } }, "containerName": "" }, { "name": "listener", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 468, "character": 0 }, "end": { "line": 468, "character": 36 } } }, "containerName": "" }, { "name": "listener-class", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 477, "character": 0 }, "end": { "line": 477, "character": 35 } } }, "containerName": "" }, { "name": "load-on-startup", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 495, "character": 0 }, "end": { "line": 495, "character": 36 } } }, "containerName": "" }, { "name": "local", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 505, "character": 0 }, "end": { "line": 505, "character": 26 } } }, "containerName": "" }, { "name": "local-home", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 514, "character": 0 }, "end": { "line": 514, "character": 31 } } }, "containerName": "" }, { "name": "location", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 523, "character": 0 }, "end": { "line": 523, "character": 29 } } }, "containerName": "" }, { "name": "login-config", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 533, "character": 0 }, "end": { "line": 533, "character": 71 } } }, "containerName": "" }, { "name": "mime-mapping", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 541, "character": 0 }, "end": { "line": 541, "character": 46 } } }, "containerName": "" }, { "name": "mime-type", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 549, "character": 0 }, "end": { "line": 549, "character": 30 } } }, "containerName": "" }, { "name": "param-name", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 558, "character": 0 }, "end": { "line": 558, "character": 31 } } }, "containerName": "" }, { "name": "param-value", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 565, "character": 0 }, "end": { "line": 565, "character": 32 } } }, "containerName": "" }, { "name": "realm-name", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 573, "character": 0 }, "end": { "line": 573, "character": 31 } } }, "containerName": "" }, { "name": "remote", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 585, "character": 0 }, "end": { "line": 585, "character": 27 } } }, "containerName": "" }, { "name": "res-auth", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 601, "character": 0 }, "end": { "line": 601, "character": 29 } } }, "containerName": "" }, { "name": "res-ref-name", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 610, "character": 0 }, "end": { "line": 610, "character": 33 } } }, "containerName": "" }, { "name": "res-sharing-scope", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 625, "character": 0 }, "end": { "line": 625, "character": 38 } } }, "containerName": "" }, { "name": "res-type", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 634, "character": 0 }, "end": { "line": 634, "character": 29 } } }, "containerName": "" }, { "name": "resource-env-ref", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 653, "character": 0 }, "end": { "line": 654, "character": 25 } } }, "containerName": "" }, { "name": "resource-env-ref-name", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 664, "character": 0 }, "end": { "line": 664, "character": 42 } } }, "containerName": "" }, { "name": "resource-env-ref-type", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 673, "character": 0 }, "end": { "line": 673, "character": 42 } } }, "containerName": "" }, { "name": "resource-ref", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 696, "character": 0 }, "end": { "line": 697, "character": 22 } } }, "containerName": "" }, { "name": "role-link", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 706, "character": 0 }, "end": { "line": 706, "character": 30 } } }, "containerName": "" }, { "name": "role-name", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 715, "character": 0 }, "end": { "line": 715, "character": 30 } } }, "containerName": "" }, { "name": "run-as", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 724, "character": 0 }, "end": { "line": 724, "character": 43 } } }, "containerName": "" }, { "name": "security-constraint", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 732, "character": 0 }, "end": { "line": 733, "character": 41 } } }, "containerName": "" }, { "name": "security-role", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 752, "character": 0 }, "end": { "line": 752, "character": 50 } } }, "containerName": "" }, { "name": "security-role-ref", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 768, "character": 0 }, "end": { "line": 768, "character": 66 } } }, "containerName": "" }, { "name": "servlet", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 777, "character": 0 }, "end": { "line": 778, "character": 86 } } }, "containerName": "" }, { "name": "servlet-class", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 786, "character": 0 }, "end": { "line": 786, "character": 34 } } }, "containerName": "" }, { "name": "servlet-mapping", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 794, "character": 0 }, "end": { "line": 794, "character": 54 } } }, "containerName": "" }, { "name": "servlet-name", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 802, "character": 0 }, "end": { "line": 802, "character": 33 } } }, "containerName": "" }, { "name": "session-config", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 810, "character": 0 }, "end": { "line": 810, "character": 44 } } }, "containerName": "" }, { "name": "session-timeout", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 821, "character": 0 }, "end": { "line": 821, "character": 36 } } }, "containerName": "" }, { "name": "small-icon", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 838, "character": 0 }, "end": { "line": 838, "character": 31 } } }, "containerName": "" }, { "name": "taglib", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 845, "character": 0 }, "end": { "line": 845, "character": 47 } } }, "containerName": "" }, { "name": "taglib-location", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 854, "character": 0 }, "end": { "line": 854, "character": 36 } } }, "containerName": "" }, { "name": "taglib-uri", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 863, "character": 0 }, "end": { "line": 863, "character": 31 } } }, "containerName": "" }, { "name": "transport-guarantee", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 879, "character": 0 }, "end": { "line": 879, "character": 40 } } }, "containerName": "" }, { "name": "url-pattern", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 888, "character": 0 }, "end": { "line": 888, "character": 32 } } }, "containerName": "" }, { "name": "user-data-constraint", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 896, "character": 0 }, "end": { "line": 896, "character": 67 } } }, "containerName": "" }, { "name": "web-resource-collection", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 907, "character": 0 }, "end": { "line": 908, "character": 28 } } }, "containerName": "" }, { "name": "web-resource-name", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 916, "character": 0 }, "end": { "line": 916, "character": 38 } } }, "containerName": "" }, { "name": "welcome-file", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 924, "character": 0 }, "end": { "line": 924, "character": 33 } } }, "containerName": "" }, { "name": "welcome-file-list", "kind": 7, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 932, "character": 0 }, "end": { "line": 932, "character": 44 } } }, "containerName": "" }, { "name": "auth-constraint/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 945, "character": 0 }, "end": { "line": 945, "character": 41 } } }, "containerName": "" }, { "name": "auth-method/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 946, "character": 0 }, "end": { "line": 946, "character": 37 } } }, "containerName": "" }, { "name": "context-param/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 947, "character": 0 }, "end": { "line": 947, "character": 39 } } }, "containerName": "" }, { "name": "description/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 948, "character": 0 }, "end": { "line": 948, "character": 37 } } }, "containerName": "" }, { "name": "display-name/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 949, "character": 0 }, "end": { "line": 949, "character": 38 } } }, "containerName": "" }, { "name": "distributable/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 950, "character": 0 }, "end": { "line": 950, "character": 39 } } }, "containerName": "" }, { "name": "ejb-link/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 951, "character": 0 }, "end": { "line": 951, "character": 34 } } }, "containerName": "" }, { "name": "ejb-local-ref/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 952, "character": 0 }, "end": { "line": 952, "character": 39 } } }, "containerName": "" }, { "name": "ejb-ref/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 953, "character": 0 }, "end": { "line": 953, "character": 33 } } }, "containerName": "" }, { "name": "ejb-ref-name/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 954, "character": 0 }, "end": { "line": 954, "character": 38 } } }, "containerName": "" }, { "name": "ejb-ref-type/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 955, "character": 0 }, "end": { "line": 955, "character": 38 } } }, "containerName": "" }, { "name": "env-entry/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 956, "character": 0 }, "end": { "line": 956, "character": 35 } } }, "containerName": "" }, { "name": "env-entry-name/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 957, "character": 0 }, "end": { "line": 957, "character": 40 } } }, "containerName": "" }, { "name": "env-entry-type/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 958, "character": 0 }, "end": { "line": 958, "character": 40 } } }, "containerName": "" }, { "name": "env-entry-value/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 959, "character": 0 }, "end": { "line": 959, "character": 41 } } }, "containerName": "" }, { "name": "error-code/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 960, "character": 0 }, "end": { "line": 960, "character": 36 } } }, "containerName": "" }, { "name": "error-page/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 961, "character": 0 }, "end": { "line": 961, "character": 36 } } }, "containerName": "" }, { "name": "exception-type/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 962, "character": 0 }, "end": { "line": 962, "character": 40 } } }, "containerName": "" }, { "name": "extension/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 963, "character": 0 }, "end": { "line": 963, "character": 35 } } }, "containerName": "" }, { "name": "filter/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 964, "character": 0 }, "end": { "line": 964, "character": 32 } } }, "containerName": "" }, { "name": "filter-class/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 965, "character": 0 }, "end": { "line": 965, "character": 38 } } }, "containerName": "" }, { "name": "filter-mapping/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 966, "character": 0 }, "end": { "line": 966, "character": 40 } } }, "containerName": "" }, { "name": "filter-name/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 967, "character": 0 }, "end": { "line": 967, "character": 37 } } }, "containerName": "" }, { "name": "form-error-page/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 968, "character": 0 }, "end": { "line": 968, "character": 41 } } }, "containerName": "" }, { "name": "form-login-config/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 969, "character": 0 }, "end": { "line": 969, "character": 43 } } }, "containerName": "" }, { "name": "form-login-page/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 970, "character": 0 }, "end": { "line": 970, "character": 41 } } }, "containerName": "" }, { "name": "home/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 971, "character": 0 }, "end": { "line": 971, "character": 30 } } }, "containerName": "" }, { "name": "http-method/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 972, "character": 0 }, "end": { "line": 972, "character": 37 } } }, "containerName": "" }, { "name": "icon/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 973, "character": 0 }, "end": { "line": 973, "character": 30 } } }, "containerName": "" }, { "name": "init-param/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 974, "character": 0 }, "end": { "line": 974, "character": 36 } } }, "containerName": "" }, { "name": "jsp-file/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 975, "character": 0 }, "end": { "line": 975, "character": 34 } } }, "containerName": "" }, { "name": "large-icon/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 976, "character": 0 }, "end": { "line": 976, "character": 36 } } }, "containerName": "" }, { "name": "listener/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 977, "character": 0 }, "end": { "line": 977, "character": 34 } } }, "containerName": "" }, { "name": "listener-class/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 978, "character": 0 }, "end": { "line": 978, "character": 40 } } }, "containerName": "" }, { "name": "load-on-startup/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 979, "character": 0 }, "end": { "line": 979, "character": 41 } } }, "containerName": "" }, { "name": "local/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 980, "character": 0 }, "end": { "line": 980, "character": 31 } } }, "containerName": "" }, { "name": "local-home/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 981, "character": 0 }, "end": { "line": 981, "character": 36 } } }, "containerName": "" }, { "name": "location/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 982, "character": 0 }, "end": { "line": 982, "character": 34 } } }, "containerName": "" }, { "name": "login-config/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 983, "character": 0 }, "end": { "line": 983, "character": 38 } } }, "containerName": "" }, { "name": "mime-mapping/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 984, "character": 0 }, "end": { "line": 984, "character": 38 } } }, "containerName": "" }, { "name": "mime-type/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 985, "character": 0 }, "end": { "line": 985, "character": 35 } } }, "containerName": "" }, { "name": "param-name/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 986, "character": 0 }, "end": { "line": 986, "character": 36 } } }, "containerName": "" }, { "name": "param-value/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 987, "character": 0 }, "end": { "line": 987, "character": 37 } } }, "containerName": "" }, { "name": "realm-name/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 988, "character": 0 }, "end": { "line": 988, "character": 36 } } }, "containerName": "" }, { "name": "remote/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 989, "character": 0 }, "end": { "line": 989, "character": 32 } } }, "containerName": "" }, { "name": "res-auth/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 990, "character": 0 }, "end": { "line": 990, "character": 34 } } }, "containerName": "" }, { "name": "res-ref-name/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 991, "character": 0 }, "end": { "line": 991, "character": 38 } } }, "containerName": "" }, { "name": "res-sharing-scope/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 992, "character": 0 }, "end": { "line": 992, "character": 43 } } }, "containerName": "" }, { "name": "res-type/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 993, "character": 0 }, "end": { "line": 993, "character": 34 } } }, "containerName": "" }, { "name": "resource-env-ref/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 994, "character": 0 }, "end": { "line": 994, "character": 42 } } }, "containerName": "" }, { "name": "resource-env-ref-name/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 995, "character": 0 }, "end": { "line": 995, "character": 47 } } }, "containerName": "" }, { "name": "resource-env-ref-type/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 996, "character": 0 }, "end": { "line": 996, "character": 47 } } }, "containerName": "" }, { "name": "resource-ref/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 997, "character": 0 }, "end": { "line": 997, "character": 38 } } }, "containerName": "" }, { "name": "role-link/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 998, "character": 0 }, "end": { "line": 998, "character": 35 } } }, "containerName": "" }, { "name": "role-name/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 999, "character": 0 }, "end": { "line": 999, "character": 35 } } }, "containerName": "" }, { "name": "run-as/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 1000, "character": 0 }, "end": { "line": 1000, "character": 32 } } }, "containerName": "" }, { "name": "security-constraint/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 1001, "character": 0 }, "end": { "line": 1001, "character": 45 } } }, "containerName": "" }, { "name": "security-role/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 1002, "character": 0 }, "end": { "line": 1002, "character": 39 } } }, "containerName": "" }, { "name": "security-role-ref/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 1003, "character": 0 }, "end": { "line": 1003, "character": 43 } } }, "containerName": "" }, { "name": "servlet/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 1004, "character": 0 }, "end": { "line": 1004, "character": 33 } } }, "containerName": "" }, { "name": "servlet-class/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 1005, "character": 0 }, "end": { "line": 1005, "character": 39 } } }, "containerName": "" }, { "name": "servlet-mapping/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 1006, "character": 0 }, "end": { "line": 1006, "character": 41 } } }, "containerName": "" }, { "name": "servlet-name/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 1007, "character": 0 }, "end": { "line": 1007, "character": 38 } } }, "containerName": "" }, { "name": "session-config/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 1008, "character": 0 }, "end": { "line": 1008, "character": 40 } } }, "containerName": "" }, { "name": "session-timeout/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 1009, "character": 0 }, "end": { "line": 1009, "character": 41 } } }, "containerName": "" }, { "name": "small-icon/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 1010, "character": 0 }, "end": { "line": 1010, "character": 36 } } }, "containerName": "" }, { "name": "taglib/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 1011, "character": 0 }, "end": { "line": 1011, "character": 32 } } }, "containerName": "" }, { "name": "taglib-location/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 1012, "character": 0 }, "end": { "line": 1012, "character": 41 } } }, "containerName": "" }, { "name": "taglib-uri/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 1013, "character": 0 }, "end": { "line": 1013, "character": 36 } } }, "containerName": "" }, { "name": "transport-guarantee/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 1014, "character": 0 }, "end": { "line": 1014, "character": 45 } } }, "containerName": "" }, { "name": "url-pattern/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 1015, "character": 0 }, "end": { "line": 1015, "character": 37 } } }, "containerName": "" }, { "name": "user-data-constraint/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 1016, "character": 0 }, "end": { "line": 1016, "character": 46 } } }, "containerName": "" }, { "name": "web-app/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 1017, "character": 0 }, "end": { "line": 1017, "character": 33 } } }, "containerName": "" }, { "name": "web-resource-collection/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 1018, "character": 0 }, "end": { "line": 1018, "character": 49 } } }, "containerName": "" }, { "name": "web-resource-name/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 1019, "character": 0 }, "end": { "line": 1019, "character": 43 } } }, "containerName": "" }, { "name": "welcome-file/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 1020, "character": 0 }, "end": { "line": 1020, "character": 38 } } }, "containerName": "" }, { "name": "welcome-file-list/@id", "kind": 20, "location": { "uri": "file:///Users/fbricon/Downloads/web-app_2_3.dtd", "range": { "start": { "line": 1021, "character": 0 }, "end": { "line": 1021, "character": 43 } } }, "containerName": "" } ] But vscode orders it differently, elements first, in some random order apparently, then the attlists, almost in the correct order: first and last have been swapped, all others in between keep their positions. @jrieken any idea why? |
what does "outline > ... > sort by" say? |
@angelozerr @jrieken ok it was sorted by type. Which I suspected. I completely overlooked that menu. It's just that the secondary sort seems unpredictable, but that looks like a VS Code thing. |
Yeah, we have issue for that on our end. 🤞 that we fix that next milestone... |
Outline is still borked with this dtd : |
Also ATTLIST seem to be lost when elements have the same name, in http://java.sun.com/dtd/web-app_2_3.dtd :
probably because it's the same symbol type |
@fbricon I think the problem is because XMLScanner is not enough tolerant. I hope @NikolasKomonen work in #261 will improve that. As I try to explain we need a really more tolerant parser. @NikolasKomonen it should be cool if you could see if your #261 fixes the problem and otherwise try to fix it. If you have no time, I will see it. |
@angelozerr the dtd's are not malformed, so it's not (only) a matter of being fault tolerant or not. |
@fbricon it's because our parser desn't take care of possibility of ATTLIST parsing. The problem comes from
Our dtd parser consider that this ATTLIST is not valid (althoug it is valid). So we need 2 fixes:
|
Ok so now I see that ATTLIST are shown as children of ELEMENTs. So that's ok. |
Save http://java.sun.com/dtd/web-app_2_3.dtd locally and open it, you'll see the outline view and breadcrumbs (if "breadcrumbs.enabled": true) look really bad:
The text was updated successfully, but these errors were encountered: