Skip to content
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

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

Closed
rsese opened this issue Feb 24, 2018 · 10 comments
Closed

Comments

@rsese
Copy link

rsese commented Feb 24, 2018

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
@liuderchi
Copy link
Owner

liuderchi commented Feb 26, 2018

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>

@damieng
Copy link

damieng commented Feb 26, 2018

@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.

@damieng
Copy link

damieng commented Feb 26, 2018

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

@liuderchi
Copy link
Owner

... 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)

@damieng
Copy link

damieng commented Feb 27, 2018

v0.9.0 is now out with much better autocomplete too

@damieng
Copy link

damieng commented Feb 28, 2018

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

@liuderchi
Copy link
Owner

liuderchi commented Mar 1, 2018

@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.

@tillkruss
Copy link

I'm not getting any errors anymore.

@rsese
Copy link
Author

rsese commented Mar 1, 2018

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

@liuderchi
Copy link
Owner

LGTM. Will close this. Thank you guys 💯

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants