mirror of
https://github.com/pulsar-edit/pulsar.git
synced 2024-08-17 07:00:22 +03:00
Merge branch 'master' into no-request
This commit is contained in:
commit
bcf62e576d
@ -6,6 +6,7 @@
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
- Improved the Clojure language support by migrating it to tree-sitter and support block comments, quoting, and other advanced features on modern tree-sitter implementation
|
||||
- Added a modern implementation of Tree-sitter grammars behind an experimental flag. Enable the “Use Modern Tree-Sitter Implementation” in the Core settings to try it out.
|
||||
|
||||
## 1.105.0
|
||||
|
File diff suppressed because it is too large
Load Diff
328
packages/autocomplete-css/package-lock.json
generated
328
packages/autocomplete-css/package-lock.json
generated
@ -10,7 +10,8 @@
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"@webref/css": "^6.3.4",
|
||||
"content": "github:mdn/content"
|
||||
"content": "github:mdn/content",
|
||||
"superagent": "^8.0.9"
|
||||
},
|
||||
"engines": {
|
||||
"atom": ">=0.174.0 <2.0.0"
|
||||
@ -617,6 +618,12 @@
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/asap": {
|
||||
"version": "2.0.6",
|
||||
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
|
||||
"integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/astral-regex": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
|
||||
@ -632,6 +639,12 @@
|
||||
"integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/asynckit": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
||||
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/bail": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz",
|
||||
@ -1658,6 +1671,12 @@
|
||||
"node": ">= 6"
|
||||
}
|
||||
},
|
||||
"node_modules/component-emitter": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
|
||||
"integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/compressible": {
|
||||
"version": "2.0.18",
|
||||
"resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
|
||||
@ -1787,6 +1806,12 @@
|
||||
"integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/cookiejar": {
|
||||
"version": "2.1.4",
|
||||
"resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz",
|
||||
"integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/core-util-is": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
|
||||
@ -2200,6 +2225,16 @@
|
||||
"node": ">=6.0"
|
||||
}
|
||||
},
|
||||
"node_modules/dezalgo": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz",
|
||||
"integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"asap": "^2.0.0",
|
||||
"wrappy": "1"
|
||||
}
|
||||
},
|
||||
"node_modules/diagnostics": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/diagnostics/-/diagnostics-1.1.1.tgz",
|
||||
@ -2848,6 +2883,12 @@
|
||||
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/fast-safe-stringify": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
|
||||
"integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/fast-xml-parser": {
|
||||
"version": "3.21.1",
|
||||
"resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.21.1.tgz",
|
||||
@ -3056,6 +3097,20 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/form-data": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
|
||||
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"asynckit": "^0.4.0",
|
||||
"combined-stream": "^1.0.8",
|
||||
"mime-types": "^2.1.12"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 6"
|
||||
}
|
||||
},
|
||||
"node_modules/form-data-encoder": {
|
||||
"version": "2.1.4",
|
||||
"resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz",
|
||||
@ -3065,6 +3120,21 @@
|
||||
"node": ">= 14.17"
|
||||
}
|
||||
},
|
||||
"node_modules/formidable": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz",
|
||||
"integrity": "sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"dezalgo": "^1.0.4",
|
||||
"hexoid": "^1.0.0",
|
||||
"once": "^1.4.0",
|
||||
"qs": "^6.11.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://ko-fi.com/tunnckoCore/commissions"
|
||||
}
|
||||
},
|
||||
"node_modules/forwarded": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
|
||||
@ -3639,6 +3709,15 @@
|
||||
"url": "https://opencollective.com/unified"
|
||||
}
|
||||
},
|
||||
"node_modules/hexoid": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz",
|
||||
"integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/html-dom-parser": {
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmjs.org/html-dom-parser/-/html-dom-parser-3.1.3.tgz",
|
||||
@ -7279,6 +7358,21 @@
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/qs": {
|
||||
"version": "6.11.2",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz",
|
||||
"integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"side-channel": "^1.0.4"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.6"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/query-string": {
|
||||
"version": "5.1.1",
|
||||
"resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz",
|
||||
@ -8257,6 +8351,95 @@
|
||||
"inline-style-parser": "0.1.1"
|
||||
}
|
||||
},
|
||||
"node_modules/superagent": {
|
||||
"version": "8.0.9",
|
||||
"resolved": "https://registry.npmjs.org/superagent/-/superagent-8.0.9.tgz",
|
||||
"integrity": "sha512-4C7Bh5pyHTvU33KpZgwrNKh/VQnvgtCSqPRfJAUdmrtSYePVzVg4E4OzsrbkhJj9O7SO6Bnv75K/F8XVZT8YHA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"component-emitter": "^1.3.0",
|
||||
"cookiejar": "^2.1.4",
|
||||
"debug": "^4.3.4",
|
||||
"fast-safe-stringify": "^2.1.1",
|
||||
"form-data": "^4.0.0",
|
||||
"formidable": "^2.1.2",
|
||||
"methods": "^1.1.2",
|
||||
"mime": "2.6.0",
|
||||
"qs": "^6.11.0",
|
||||
"semver": "^7.3.8"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.4.0 <13 || >=14"
|
||||
}
|
||||
},
|
||||
"node_modules/superagent/node_modules/debug": {
|
||||
"version": "4.3.4",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
|
||||
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"ms": "2.1.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"supports-color": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/superagent/node_modules/lru-cache": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
|
||||
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"yallist": "^4.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/superagent/node_modules/mime": {
|
||||
"version": "2.6.0",
|
||||
"resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
|
||||
"integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"mime": "cli.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/superagent/node_modules/ms": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/superagent/node_modules/semver": {
|
||||
"version": "7.5.1",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
|
||||
"integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"lru-cache": "^6.0.0"
|
||||
},
|
||||
"bin": {
|
||||
"semver": "bin/semver.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/superagent/node_modules/yallist": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
|
||||
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/supports-color": {
|
||||
"version": "7.2.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
|
||||
@ -10106,6 +10289,12 @@
|
||||
"integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==",
|
||||
"dev": true
|
||||
},
|
||||
"asap": {
|
||||
"version": "2.0.6",
|
||||
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
|
||||
"integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==",
|
||||
"dev": true
|
||||
},
|
||||
"astral-regex": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
|
||||
@ -10118,6 +10307,12 @@
|
||||
"integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==",
|
||||
"dev": true
|
||||
},
|
||||
"asynckit": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
||||
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
|
||||
"dev": true
|
||||
},
|
||||
"bail": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz",
|
||||
@ -10923,6 +11118,12 @@
|
||||
"integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
|
||||
"dev": true
|
||||
},
|
||||
"component-emitter": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
|
||||
"integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
|
||||
"dev": true
|
||||
},
|
||||
"compressible": {
|
||||
"version": "2.0.18",
|
||||
"resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
|
||||
@ -11031,6 +11232,12 @@
|
||||
"integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
|
||||
"dev": true
|
||||
},
|
||||
"cookiejar": {
|
||||
"version": "2.1.4",
|
||||
"resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz",
|
||||
"integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==",
|
||||
"dev": true
|
||||
},
|
||||
"core-util-is": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
|
||||
@ -11341,6 +11548,16 @@
|
||||
"integrity": "sha512-iHayBd4UYryDCVUNa3PMsJMEnd8yjyh5p7a+RFeC8i8n476BC9wMhVvqiImq5zJZJf5Tuer+s4SSj+AA3x+ZbQ==",
|
||||
"dev": true
|
||||
},
|
||||
"dezalgo": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz",
|
||||
"integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"asap": "^2.0.0",
|
||||
"wrappy": "1"
|
||||
}
|
||||
},
|
||||
"diagnostics": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/diagnostics/-/diagnostics-1.1.1.tgz",
|
||||
@ -11843,6 +12060,12 @@
|
||||
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
|
||||
"dev": true
|
||||
},
|
||||
"fast-safe-stringify": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
|
||||
"integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==",
|
||||
"dev": true
|
||||
},
|
||||
"fast-xml-parser": {
|
||||
"version": "3.21.1",
|
||||
"resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.21.1.tgz",
|
||||
@ -11995,12 +12218,35 @@
|
||||
"integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
|
||||
"dev": true
|
||||
},
|
||||
"form-data": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
|
||||
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"asynckit": "^0.4.0",
|
||||
"combined-stream": "^1.0.8",
|
||||
"mime-types": "^2.1.12"
|
||||
}
|
||||
},
|
||||
"form-data-encoder": {
|
||||
"version": "2.1.4",
|
||||
"resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz",
|
||||
"integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==",
|
||||
"dev": true
|
||||
},
|
||||
"formidable": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz",
|
||||
"integrity": "sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"dezalgo": "^1.0.4",
|
||||
"hexoid": "^1.0.0",
|
||||
"once": "^1.4.0",
|
||||
"qs": "^6.11.0"
|
||||
}
|
||||
},
|
||||
"forwarded": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
|
||||
@ -12443,6 +12689,12 @@
|
||||
"space-separated-tokens": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"hexoid": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz",
|
||||
"integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==",
|
||||
"dev": true
|
||||
},
|
||||
"html-dom-parser": {
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmjs.org/html-dom-parser/-/html-dom-parser-3.1.3.tgz",
|
||||
@ -14937,6 +15189,15 @@
|
||||
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
|
||||
"dev": true
|
||||
},
|
||||
"qs": {
|
||||
"version": "6.11.2",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz",
|
||||
"integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"side-channel": "^1.0.4"
|
||||
}
|
||||
},
|
||||
"query-string": {
|
||||
"version": "5.1.1",
|
||||
"resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz",
|
||||
@ -15662,6 +15923,71 @@
|
||||
"inline-style-parser": "0.1.1"
|
||||
}
|
||||
},
|
||||
"superagent": {
|
||||
"version": "8.0.9",
|
||||
"resolved": "https://registry.npmjs.org/superagent/-/superagent-8.0.9.tgz",
|
||||
"integrity": "sha512-4C7Bh5pyHTvU33KpZgwrNKh/VQnvgtCSqPRfJAUdmrtSYePVzVg4E4OzsrbkhJj9O7SO6Bnv75K/F8XVZT8YHA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"component-emitter": "^1.3.0",
|
||||
"cookiejar": "^2.1.4",
|
||||
"debug": "^4.3.4",
|
||||
"fast-safe-stringify": "^2.1.1",
|
||||
"form-data": "^4.0.0",
|
||||
"formidable": "^2.1.2",
|
||||
"methods": "^1.1.2",
|
||||
"mime": "2.6.0",
|
||||
"qs": "^6.11.0",
|
||||
"semver": "^7.3.8"
|
||||
},
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "4.3.4",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
|
||||
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ms": "2.1.2"
|
||||
}
|
||||
},
|
||||
"lru-cache": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
|
||||
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"yallist": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"mime": {
|
||||
"version": "2.6.0",
|
||||
"resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
|
||||
"integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
|
||||
"dev": true
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
||||
"dev": true
|
||||
},
|
||||
"semver": {
|
||||
"version": "7.5.1",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
|
||||
"integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"lru-cache": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"yallist": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
|
||||
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "7.2.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
|
||||
|
@ -17,6 +17,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@webref/css": "^6.3.4",
|
||||
"content": "github:mdn/content"
|
||||
"content": "github:mdn/content",
|
||||
"superagent": "^8.0.9"
|
||||
}
|
||||
}
|
||||
|
@ -87,6 +87,7 @@
|
||||
|
||||
const css = require("@webref/css");
|
||||
const fs = require("fs");
|
||||
const superagent = require("superagent");
|
||||
const CSSParser = require("./cssValueDefinitionSyntaxExtractor.js");
|
||||
const manualPropertyDesc = require("./manual-property-desc.json");
|
||||
|
||||
@ -103,8 +104,11 @@ async function update(params) {
|
||||
pseudoSelectors: pseudoSelectors
|
||||
};
|
||||
|
||||
completions.properties = sortByLength(completions.properties);
|
||||
completions.properties = await sortByPopularity(completions.properties);
|
||||
|
||||
// Now to write out our updated file
|
||||
fs.writeFileSync("completions.json", JSON.stringify(completions, null, 2));
|
||||
fs.writeFileSync("./completions.json", JSON.stringify(completions, null, 2));
|
||||
|
||||
// Now to determine how many properties have empty descriptions.
|
||||
|
||||
@ -134,6 +138,65 @@ async function update(params) {
|
||||
};
|
||||
}
|
||||
|
||||
function sortByLength(obj) {
|
||||
let keys = Object.keys(obj);
|
||||
|
||||
keys.sort((a, b) => {
|
||||
if (a.length > b.length) {
|
||||
return 1;
|
||||
} else if (a.length < b.length) {
|
||||
return -1;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
});
|
||||
|
||||
let newObj = {};
|
||||
|
||||
// Now rebuild the object according to our new keys
|
||||
for (i in keys) {
|
||||
newObj[keys[i]] = obj[keys[i]];
|
||||
}
|
||||
|
||||
return newObj;
|
||||
}
|
||||
|
||||
async function sortByPopularity(obj) {
|
||||
try {
|
||||
const res = await superagent.get("https://chromestatus.com/data/csspopularity");
|
||||
if (res.status !== 200) {
|
||||
console.error(res);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
let newObj = {};
|
||||
|
||||
for (prop in res.body) {
|
||||
let property = res.body[prop].property_name;
|
||||
|
||||
if (typeof obj[property] === "object") {
|
||||
newObj[property] = obj[property];
|
||||
}
|
||||
}
|
||||
|
||||
if (Object.keys(obj).length === Object.keys(newObj).length) {
|
||||
return newObj;
|
||||
}
|
||||
|
||||
for (prop in obj) {
|
||||
if (typeof newObj[prop] !== "object") {
|
||||
newObj[prop] = obj[prop];
|
||||
}
|
||||
}
|
||||
|
||||
return newObj;
|
||||
|
||||
} catch(err) {
|
||||
console.error(err);
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
async function buildProperties(css) {
|
||||
// This function will take a CSS object of all values from @webref/css
|
||||
// and will gather descriptions from mdn/content for these properties.
|
||||
@ -346,7 +409,7 @@ async function getPseudoSelectors() {
|
||||
// For now since there is no best determined way to collect all modern psudoselectors
|
||||
// We will just grab the existing list for our existing `completions.json`
|
||||
|
||||
let existingCompletions = require("./completions.json");
|
||||
let existingCompletions = require("../completions.json");
|
||||
|
||||
return existingCompletions.pseudoSelectors;
|
||||
}
|
12
packages/autocomplete-plus/package-lock.json
generated
12
packages/autocomplete-plus/package-lock.json
generated
@ -2806,9 +2806,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/underscore": {
|
||||
"version": "1.9.1",
|
||||
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz",
|
||||
"integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg=="
|
||||
"version": "1.13.6",
|
||||
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz",
|
||||
"integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A=="
|
||||
},
|
||||
"node_modules/underscore-plus": {
|
||||
"version": "1.7.0",
|
||||
@ -5102,9 +5102,9 @@
|
||||
}
|
||||
},
|
||||
"underscore": {
|
||||
"version": "1.9.1",
|
||||
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz",
|
||||
"integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg=="
|
||||
"version": "1.13.6",
|
||||
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz",
|
||||
"integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A=="
|
||||
},
|
||||
"underscore-plus": {
|
||||
"version": "1.7.0",
|
||||
|
@ -88,7 +88,7 @@
|
||||
},
|
||||
"useCoreMovementCommands": {
|
||||
"title": "Use Core Movement Commands",
|
||||
"description": "Disable this if you want to bind your own keystrokes to move around the suggestion list. You will also need to add definitions to your keymap. See: https://github.com/atom/autocomplete-plus#remapping-movement-commands",
|
||||
"description": "Disable this if you want to bind your own keystrokes to move around the suggestion list. You will also need to add definitions to your keymap. See: https://github.com/pulsar-edit/pulsar/blob/master/packages/autocomplete-plus/README.md#remapping-movement-commands",
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"order": 5
|
||||
@ -107,7 +107,7 @@
|
||||
},
|
||||
"scopeBlacklist": {
|
||||
"title": "Scope Blacklist",
|
||||
"description": "Suggestions will not be provided for scopes matching this list. See: http://flight-manual.atom.io/behind-atom/sections/scoped-settings-scopes-and-scope-descriptors/",
|
||||
"description": "Suggestions will not be provided for scopes matching this list. See: https://pulsar-edit.dev/docs/launch-manual/sections/behind-pulsar/#scoped-settings-scopes-and-scope-descriptors",
|
||||
"type": "array",
|
||||
"default": [],
|
||||
"items": {
|
||||
|
24
packages/bracket-matcher/package-lock.json
generated
24
packages/bracket-matcher/package-lock.json
generated
@ -16,31 +16,27 @@
|
||||
}
|
||||
},
|
||||
"node_modules/underscore": {
|
||||
"version": "1.8.3",
|
||||
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz",
|
||||
"integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI="
|
||||
"version": "1.12.1",
|
||||
"integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw=="
|
||||
},
|
||||
"node_modules/underscore-plus": {
|
||||
"version": "1.6.8",
|
||||
"resolved": "https://registry.npmjs.org/underscore-plus/-/underscore-plus-1.6.8.tgz",
|
||||
"integrity": "sha512-88PrCeMKeAAC1L4xjSiiZ3Fg6kZOYrLpLGVPPeqKq/662DfQe/KTSKdSR/Q/tucKNnfW2MNAUGSCkDf8HmXC5Q==",
|
||||
"version": "1.7.0",
|
||||
"integrity": "sha512-A3BEzkeicFLnr+U/Q3EyWwJAQPbA19mtZZ4h+lLq3ttm9kn8WC4R3YpuJZEXmWdLjYP47Zc8aLZm9kwdv+zzvA==",
|
||||
"dependencies": {
|
||||
"underscore": "~1.8.3"
|
||||
"underscore": "^1.9.1"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"underscore": {
|
||||
"version": "1.8.3",
|
||||
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz",
|
||||
"integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI="
|
||||
"version": "1.12.1",
|
||||
"integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw=="
|
||||
},
|
||||
"underscore-plus": {
|
||||
"version": "1.6.8",
|
||||
"resolved": "https://registry.npmjs.org/underscore-plus/-/underscore-plus-1.6.8.tgz",
|
||||
"integrity": "sha512-88PrCeMKeAAC1L4xjSiiZ3Fg6kZOYrLpLGVPPeqKq/662DfQe/KTSKdSR/Q/tucKNnfW2MNAUGSCkDf8HmXC5Q==",
|
||||
"version": "1.7.0",
|
||||
"integrity": "sha512-A3BEzkeicFLnr+U/Q3EyWwJAQPbA19mtZZ4h+lLq3ttm9kn8WC4R3YpuJZEXmWdLjYP47Zc8aLZm9kwdv+zzvA==",
|
||||
"requires": {
|
||||
"underscore": "~1.8.3"
|
||||
"underscore": "^1.9.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
2
packages/keybinding-resolver/package-lock.json
generated
2
packages/keybinding-resolver/package-lock.json
generated
@ -188,7 +188,7 @@
|
||||
"node_modules/underscore": {
|
||||
"version": "1.8.3",
|
||||
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz",
|
||||
"integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI="
|
||||
"integrity": "sha512-5WsVTFcH1ut/kkhAaHf4PVgI8c7++GiVcpCGxPouI6ZVjsqPnSDf8h/8HtVqc0t4fzRXwnMK70EcZeAs3PIddg=="
|
||||
},
|
||||
"node_modules/underscore-plus": {
|
||||
"version": "1.6.8",
|
||||
|
1
packages/language-clojure/.gitignore
vendored
1
packages/language-clojure/.gitignore
vendored
@ -1 +0,0 @@
|
||||
node_modules
|
@ -126,7 +126,7 @@
|
||||
'name': 'constant.numeric.octal.clojure'
|
||||
}
|
||||
{
|
||||
# The decimal separator is optional only when followed by e, E or M!
|
||||
# The decimal separator is optional only when followed by e, E or M!
|
||||
'match': '([-+]?[0-9]+(?:(\\.|(?=[eEM]))[0-9]*([eE][-+]?[0-9]+)?)M?)'
|
||||
'name': 'constant.numeric.double.clojure'
|
||||
}
|
||||
|
@ -1,6 +1,9 @@
|
||||
'name': 'Clojure'
|
||||
'scopeName': 'source.clojure'
|
||||
'type': 'modern-tree-sitter'
|
||||
name: 'Clojure'
|
||||
scopeName: 'source.clojure'
|
||||
type: 'modern-tree-sitter'
|
||||
injectionRegExp: '^source-clojure$'
|
||||
parser: 'tree-sitter-clojure'
|
||||
|
||||
'fileTypes': [
|
||||
'boot'
|
||||
'clj'
|
||||
@ -10,7 +13,6 @@
|
||||
'cljs.hl'
|
||||
'cljx'
|
||||
'clojure'
|
||||
'edn'
|
||||
'org'
|
||||
'bb'
|
||||
'joke'
|
||||
|
15
packages/language-clojure/grammars/tree-sitter-edn.cson
Normal file
15
packages/language-clojure/grammars/tree-sitter-edn.cson
Normal file
@ -0,0 +1,15 @@
|
||||
name: 'Clojure EDN'
|
||||
scopeName: 'source.edn'
|
||||
type: 'modern-tree-sitter'
|
||||
injectionRegExp: '^source-edn$'
|
||||
parser: 'tree-sitter-clojure'
|
||||
|
||||
fileTypes: [
|
||||
'edn'
|
||||
]
|
||||
treeSitter:
|
||||
grammar: 'ts/grammar.wasm'
|
||||
highlightsQuery: 'ts/edn-highlights.scm'
|
||||
# localsQuery: 'ts/locals.scm'
|
||||
foldsQuery: 'ts/folds.scm'
|
||||
indentsQuery: 'ts/indents.scm'
|
11
packages/language-clojure/grammars/tree-sitter-quoted.cson
Normal file
11
packages/language-clojure/grammars/tree-sitter-quoted.cson
Normal file
@ -0,0 +1,11 @@
|
||||
scopeName: 'source.quoted.clojure'
|
||||
type: 'modern-tree-sitter'
|
||||
injectionRegExp: '^source-quoted-clojure$'
|
||||
parser: 'tree-sitter-clojure'
|
||||
|
||||
treeSitter:
|
||||
grammar: 'ts/grammar.wasm'
|
||||
highlightsQuery: 'ts/edn-highlights.scm'
|
||||
# localsQuery: 'ts/locals.scm'
|
||||
foldsQuery: 'ts/folds.scm'
|
||||
indentsQuery: 'ts/indents.scm'
|
36
packages/language-clojure/grammars/ts/edn-highlights.scm
Normal file
36
packages/language-clojure/grammars/ts/edn-highlights.scm
Normal file
@ -0,0 +1,36 @@
|
||||
;; Collections
|
||||
(list_lit
|
||||
"(" @punctuation.section.list.begin (#set! test.onlyIfNotDescendantOfNodeWithData "clojure.dismissTag")
|
||||
")" @punctuation.section.list.end)
|
||||
@meta.list
|
||||
|
||||
(vec_lit
|
||||
"[" @punctuation.section.vector.begin (#set! test.onlyIfNotDescendantOfNodeWithData "clojure.dismissTag")
|
||||
"]" @punctuation.section.vector.end)
|
||||
@meta.vector
|
||||
|
||||
(map_lit
|
||||
"{" @punctuation.section.map.begin (#set! test.onlyIfNotDescendantOfNodeWithData "clojure.dismissTag")
|
||||
"}" @punctuation.section.map.end)
|
||||
@meta.map
|
||||
|
||||
(set_lit
|
||||
("#" "{") @punctuation.section.set.begin (#set! test.onlyIfNotDescendantOfNodeWithData "clojure.dismissTag")
|
||||
"}" @punctuation.section.set.end)
|
||||
@meta.set
|
||||
|
||||
((regex_lit) @string.regexp (#set! test.onlyIfNotDescendantOfNodeWithData "clojure.dismissTag"))
|
||||
((sym_lit) @meta.symbol (#set! test.onlyIfNotDescendantOfNodeWithData "clojure.dismissTag"))
|
||||
((kwd_lit) @constant.keyword (#set! test.onlyIfNotDescendantOfNodeWithData "clojure.dismissTag"))
|
||||
((str_lit) @string.quoted.double (#set! test.onlyIfNotDescendantOfNodeWithData "clojure.dismissTag"))
|
||||
((num_lit) @constant.numeric (#set! test.onlyIfNotDescendantOfNodeWithData "clojure.dismissTag"))
|
||||
((nil_lit) @constant.language (#set! test.onlyIfNotDescendantOfNodeWithData "clojure.dismissTag"))
|
||||
((bool_lit) @constant.language (#set! test.onlyIfNotDescendantOfNodeWithData clojure.dismissTag))
|
||||
(comment) @comment.line.semicolon
|
||||
((dis_expr)
|
||||
@comment.block.clojure
|
||||
(#set! test.onlyIfConfig language-clojure.dismissTag)
|
||||
(#set! clojure.dismissTag true)
|
||||
(#set! test.final true))
|
||||
|
||||
("ERROR" @invalid.illegal)
|
@ -1,58 +1,111 @@
|
||||
(quoting_lit
|
||||
value: (list_lit
|
||||
"(" @punctuation.section.expression.begin
|
||||
.
|
||||
(sym_lit) @meta.symbol (#set! final "true")))
|
||||
;; Function calls
|
||||
(anon_fn_lit
|
||||
"(" @punctuation.section.expression.begin (#set! test.onlyIfNotDescendantOfNodeWithData "clojure.dismissTag")
|
||||
.
|
||||
(sym_lit) @entity.name.function @meta.expression
|
||||
")" @punctuation.section.expression.end)
|
||||
|
||||
(list_lit
|
||||
"(" @punctuation.section.expression.begin (#set! test.onlyIfNotDescendantOfNodeWithData "clojure.dismissTag")
|
||||
.
|
||||
(sym_lit) @entity.name.function @meta.expression
|
||||
")" @punctuation.section.expression.end)
|
||||
|
||||
; NS things like require
|
||||
((sym_name) @meta.symbol (#eq? @meta.symbol "import") (#set! test.onlyIfNotDescendantOfNodeWithData "clojure.dismissTag")) @keyword.control
|
||||
((sym_name) @meta.symbol (#eq? @meta.symbol "require") (#set! test.onlyIfNotDescendantOfNodeWithData "clojure.dismissTag")) @keyword.control
|
||||
|
||||
;; USE
|
||||
((sym_name)
|
||||
@meta.symbol
|
||||
(#eq? @meta.symbol "use")
|
||||
(#set! test.onlyIfConfig language-clojure.markDeprecations)
|
||||
(#set! test.onlyIfNotDescendantOfNodeWithData clojure.dismissTag))
|
||||
@invalid.deprecated
|
||||
|
||||
((sym_name)
|
||||
@meta.symbol
|
||||
(#eq? @meta.symbol "use")
|
||||
(#set! test.onlyIfNotConfig language-clojure.markDeprecations)
|
||||
(#set! test.onlyIfNotDescendantOfNodeWithData clojure.dismissTag))
|
||||
@keyword.control
|
||||
|
||||
;; Namespace declaration
|
||||
((list_lit
|
||||
"(" @punctuation.section.expression.begin (#set! test.onlyIfNotDescendantOfNodeWithData "clojure.dismissTag")
|
||||
.
|
||||
(sym_lit) @meta.definition.global @keyword.control (#eq? @meta.definition.global "ns")
|
||||
.
|
||||
(sym_lit) @meta.definition.global @entity.global
|
||||
")" @punctuation.section.expression.end)
|
||||
@meta.namespace.clojure
|
||||
(#set! isNamespace true))
|
||||
|
||||
(list_lit
|
||||
"("
|
||||
.
|
||||
(kwd_lit) @invalid.deprecated (#eq? @invalid.deprecated ":use")
|
||||
(#set! test.onlyIfDescendantOfNodeWithData isNamespace)
|
||||
(#set! test.onlyIfConfig language-clojure.markDeprecations))
|
||||
|
||||
;; Definition
|
||||
(list_lit
|
||||
"(" @punctuation.section.expression.begin (#set! test.onlyIfNotDescendantOfNodeWithData "clojure.dismissTag")
|
||||
.
|
||||
(sym_lit) @keyword.control (#match? @keyword.control "^def")
|
||||
.
|
||||
(sym_lit) @meta.definition.global @entity.global
|
||||
")" @punctuation.section.expression.end)
|
||||
|
||||
;; Comment form ("Rich" comments)
|
||||
((list_lit
|
||||
"(" @punctuation.section.expression.begin
|
||||
.
|
||||
(sym_lit) @meta.definition.global @keyword.control (#eq? @keyword.control "comment")
|
||||
")" @punctuation.section.expression.end)
|
||||
@comment.block.clojure
|
||||
(#set! test.onlyIfConfig language-clojure.commentTag)
|
||||
(#set! clojure.dismissTag true))
|
||||
|
||||
(list_lit
|
||||
"(" @punctuation.section.expression.begin
|
||||
.
|
||||
(sym_lit) @keyword.control (#eq? @keyword.control "comment")
|
||||
(#set! test.onlyIfNotConfig language-clojure.commentTag)
|
||||
")" @punctuation.section.expression.end)
|
||||
|
||||
;;; COPY-PASTED from edn-highlights.
|
||||
;; IF you need to add something here, add to edn-highlights
|
||||
;; and then paste here, but DON'T PASTE the first `list_lit`
|
||||
|
||||
;; Collections
|
||||
(anon_fn_lit
|
||||
"(" @punctuation.section.expression.begin
|
||||
.
|
||||
(sym_lit) @entity.name.function @meta.expression
|
||||
")" @punctuation.section.expression.end)
|
||||
|
||||
(list_lit
|
||||
"(" @punctuation.section.expression.begin
|
||||
.
|
||||
(sym_lit) @entity.name.function @meta.expression
|
||||
")" @punctuation.section.expression.end)
|
||||
|
||||
(vec_lit
|
||||
"[" @punctuation.section.vector.begin
|
||||
"]" @punctuation.section.vector.end) @meta.vector
|
||||
"[" @punctuation.section.vector.begin (#set! test.onlyIfNotDescendantOfNodeWithData "clojure.dismissTag")
|
||||
"]" @punctuation.section.vector.end)
|
||||
@meta.vector
|
||||
|
||||
(map_lit
|
||||
"{" @punctuation.section.map.begin
|
||||
"}" @punctuation.section.map.end) @meta.map
|
||||
"{" @punctuation.section.map.begin (#set! test.onlyIfNotDescendantOfNodeWithData "clojure.dismissTag")
|
||||
"}" @punctuation.section.map.end)
|
||||
@meta.map
|
||||
|
||||
(set_lit
|
||||
("#" "{") @punctuation.section.set.begin
|
||||
"}" @punctuation.section.set.end) @meta.map
|
||||
("#" "{") @punctuation.section.set.begin (#set! test.onlyIfNotDescendantOfNodeWithData "clojure.dismissTag")
|
||||
"}" @punctuation.section.set.end)
|
||||
@meta.set
|
||||
|
||||
; Includes
|
||||
((sym_name) @meta.symbol (#eq? @meta.symbol "import")) @keyword.control
|
||||
((sym_name) @meta.symbol (#eq? @meta.symbol "require")) @keyword.control
|
||||
((sym_name) @meta.symbol (#eq? @meta.symbol "use")) @keyword.control
|
||||
|
||||
(list_lit
|
||||
"(" @punctuation.section.expression.begin
|
||||
.
|
||||
((sym_lit) @meta.symbol (#eq? @meta.symbol "ns")) @keyword.control @meta.definition.global
|
||||
.
|
||||
(sym_lit) @meta.definition.global @entity.global
|
||||
")" @punctuation.section.expression.end)
|
||||
|
||||
(list_lit
|
||||
"(" @punctuation.section.expression.begin
|
||||
.
|
||||
((sym_lit) @meta.symbol (#match? @meta.symbol "^def")) @keyword.control
|
||||
.
|
||||
(sym_lit) @meta.definition.global @entity.global
|
||||
")" @punctuation.section.expression.end)
|
||||
|
||||
(sym_lit) @meta.symbol
|
||||
(kwd_lit) @constant.keyword
|
||||
(str_lit) @string.quoted.double
|
||||
(num_lit) @constant.numeric
|
||||
((regex_lit) @string.regexp (#set! test.onlyIfNotDescendantOfNodeWithData "clojure.dismissTag"))
|
||||
((sym_lit) @meta.symbol (#set! test.onlyIfNotDescendantOfNodeWithData "clojure.dismissTag"))
|
||||
((kwd_lit) @constant.keyword (#set! test.onlyIfNotDescendantOfNodeWithData "clojure.dismissTag"))
|
||||
((str_lit) @string.quoted.double (#set! test.onlyIfNotDescendantOfNodeWithData "clojure.dismissTag"))
|
||||
((num_lit) @constant.numeric (#set! test.onlyIfNotDescendantOfNodeWithData "clojure.dismissTag"))
|
||||
((nil_lit) @constant.language (#set! test.onlyIfNotDescendantOfNodeWithData "clojure.dismissTag"))
|
||||
((bool_lit) @constant.language (#set! test.onlyIfNotDescendantOfNodeWithData clojure.dismissTag))
|
||||
(comment) @comment.line.semicolon
|
||||
(dis_expr) @comment.block.clojure
|
||||
((dis_expr)
|
||||
@comment.block.clojure
|
||||
(#set! test.onlyIfConfig language-clojure.dismissTag)
|
||||
(#set! clojure.dismissTag true)
|
||||
(#set! test.final true))
|
||||
|
||||
("ERROR" @invalid.illegal)
|
||||
|
39
packages/language-clojure/lib/main.js
Normal file
39
packages/language-clojure/lib/main.js
Normal file
@ -0,0 +1,39 @@
|
||||
exports.activate = function() {
|
||||
if (!atom.grammars.addInjectionPoint) return;
|
||||
|
||||
atom.grammars.addInjectionPoint('source.clojure', {
|
||||
type: 'quoting_lit',
|
||||
language: () => 'source-edn',
|
||||
content: (node) => {
|
||||
let parent = node.parent
|
||||
while(parent) {
|
||||
if(parent.type === 'dis_expr') return null
|
||||
parent = parent.parent
|
||||
}
|
||||
return node
|
||||
},
|
||||
includeChildren: true,
|
||||
languageScope: 'source.edn',
|
||||
coverShallowerScopes: true
|
||||
});
|
||||
|
||||
atom.grammars.addInjectionPoint('source.clojure', {
|
||||
type: 'syn_quoting_lit',
|
||||
language: () => 'source-quoted-clojure',
|
||||
content: (node) => node,
|
||||
includeChildren: true,
|
||||
languageScope: 'source.quoted.clojure',
|
||||
coverShallowerScopes: true
|
||||
});
|
||||
|
||||
['unquoting_lit', 'unquote_splicing_lit'].forEach(scope => {
|
||||
atom.grammars.addInjectionPoint('source.quoted.clojure', {
|
||||
type: scope,
|
||||
language: () => 'source-clojure',
|
||||
content: (node) => node,
|
||||
includeChildren: true,
|
||||
languageScope: 'source.clojure',
|
||||
coverShallowerScopes: true
|
||||
});
|
||||
})
|
||||
}
|
@ -2,10 +2,28 @@
|
||||
"name": "language-clojure",
|
||||
"version": "0.22.8",
|
||||
"description": "Clojure language support in Atom",
|
||||
"main": "lib/main",
|
||||
"engines": {
|
||||
"atom": "*",
|
||||
"node": "*"
|
||||
},
|
||||
"repository": "https://github.com/pulsar-edit/pulsar",
|
||||
"license": "MIT"
|
||||
"license": "MIT",
|
||||
"configSchema": {
|
||||
"dismissTag": {
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Highlights forms after #_ as comments"
|
||||
},
|
||||
"commentTag": {
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "Highlights forms like (comment ...) as comments"
|
||||
},
|
||||
"markDeprecations": {
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Marks deprecations like `use`"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2,6 +2,9 @@ describe "Clojure grammar", ->
|
||||
grammar = null
|
||||
|
||||
beforeEach ->
|
||||
atom.config.set('core.useTreeSitterParsers', false)
|
||||
atom.config.set('core.useExperimentalModernTreeSitter', false)
|
||||
|
||||
waitsForPromise ->
|
||||
atom.packages.activatePackage("language-clojure")
|
||||
|
||||
|
20
packages/language-clojure/spec/fixtures/config-toggle.clj
vendored
Normal file
20
packages/language-clojure/spec/fixtures/config-toggle.clj
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
#_
|
||||
(+ 1 2 3 (+ 4 5))
|
||||
; ^ constant.numeric
|
||||
; ^ entity.name.function
|
||||
|
||||
(comment 1 2 3)
|
||||
; ^ keyword.control
|
||||
; ^ comment.block
|
||||
|
||||
;; Deprecations
|
||||
(use '[foo.bar])
|
||||
; ^ keyword.control
|
||||
; ^ !invalid.deprecation
|
||||
|
||||
(:use [foo.bar])
|
||||
; ^ !invalid.deprecated
|
||||
|
||||
(ns other.namespace
|
||||
(:use [foo.bar]))
|
||||
; ^ !invalid.deprecated
|
64
packages/language-clojure/spec/fixtures/textmate-tokens.clj
vendored
Normal file
64
packages/language-clojure/spec/fixtures/textmate-tokens.clj
vendored
Normal file
@ -0,0 +1,64 @@
|
||||
(ns foobar)
|
||||
; <- punctuation.section.expression.begin
|
||||
; ^ meta.definition.global
|
||||
; ^ entity.global
|
||||
; ^ punctuation.section.expression.end
|
||||
|
||||
(defn foobar [a b]
|
||||
; <- keyword.control
|
||||
; ^ entity.global
|
||||
; ^ meta.definition.global
|
||||
; ^ punctuation.section.vector.begin
|
||||
; ^ meta.vector
|
||||
; ^ meta.symbol
|
||||
; ^ punctuation.section.vector.end
|
||||
(+ a b 10 20))
|
||||
;^ meta.expression
|
||||
;^ entity.name.function
|
||||
; ^ !entity.name.function
|
||||
; ^ constant.numeric
|
||||
|
||||
(def a "A STRING")
|
||||
; <- keyword.control
|
||||
; ^ entity.global
|
||||
; ^ string.quoted.double
|
||||
|
||||
#{'foo}
|
||||
; <- punctuation.section.set.begin
|
||||
; ^ meta.symbol
|
||||
; ^ punctuation.section.set.end
|
||||
|
||||
{:key "value"}
|
||||
; <- punctuation.section.map.begin
|
||||
; ^ constant.keyword
|
||||
; ^ meta.map
|
||||
; ^ punctuation.section.map.end
|
||||
|
||||
;; Primitives
|
||||
10
|
||||
; <- constant.numeric
|
||||
10.2
|
||||
; <- constant.numeric
|
||||
10M
|
||||
; <- constant.numeric
|
||||
10N
|
||||
; <- constant.numeric
|
||||
10/2
|
||||
; <- constant.numeric
|
||||
:key
|
||||
; ^ meta.symbol
|
||||
symbol
|
||||
; <- meta.symbol
|
||||
"A string"
|
||||
; <- string.quoted.double
|
||||
#"A regular expression"
|
||||
; <- string.regexp
|
||||
nil
|
||||
; <- constant.language
|
||||
true
|
||||
; <- constant.language
|
||||
false
|
||||
; <- constant.language
|
||||
|
||||
;; Comments
|
||||
; ^ comment.line.semicolon
|
@ -15,6 +15,7 @@
|
||||
(+ a b 10 20))
|
||||
;^ meta.expression
|
||||
;^ entity.name.function
|
||||
; ^ !entity.name.function
|
||||
; ^ constant.numeric
|
||||
|
||||
(def a "A STRING")
|
||||
@ -22,9 +23,9 @@
|
||||
; ^ entity.global
|
||||
; ^ string.quoted.double
|
||||
|
||||
#{'asd}
|
||||
#{'foo}
|
||||
; <- punctuation.section.set.begin
|
||||
; ^ meta.symbol
|
||||
; ^ meta.symbol
|
||||
; ^ punctuation.section.set.end
|
||||
|
||||
{:key "value"}
|
||||
@ -32,3 +33,79 @@
|
||||
; ^ constant.keyword
|
||||
; ^ meta.map
|
||||
; ^ punctuation.section.map.end
|
||||
|
||||
;; Primitives
|
||||
10
|
||||
; <- constant.numeric
|
||||
10.2
|
||||
; <- constant.numeric
|
||||
10M
|
||||
; <- constant.numeric
|
||||
10N
|
||||
; <- constant.numeric
|
||||
10/2
|
||||
; <- constant.numeric
|
||||
:key
|
||||
; <- constant.keyword
|
||||
symbol
|
||||
; <- meta.symbol
|
||||
"A string"
|
||||
; <- string.quoted.double
|
||||
#"A regular expression"
|
||||
; <- string.regexp
|
||||
nil
|
||||
; <- constant.language
|
||||
true
|
||||
; <- constant.language
|
||||
false
|
||||
; <- constant.language
|
||||
error/
|
||||
; <- meta.symbol
|
||||
; ^ invalid.illegal
|
||||
|
||||
;; Quoting
|
||||
'(call param ~(call))
|
||||
; ^ meta.symbol
|
||||
; ^ !entity.name.function
|
||||
; ^ meta.symbol
|
||||
; ^ !entity.name.function
|
||||
; ^ meta.symbol
|
||||
; ^ !entity.name.function
|
||||
|
||||
`(call param ~(call))
|
||||
; ^ meta.symbol
|
||||
; ^ !entity.name.function
|
||||
; ^ meta.symbol
|
||||
; ^ !entity.name.function
|
||||
; ^ entity.name.function
|
||||
|
||||
;; Comments
|
||||
; ^ comment.line.semicolon
|
||||
|
||||
#_
|
||||
(+ 1 2 3 (+ 4 5))
|
||||
; ^ comment.block
|
||||
; ^ comment.block
|
||||
|
||||
#_
|
||||
(+ '1 '(:foo))
|
||||
; ^ comment.block
|
||||
; ^ !constant.numeric
|
||||
; ^ comment.block
|
||||
; ^ !constant.keyword
|
||||
|
||||
(comment 1 2 3)
|
||||
; ^ keyword.control
|
||||
; ^ constant.numeric
|
||||
|
||||
;; Deprecations
|
||||
(use '[foo.bar])
|
||||
; ^ invalid.deprecated
|
||||
|
||||
|
||||
(:use [foo.bar])
|
||||
; ^ !invalid.deprecated
|
||||
|
||||
(ns other.namespace
|
||||
(:use [foo.bar]))
|
||||
; ^ invalid.deprecated
|
||||
|
@ -1,6 +0,0 @@
|
||||
#_
|
||||
(+ 1 2)
|
||||
; <- comment.block
|
||||
|
||||
'(a b 1 2)
|
||||
; ^ !entity.name.function
|
@ -3,7 +3,7 @@ const path = require('path');
|
||||
|
||||
function setConfigForLanguageMode(mode) {
|
||||
let useTreeSitterParsers = mode !== 'textmate';
|
||||
let useExperimentalModernTreeSitter = mode === 'wasm-tree-sitter';
|
||||
let useExperimentalModernTreeSitter = mode === 'modern-tree-sitter';
|
||||
atom.config.set('core.useTreeSitterParsers', useTreeSitterParsers);
|
||||
atom.config.set('core.useExperimentalModernTreeSitter', useExperimentalModernTreeSitter);
|
||||
}
|
||||
@ -16,21 +16,27 @@ describe('Clojure grammars', () => {
|
||||
|
||||
it('tokenizes the editor using TextMate parser', async () => {
|
||||
setConfigForLanguageMode('textmate');
|
||||
await runGrammarTests(path.join(__dirname, 'fixtures', 'textmate-tokens.clj'), /;/)
|
||||
});
|
||||
|
||||
it('tokenizes the editor using modern tree-sitter parser', async () => {
|
||||
setConfigForLanguageMode('modern-tree-sitter');
|
||||
atom.config.set('language-clojure.dismissTag', true);
|
||||
atom.config.set('language-clojure.commentTag', false);
|
||||
atom.config.set('language-clojure.markDeprecations', true);
|
||||
await runGrammarTests(path.join(__dirname, 'fixtures', 'tokens.clj'), /;/)
|
||||
});
|
||||
|
||||
it('tokenizes the editor using node tree-sitter parser the same as TextMate', async () => {
|
||||
setConfigForLanguageMode('wasm-tree-sitter');
|
||||
await runGrammarTests(path.join(__dirname, 'fixtures', 'tokens.clj'), /;/)
|
||||
});
|
||||
|
||||
it('tokenizes the editor using node tree-sitter parser (specific rules)', async () => {
|
||||
setConfigForLanguageMode('wasm-tree-sitter');
|
||||
await runGrammarTests(path.join(__dirname, 'fixtures', 'tree-sitter-tokens.clj'), /;/)
|
||||
it('tokenizes the editor using modern tree-sitter, but with all default configs toggled', async () => {
|
||||
setConfigForLanguageMode('modern-tree-sitter');
|
||||
atom.config.set('language-clojure.dismissTag', false);
|
||||
atom.config.set('language-clojure.commentTag', true);
|
||||
atom.config.set('language-clojure.markDeprecations', false);
|
||||
await runGrammarTests(path.join(__dirname, 'fixtures', 'config-toggle.clj'), /;/)
|
||||
});
|
||||
|
||||
it('folds Clojure code', async () => {
|
||||
setConfigForLanguageMode('wasm-tree-sitter');
|
||||
setConfigForLanguageMode('modern-tree-sitter');
|
||||
await runFoldsTests(path.join(__dirname, 'fixtures', 'tree-sitter-folds.clj'), /;/)
|
||||
});
|
||||
});
|
||||
|
6
packages/open-on-github/package-lock.json
generated
6
packages/open-on-github/package-lock.json
generated
@ -188,9 +188,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/underscore": {
|
||||
"version": "1.9.1",
|
||||
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz",
|
||||
"integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==",
|
||||
"version": "1.13.6",
|
||||
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz",
|
||||
"integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/underscore-plus": {
|
||||
|
4
packages/settings-view/package-lock.json
generated
4
packages/settings-view/package-lock.json
generated
@ -776,7 +776,7 @@
|
||||
"node_modules/underscore": {
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz",
|
||||
"integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag="
|
||||
"integrity": "sha512-z4o1fvKUojIWh9XuaVLUDdf86RQiq13AC1dmHbTpoyuu+bquHms76v16CjycCbec87J7z0k//SiQVk0sMdFmpQ=="
|
||||
},
|
||||
"node_modules/underscore-plus": {
|
||||
"version": "1.6.6",
|
||||
@ -1464,7 +1464,7 @@
|
||||
"underscore": {
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz",
|
||||
"integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag="
|
||||
"integrity": "sha512-z4o1fvKUojIWh9XuaVLUDdf86RQiq13AC1dmHbTpoyuu+bquHms76v16CjycCbec87J7z0k//SiQVk0sMdFmpQ=="
|
||||
},
|
||||
"underscore-plus": {
|
||||
"version": "1.6.6",
|
||||
|
@ -227,6 +227,11 @@ let options = {
|
||||
"runAfterFinish": true,
|
||||
"createDesktopShortcut": true,
|
||||
"createStartMenuShortcut": true,
|
||||
"guid": "0949b555-c22c-56b7-873a-a960bdefa81f"
|
||||
// The GUID is generated from Electron-Builder based on our AppID
|
||||
// Hardcoding it here means it will always be used as generated from
|
||||
// the AppID 'dev.pulsar-edit.pulsar'. If this value ever changes,
|
||||
// A PR to GitHub Desktop must be made with the updated value
|
||||
},
|
||||
"extraMetadata": {
|
||||
},
|
||||
|
@ -927,27 +927,6 @@ module.exports = class Package {
|
||||
}
|
||||
}
|
||||
|
||||
// a require function with both ES5 and ES6 default export support
|
||||
_require(path) {
|
||||
const modul = require(path);
|
||||
if (modul === null || modul === undefined) {
|
||||
// if null do not bother
|
||||
return modul;
|
||||
} else {
|
||||
if (
|
||||
modul.__esModule === true &&
|
||||
typeof modul.default === 'object' &&
|
||||
typeof modul.default.activate === 'function'
|
||||
) {
|
||||
// __esModule flag is true and the activate function exists inside it, which means
|
||||
// an object containing the main functions (e.g. activate, etc) is default exported
|
||||
return modul.default;
|
||||
} else {
|
||||
return modul;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
getMainModulePath() {
|
||||
if (this.resolvedMainModulePath) return this.mainModulePath;
|
||||
this.resolvedMainModulePath = true;
|
||||
|
Loading…
Reference in New Issue
Block a user