atom-minimap / minimap

A preview of the full source code.
https://atom.io/packages/minimap
MIT License
644 stars 128 forks source link

Uncaught TypeError: Cannot read property 'Symbol(Symbol.iterator)' of filter.match #671

Closed setalosas closed 3 years ago

setalosas commented 6 years ago

[Enter steps to reproduce:]

  1. This error came up after I added the line filter: hue-rotate(-151deg) saturate(90%); to the Atom style.less file. I have other filter with just one parameter for a while, it doesn't make any trouble, only the double one. I stepped into the code:

image

When I step through this line, I get the error detailed below.

Effect: after I close the error message, I can continue editing.

Atom: 1.30.0-beta2 x64 Electron: 2.0.5 OS: Microsoft Windows 10 Pro Thrown From: minimap package 4.29.8

Stack Trace

Uncaught TypeError: Cannot read property 'Symbol(Symbol.iterator)' of filter.match

At C:\Users\chuck\.atom\packages\minimap\lib\mixins\dom-styles-reader.js:126

TypeError: Cannot read property 'Symbol(Symbol.iterator)' of filter.match
    at HTMLElement.rotateHue (/packages/minimap/lib/mixins/dom-styles-reader.js:126:26)
    at HTMLElement.retrieveStyleFromDom (/packages/minimap/lib/mixins/dom-styles-reader.js:56:20)
    at HTMLElement.getTokenColor (/packages/minimap/lib/mixins/canvas-drawer.js:205:24)
    at eachTokenForScreenRows (/packages/minimap/lib/mixins/canvas-drawer.js:466:18)
    at editor.tokensForScreenRow.forEach.token (/packages/minimap/lib/mixins/canvas-drawer.js:420:9)
    at Array.forEach (<anonymous>)
    at HTMLElement.eachTokenForScreenRows (/packages/minimap/lib/mixins/canvas-drawer.js:419:38)
    at HTMLElement.drawLines (/packages/minimap/lib/mixins/canvas-drawer.js:453:10)
    at HTMLElement.redrawRangesOnLayer (/packages/minimap/lib/mixins/canvas-drawer.js:270:14)
    at HTMLElement.updateTokensLayer (/packages/minimap/lib/mixins/canvas-drawer.js:136:10)
    at HTMLElement.updateCanvas (/packages/minimap/lib/mixins/canvas-drawer.js:104:10)
    at HTMLElement.update (/packages/minimap/lib/minimap-element.js:887:10)
    at requestAnimationFrame (/packages/minimap/lib/minimap-element.js:780:12)

Commands

Non-Core Packages

(Lots of packages are disabled, I marked them. ) atom-beautify 0.33.0 atom-jshint 2.0.0 DISABLED atom-less 0.1.10 DISABLED atom-live-server 2.3.0 DISABLED atom-material-syntax-light 0.4.6 atom-material-ui 2.0.4 atom-runner 2.7.1 DISABLED atom-terminal-panel 4.4.4 DISABLED atom-ternjs 0.18.3 DISABLED autoclose-html 0.23.0 busy-signal 1.4.3 color-picker 2.3.0 console-panel 0.3.0 DISABLED custom-title 1.0.1 dev-tools-themes 0.1.3 DISABLED devtools-themes-macimod 0.2.0 figlet 0.5.4 DISABLED figletify 0.2.2 DISABLED file-bookmark 1.0.4 file-icons 2.1.24 flex-tool-bar 2.1.2 fonts 3.1.0 DISABLED glowing-cursor 0.1.2 hyperclick 0.1.5 DISABLED icon-fonts 3.1.1 intentions 1.1.5 DISABLED ionic-preview 0.7.0 DISABLED jekyll 2.1.0 DISABLED jekyll-syntax-highlighting 0.1.0 jslint 1.5.1 DISABLED language-asciidoc 1.11.0 language-atom-javascript 0.128.7 language-javascript-jsx 0.3.7 DISABLED language-javascript-subtlegradient 0.1.0 DISABLED language-js-superstylin 0.2.0 language-markdown 0.26.0 language-nginx 0.8.0 language-nsis 6.16.1 DISABLED language-todo-extra-words 0.2.0 DISABLED less-autocompile 1.0.0 less-compiler 0.6.2 DISABLED linter 2.2.0 linter-eslint 8.4.1 DISABLED linter-js-standard 5.1.0 linter-jshint 3.1.8 DISABLED linter-less 2.6.0 linter-makensis 0.10.0 DISABLED linter-php 1.5.1 DISABLED linter-stylelint 4.3.2 linter-ui-default 1.7.1 markdown-writer 2.9.0 material-syntax 0.6.1 material-ui 1.0.10 materialize-css 0.5.1 DISABLED maximize-panes 0.2.0 minimap 4.29.8 minimap-bookmarks 0.4.2 DISABLED minimap-find-and-replace 4.5.2 minimap-hide 0.3.0 minimap-pigments 0.2.2 minimap-titles 1.15.0 multi-cursor-plus 1.2.0 nav-panel-plus 0.3.2 DISABLED open-in-browser 0.5.2 open-recent 5.0.0 permanent-delete 0.1.7 php-debug 0.3.5 DISABLED php-integrator-autocomplete-plus 1.6.2 php-integrator-navigation 1.2.1 DISABLED pigments 0.40.2 platformio-ide-terminal 2.8.3 DISABLED pretty-json 2.0.3 project-manager 3.3.6 quick-highlight 0.13.0 save-workspace 0.5.0 select-rectangle 1.0.2 selection-highlight 0.1.6 semanticolor 3.6.0 DISABLED split-diff 1.5.2 symbols-list 2.5.1 DISABLED teletype 0.13.3 DISABLED todo-show 2.3.0 tool-bar 1.1.7 toolbar-iconshortcuts 3.17.0 DISABLED


I created this issue from Atom, clicking on 'Create issue' in the error form.

Let me know if you have any further questions.

Imre
aminya commented 3 years ago

We don't support the bugs thrown when you edit the package manually. Sorry.

setalosas commented 3 years ago

Of course I did not edit the package manually. I edited the styles.less of Atom, which I consider acceptable behaviour.

The bug is in the dom-styles-reader.js file and it still exists after these years:

const hueRegexp = /hue-rotate\((\d+)deg\)/

This should be:

const hueRegexp = /hue-rotate\((-?\d+)deg\)/

(The actual version cannot read negative hue values.)

aminya commented 3 years ago

Could you make a pull request with your suggested fix?