liuderchi / ide-html

:atom: Atom-IDE for HTML, Go Template, Mustache and other Templates

Home Page:https://atom.io/packages/ide-html

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

"TypeError: Cannot read property 'length' of undefined" error with PHP file

rsese opened this issue · comments

Description

Reported in atom/ide-php#63.

If you have a PHP file with a .html extension, the outline view doesn't work and you get this error in devtools console:

/Users/rsese/.atom/packages/atom-ide-ui/node_modules/react-dom/cjs/react-dom.production.min.js:164 TypeError: Cannot read property 'length' of undefined
    at r.push.outline.tokenizedText.map (/Users/rsese/.atom/packages/atom-ide-ui/modules/atom-ide-ui/pkg/atom-ide-outline-view/lib/OutlineView.js:418:28)
    at Array.map (native)
    at renderItem (/Users/rsese/.atom/packages/atom-ide-ui/modules/atom-ide-ui/pkg/atom-ide-outline-view/lib/OutlineView.js:416:37)
    at OutlineViewCore._outlineTreeToNode.outlineTree (/Users/rsese/.atom/packages/atom-ide-ui/modules/atom-ide-ui/pkg/atom-ide-outline-view/lib/OutlineView.js:335:18)
    at Array.map (native)
    at OutlineViewCore.render (/Users/rsese/.atom/packages/atom-ide-ui/modules/atom-ide-ui/pkg/atom-ide-outline-view/lib/OutlineView.js:390:39)
    at h (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/react-dom/cjs/react-dom.production.min.js:130:280)
    at beginWork (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/react-dom/cjs/react-dom.production.min.js:133:485)
snip...

Full error:

/Users/rsese/.atom/packages/atom-ide-ui/node_modules/react-dom/cjs/react-dom.production.min.js:164 TypeError: Cannot read property 'length' of undefined at r.push.outline.tokenizedText.map (/Users/rsese/.atom/packages/atom-ide-ui/modules/atom-ide-ui/pkg/atom-ide-outline-view/lib/OutlineView.js:418:28) at Array.map (native) at renderItem (/Users/rsese/.atom/packages/atom-ide-ui/modules/atom-ide-ui/pkg/atom-ide-outline-view/lib/OutlineView.js:416:37) at OutlineViewCore._outlineTreeToNode.outlineTree (/Users/rsese/.atom/packages/atom-ide-ui/modules/atom-ide-ui/pkg/atom-ide-outline-view/lib/OutlineView.js:335:18) at Array.map (native) at OutlineViewCore.render (/Users/rsese/.atom/packages/atom-ide-ui/modules/atom-ide-ui/pkg/atom-ide-outline-view/lib/OutlineView.js:390:39) at h (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/react-dom/cjs/react-dom.production.min.js:130:280) at beginWork (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/react-dom/cjs/react-dom.production.min.js:133:485) at d (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/react-dom/cjs/react-dom.production.min.js:161:93) at f (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/react-dom/cjs/react-dom.production.min.js:161:417) at g (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/react-dom/cjs/react-dom.production.min.js:162:149) at m (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/react-dom/cjs/react-dom.production.min.js:169:173) at w (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/react-dom/cjs/react-dom.production.min.js:168:413) at z (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/react-dom/cjs/react-dom.production.min.js:167:32) at u (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/react-dom/cjs/react-dom.production.min.js:165:441) at Object.enqueueSetState (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/react-dom/cjs/react-dom.production.min.js:108:299) at Object.A.setState (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/react/cjs/react.production.min.js:12:357) at a._subscription.stream.subscribe.newState [as _next] (/Users/rsese/.atom/packages/atom-ide-ui/modules/nuclide-commons-ui/bindObservableAsProps.js:47:14) at a.__tryOrUnsub (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:71:208) at a.next (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:70:63) at a._next (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:68:217) at a.next (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:67:406) at a.notifyNext (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:262:433) at a._next (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:90:52) at a.next (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:67:406) at a._next (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:136:208) at a.next (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:67:406) at a.notifyNext (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:262:433) at a._next (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:90:52) at a.next (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:67:406) at a._next (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:136:208) at a.next (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:67:406) at a._next (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:183:159) at a.next (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:67:406) at a._next (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:136:208) at a.next (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:67:406) at a._next (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:183:159) at a.next (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:67:406) at a.notifyNext (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:88:375) at a._next (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:90:52) at a.next (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:67:406) at a.notifyNext (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:105:241) at a._next (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:90:52) at a.next (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:67:406) at r (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:33:240) at a._innerSub (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:104:487) at a._tryNext (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:104:422) at a._next (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:104:250) at a.next (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:67:406) at a._subscribe (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:88:219) at a.b._trySubscribe (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:73:217) at a.b.subscribe (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:73:43) at b.call (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:103:401) at b.subscribe (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:72:483) at r (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:33:305) at a._callFactory (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:107:45) at a.tryDefer (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:106:442) at new a (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:106:383) at a._subscribe (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:106:270) at a.b._trySubscribe (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:73:217) at a.b.subscribe (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:73:43) at b.call (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:182:145) at b.subscribe (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:72:483) at b.call (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:135:406) at b.subscribe (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:72:483) at b.call (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:182:145) at b.subscribe (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:72:483) at b.call (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:135:406) at b.subscribe (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:72:483) at r (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:33:305) at a._innerSub (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:262:1) at a._next (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:261:375) at a.next (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:67:406) at a._next (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:68:217) at a.next (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:67:406) at a.next (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:77:124) at a.next (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:146:321) at a._next (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:68:217) at a.next (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:67:406) at a.notifyNext (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:262:433) at a._next (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:90:52) at a.next (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:67:406) at a.notifyNext (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:105:241) at a._next (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:90:52) at a.next (/Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:67:406) at /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:93:343 h @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/react-dom/cjs/react-dom.production.min.js:164 g @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/react-dom/cjs/react-dom.production.min.js:162 m @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/react-dom/cjs/react-dom.production.min.js:169 w @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/react-dom/cjs/react-dom.production.min.js:168 z @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/react-dom/cjs/react-dom.production.min.js:167 u @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/react-dom/cjs/react-dom.production.min.js:165 enqueueSetState @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/react-dom/cjs/react-dom.production.min.js:108 A.setState @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/react/cjs/react.production.min.js:12 _subscription.stream.subscribe.newState @ /Users/rsese/.atom/packages/atom-ide-ui/modules/nuclide-commons-ui/bindObservableAsProps.js:47 a.__tryOrUnsub @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:71 a.next @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:70 a._next @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:68 a.next @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:67 a.notifyNext @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:262 a._next @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:90 a.next @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:67 a._next @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:136 a.next @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:67 a.notifyNext @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:262 a._next @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:90 a.next @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:67 a._next @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:136 a.next @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:67 a._next @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:183 a.next @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:67 a._next @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:136 a.next @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:67 a._next @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:183 a.next @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:67 a.notifyNext @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:88 a._next @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:90 a.next @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:67 a.notifyNext @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:105 a._next @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:90 a.next @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:67 r @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:33 a._innerSub @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:104 a._tryNext @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:104 a._next @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:104 a.next @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:67 a._subscribe @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:88 b._trySubscribe @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:73 b.subscribe @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:73 b.call @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:103 b.subscribe @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:72 r @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:33 a._callFactory @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:107 a.tryDefer @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:106 a @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:106 a._subscribe @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:106 b._trySubscribe @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:73 b.subscribe @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:73 b.call @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:182 b.subscribe @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:72 b.call @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:135 b.subscribe @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:72 b.call @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:182 b.subscribe @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:72 b.call @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:135 b.subscribe @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:72 r @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:33 a._innerSub @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:262 a._next @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:261 a.next @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:67 a._next @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:68 a.next @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:67 a.next @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:77 a.next @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:146 a._next @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:68 a.next @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:67 a.notifyNext @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:262 a._next @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:90 a.next @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:67 a.notifyNext @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:105 a._next @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:90 a.next @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:67 (anonymous) @ /Users/rsese/.atom/packages/atom-ide-ui/node_modules/rxjs/bundles/Rx.min.js:93

Expected Behavior

No error or if PHP files with a .html extension isn't supported, maybe a notification/error/warning in the outline view that mentions this?

Actual Behavior

You get the error mentioned above and the outline view is blank.

Possible Fix

Not sure! 🤔

Steps to Reproduce

  1. Save a file called test.html with this content:
<?php
function foo() {
  echo "<p>Hello World!</p>";
}
?>

<html>
 <head>
  <title>Hello World</title>
 </head>
 <body>a
<?
  foo();
?>
 </body>
</html>
  1. Toggle the outline view with Outline View: Toggle

Context

The person that reported the error to ide-php thought the error was coming from ide-php but it was coming from ide-html - it was confusing for us because we assumed the error was with ide-php as well but we couldn't reproduce.

Your Environment

  • Version used:
    ide-html 0.4.1
atom -v
Atom    : 1.24.0
Electron: 1.6.16
Chrome  : 56.0.2924.87
Node    : 7.4.0
  • Environment name and version (e.g. Chrome 39, node.js 5.4):
  • Operating System and version (desktop or mobile):
    macOS 10.12.6
  • Link to your project:
    n/a

trying to find the root cause of this...

NOTE: whenever we have question mark ? in the tag it generates error

the following file has no error until adding a ? in some tag

<html>
 <head>
  <title>Hello World</title>
 </head>
 <body>a
- <
+ <?
  foo();
 >
 </body>
</html>

@liuderchi Looking at the payload that comes back it seems to be because the language server is returning an object for the final part (the <? inside the body) that does not have a name.

image

According to the language server protocol at https://microsoft.github.io/language-server-protocol/specification the name is not optional and should always be returned.

We could put code in to try and deal with this inside atom-languageclient although the best solution is having the language server itself fixed.

Next version of atom-languageclient will filter out any document symbols that have a name missing atom/atom-languageclient@aac3505

... try and deal with this inside atom-languageclient although the best solution is having language server itself fixed.

@damieng huge thanks for this workaround! 💯
Will upgrade atom-languageclient when this feature is released (probably v0.9.0)

v0.9.0 is now out with much better autocomplete too

Actually use v0.9.1 - 0.9.0 has a weird autocomplete bug.

@damieng @rsese ide-html has just released v0.4.2 (along with latest atom-languageclient).

Please upgrade ide-html to confirm that it solves this issue.

I'm not getting any errors anymore.

I updated and can also no longer reproduce 👍 Thanks @liuderchi ✌️

LGTM. Will close this. Thank you guys 💯