mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-11-14 17:07:26 +00:00
Merge #3001
3001: Use simple prng instead of a dependency r=matklad a=matklad Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
This commit is contained in:
commit
35e0c706d8
4 changed files with 23 additions and 18 deletions
11
editors/code/package-lock.json
generated
11
editors/code/package-lock.json
generated
|
@ -98,12 +98,6 @@
|
|||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"@types/seedrandom": {
|
||||
"version": "2.4.28",
|
||||
"resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-2.4.28.tgz",
|
||||
"integrity": "sha512-SMA+fUwULwK7sd/ZJicUztiPs8F1yCPwF3O23Z9uQ32ME5Ha0NmDK9+QTsYE4O2tHXChzXomSWWeIhCnoN1LqA==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/vscode": {
|
||||
"version": "1.41.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.41.0.tgz",
|
||||
|
@ -691,11 +685,6 @@
|
|||
"integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==",
|
||||
"dev": true
|
||||
},
|
||||
"seedrandom": {
|
||||
"version": "3.0.5",
|
||||
"resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz",
|
||||
"integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg=="
|
||||
},
|
||||
"semver": {
|
||||
"version": "6.3.0",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
|
||||
|
|
|
@ -25,7 +25,6 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"jsonc-parser": "^2.1.0",
|
||||
"seedrandom": "^3.0.5",
|
||||
"vscode-languageclient": "^6.1.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
@ -33,7 +32,6 @@
|
|||
"@rollup/plugin-node-resolve": "^6.1.0",
|
||||
"@rollup/plugin-typescript": "^2.0.0",
|
||||
"@types/node": "^12.12.25",
|
||||
"@types/seedrandom": "^2.4.28",
|
||||
"@types/vscode": "^1.41.0",
|
||||
"rollup": "^1.30.1",
|
||||
"tslib": "^1.10.0",
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
import * as vscode from 'vscode';
|
||||
import * as lc from 'vscode-languageclient';
|
||||
import seedrandom from 'seedrandom';
|
||||
|
||||
import { ColorTheme, TextMateRuleSettings } from './color_theme';
|
||||
|
||||
|
@ -70,9 +69,9 @@ interface Decoration {
|
|||
|
||||
// Based on this HSL-based color generator: https://gist.github.com/bendc/76c48ce53299e6078a76
|
||||
function fancify(seed: string, shade: 'light' | 'dark') {
|
||||
const random = seedrandom(seed);
|
||||
const random = randomU32Numbers(hashString(seed))
|
||||
const randomInt = (min: number, max: number) => {
|
||||
return Math.floor(random() * (max - min + 1)) + min;
|
||||
return Math.abs(random()) % (max - min + 1) + min;
|
||||
};
|
||||
|
||||
const h = randomInt(0, 360);
|
||||
|
@ -246,3 +245,23 @@ const TAG_TO_SCOPES = new Map<string, string[]>([
|
|||
["keyword.unsafe", ["keyword.other.unsafe"]],
|
||||
["keyword.control", ["keyword.control"]],
|
||||
]);
|
||||
|
||||
function randomU32Numbers(seed: number) {
|
||||
let random = seed | 0;
|
||||
return () => {
|
||||
random ^= random << 13;
|
||||
random ^= random >> 17;
|
||||
random ^= random << 5;
|
||||
random |= 0;
|
||||
return random
|
||||
}
|
||||
}
|
||||
|
||||
function hashString(str: string): number {
|
||||
let res = 0;
|
||||
for (let i = 0; i < str.length; ++i) {
|
||||
const c = str.codePointAt(i)!!;
|
||||
res = (res * 31 + c) & ~0;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
|
|
@ -13,8 +13,7 @@
|
|||
"noUnusedParameters": true,
|
||||
"noImplicitReturns": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
"newLine": "LF",
|
||||
"esModuleInterop": true
|
||||
"newLine": "LF"
|
||||
},
|
||||
"exclude": [
|
||||
"node_modules"
|
||||
|
|
Loading…
Reference in a new issue