Go to file
eight 2fd531e253 Rewrite linter system (#487)
* Add: implement new linter system

* Refactor: pull out editor worker

* Switch to new linter and worker

* Enable eslint cache

* Fix: undefined error

* Windows compatibility

* Fix: refresh linter if the editor.linter changes

* Add: stylelint

* Add: getStylelintRules, getCsslintRules

* Fix: logic to get correct linter

* WIP: linter-report

* Fix: toggle hidden state

* Add: matain the order of lint report for section editor

* Add: unhook event

* Add: gotoLintIssue

* Fix: shouldn't delete rule.init

* Add: linter-help-dialog

* Drop linterConfig

* Add: linter-config-dialog, cacheFn

* Add: use cacheFn

* Drop lint.js

* Add: refresh. Fix report order

* Fix: hide empty table

* Add: updateCount. Fix table caption

* Switch to new linter/worker

* Fix: remove unneeded comment

* Fix: cacheFn -> cacheFirstCall

* Fix: use cacheFirstCall

* Fix: cache metaIndex

* Fix: i < trs.length

* Fix: drop isEmpty

* Fix: expose some simple states to global

* Fix: return object code style

* Fix: use proxy to reflect API

* Fix: eslint-disable-line -> eslint-disable-next-line

* Fix: requestId -> id

* Fix: one-liner

* Fix: one-liner

* Fix: move dom event block to top

* Fix: pending -> pendingResponse

* Fix: onSuccess -> onUpdated

* Fix: optimize row removing when i === 0

* Fix: hook/unhook -> enableForEditor/disableForEditor

* Fix: linter.refresh -> linter.run

* Fix: some shadowing

* Fix: simplify getAnnotations

* Fix: cacheFirstCall -> memoize

* Fix: table.update -> table.updateCaption

* Fix: unneeded reassign

* Fix: callbacks -> listeners

* Fix: don't compose but extend

* Refactor: replace linter modules with linter-defaults and linter-engines

* Fix: implement linter fallbacks

* Fix: linter.onChange -> linter.onLintingUpdated

* Fix: cms -> tables

* Fix: parseMozFormat is not called correctly

* Move csslint-loader to background

* Fix: watch config changes

* Fix: switch to LINTER_DEFAULTS

* Fix: csslint-loader -> parserlib-loader
2018-10-01 09:03:17 -05:00
_locales Add proper number & range validation 2018-09-24 07:02:04 -05:00
.github no need to open issues that notify about transifex 2018-08-16 13:59:46 +03:00
background Rewrite linter system (#487) 2018-10-01 09:03:17 -05:00
content code cosmetics: convert to a lintable template string 2018-09-11 17:41:46 +03:00
edit Rewrite linter system (#487) 2018-10-01 09:03:17 -05:00
images/icon remove what-input, use own implementation, rebase on master 2017-12-13 03:27:10 +03:00
install-usercss show the reason why update/liveReload is unavailable 2018-08-06 12:45:53 +03:00
js Rewrite linter system (#487) 2018-10-01 09:03:17 -05:00
manage Alas, poor clamp! I knew it well 2018-09-24 07:02:04 -05:00
msgbox don't autofocus external links like feedback 2018-09-06 20:59:04 +03:00
options buttons are outside of option block and shouldn't be constrained 2018-06-14 14:49:05 +03:00
popup preserve the focused element when replacing entry in-place 2018-09-13 08:41:15 +03:00
tools actually copy codemirror.js before patching 2018-08-25 15:10:14 +03:00
vendor CodeMirror v5.40.0 2018-08-25 15:11:03 +03:00
vendor-overwrites Rewrite linter system (#487) 2018-10-01 09:03:17 -05:00
.editorconfig Don't enforce non-native end_of_line in editorconfig 2017-04-18 12:43:30 +03:00
.eslintignore refactor CSSLint 2018-01-07 12:31:23 +03:00
.eslintrc USO bug workaround: collapse long URL vars 2018-04-12 09:13:55 +03:00
.gitignore Rewrite linter system (#487) 2018-10-01 09:03:17 -05:00
edit.html Rewrite linter system (#487) 2018-10-01 09:03:17 -05:00
global.css simplified font CSS 2018-08-20 13:11:02 +03:00
install-usercss.html Update libraries (#440) 2018-07-21 20:58:54 +03:00
LICENSE Adding external licenses (#424) 2018-07-09 16:39:31 +03:00
manage.html show update-all button on individual check too 2018-08-15 10:13:52 +03:00
manifest.json 1.4.22 2018-09-20 12:55:52 +03:00
options.html Vivaldi requires tabindex="0" for <a> with svg icon inside 2018-03-29 06:37:04 +03:00
package.json Rewrite linter system (#487) 2018-10-01 09:03:17 -05:00
popup.html switch "Shortcuts" to "Wiki" in the popup 2018-07-02 18:28:38 +03:00
README.md no need to open issues that notify about transifex 2018-08-16 13:59:46 +03:00

Stylus is a fork of Stylish for Chrome, also compatible with Firefox as a WebExtension

Highlights

  • In addition to the userstyles.org site, styles with customizable parameters can also be installed from .user.css or .user.styl URLs (see Usercss format wiki).
  • Site styles can be discovered and previewed in the popup using inline search with screenshot thumbnails.
  • A backup feature which is compatible with other userstyles managers.
  • Configurable automatic update function for installed styles.
  • Customizable UI, optional layouts, and tweaks.
  • Two different optional code validators with user-configurable rules: CSSLint and Stylelint.
    • Both validators use Web Worker API to run in a separate background thread inside the editor tab without blocking your interaction with the code.
    • CSSLint is heavily modified compared to the effectively frozen original one and supports various CSS3 features as well as CSS4 Color and CSS Grid syntax.

Releases

  1. Chrome Web Store (or beta)
  2. Firefox add-ons
  3. Opera add-ons (see wiki for more recent version)

Screenshots

Style manager Style editor Popup config for usercss Popup inline search Style manager config for usercss Options

Help

Contributing

The source is hosted on GitHub and pull requests are welcome.

You can help us translate the extension on Transifex.

See our contributing page for more details.

License

Inherited code from the original Stylish:
Copyright © 2005-2014 Jason Barnabe

Current Stylus:
Copyright © 2017-2018 Stylus Team

GNU GPLv3
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

External libraries

The licenses of external libraries used in this project or modified versions of external libraries can be found in their respective directory.