From 6569e05e5494a78a2a661595eb9ad0feb2d7818a Mon Sep 17 00:00:00 2001 From: Savio Fernandes Date: Mon, 27 Apr 2020 12:07:10 +0800 Subject: [PATCH 01/13] add telemetry --- package.json | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index aab077f..3fd5f13 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ }, "icon": "icon.png", "engines": { - "vscode": "^1.0.0" + "vscode": "^1.5.0" }, "keywords": [ "maya", @@ -45,11 +45,15 @@ "postinstall": "node ./node_modules/vscode/bin/install" }, "devDependencies": { - "@types/node": "^6.0.40", + "@types/node": "^6.0.42", + "@types/vscode": "^1.40.0", "tslint": "^5.11.0", - "typescript": "^2.1.4", + "typescript": "^2.1.6", "vscode": "^1.1.17" }, + "dependencies": { + "vscode-extension-telemetry": "^0.1.3" + }, "contributes": { "languages": [ { @@ -110,6 +114,10 @@ "type": "string", "default": "localhost", "description": "The hostname of the machine which has a maya instance running." + }, + "mayacode.telemetry": { + "type": "boolean", + "default": true } } }, From 1a00d662fcbdd4c1d9bc2697d5ea16da7574db04 Mon Sep 17 00:00:00 2001 From: Savio Fernandes Date: Mon, 27 Apr 2020 12:10:56 +0800 Subject: [PATCH 02/13] add basic telemetry events --- package-lock.json | 671 ++++++++++++++++++++++++++++++++++++++++++++++ src/extension.ts | 60 ++++- 2 files changed, 729 insertions(+), 2 deletions(-) create mode 100644 package-lock.json diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..9a4c5a4 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,671 @@ +{ + "name": "mayacode", + "version": "1.2.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.9.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz", + "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==", + "dev": true + }, + "@babel/highlight": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.0", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true + }, + "@types/node": { + "version": "6.14.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.14.10.tgz", + "integrity": "sha512-pF4HjZGSog75kGq7B1InK/wt/N08BuPATo+7HRfv7gZUzccebwv/fmWVGs/j6LvSiLWpCuGGhql51M/wcQsNzA==", + "dev": true + }, + "@types/vscode": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.44.0.tgz", + "integrity": "sha512-WJZtZlinE3meRdH+I7wTsIhpz/GLhqEQwmPGeh4s1irWLwMzCeTV8WZ+pgPTwrDXoafVUWwo1LiZ9HJVHFlJSQ==", + "dev": true + }, + "agent-base": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.0.tgz", + "integrity": "sha512-j1Q7cSCqN+AwrmDd+pzgqc0/NpC655x2bUf5ZjRIO77DcNBFmh+OgRNzF6OKdCC9RSCb19fGd99+bhXFdkRNqw==", + "dev": true, + "requires": { + "debug": "4" + } + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "applicationinsights": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/applicationinsights/-/applicationinsights-1.7.4.tgz", + "integrity": "sha512-XFLsNlcanpjFhHNvVWEfcm6hr7lu9znnb6Le1Lk5RE03YUV9X2B2n2MfM4kJZRrUdV+C0hdHxvWyv+vWoLfY7A==", + "requires": { + "cls-hooked": "^4.2.2", + "continuation-local-storage": "^3.2.1", + "diagnostic-channel": "0.2.0", + "diagnostic-channel-publishers": "^0.3.3" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "async-hook-jl": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/async-hook-jl/-/async-hook-jl-1.7.6.tgz", + "integrity": "sha512-gFaHkFfSxTjvoxDMYqDuGHlcRyUuamF8s+ZTtJdDzqjws4mCt7v0vuV79/E2Wr2/riMQgtG4/yUtXWs1gZ7JMg==", + "requires": { + "stack-chain": "^1.3.7" + } + }, + "async-listener": { + "version": "0.6.10", + "resolved": "https://registry.npmjs.org/async-listener/-/async-listener-0.6.10.tgz", + "integrity": "sha512-gpuo6xOyF4D5DE5WvyqZdPA3NGhiT6Qf07l7DCB0wwDEsLvDIbCr6j9S5aj5Ch96dLace5tXVzWBZkxU/c5ohw==", + "requires": { + "semver": "^5.3.0", + "shimmer": "^1.1.0" + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "cls-hooked": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/cls-hooked/-/cls-hooked-4.2.2.tgz", + "integrity": "sha512-J4Xj5f5wq/4jAvcdgoGsL3G103BtWpZrMo8NEinRltN+xpTZdI+M38pyQqhuFU/P792xkMFvnKSf+Lm81U1bxw==", + "requires": { + "async-hook-jl": "^1.7.6", + "emitter-listener": "^1.0.1", + "semver": "^5.4.1" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "continuation-local-storage": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz", + "integrity": "sha512-jx44cconVqkCEEyLSKWwkvUXwO561jXMa3LPjTPsm5QR22PA0/mhe33FT4Xb5y74JDvt/Cq+5lm8S8rskLv9ZA==", + "requires": { + "async-listener": "^0.6.0", + "emitter-listener": "^1.1.1" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "diagnostic-channel": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/diagnostic-channel/-/diagnostic-channel-0.2.0.tgz", + "integrity": "sha1-zJmvlhLCP7H/8TYSxy8sv6qNWhc=", + "requires": { + "semver": "^5.3.0" + } + }, + "diagnostic-channel-publishers": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/diagnostic-channel-publishers/-/diagnostic-channel-publishers-0.3.3.tgz", + "integrity": "sha512-qIocRYU5TrGUkBlDDxaziAK1+squ8Yf2Ls4HldL3xxb/jzmWO2Enux7CvevNKYmF2kDXZ9HiRqwjPsjk8L+i2Q==" + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + }, + "emitter-listener": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/emitter-listener/-/emitter-listener-1.1.2.tgz", + "integrity": "sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ==", + "requires": { + "shimmer": "^1.2.0" + } + }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true + }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + }, + "https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "mocha": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", + "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", + "dev": true, + "requires": { + "browser-stdout": "1.3.1", + "commander": "2.15.1", + "debug": "3.1.0", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "glob": "7.1.2", + "growl": "1.10.5", + "he": "1.1.1", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "supports-color": "5.4.0" + }, + "dependencies": { + "commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "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 + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "shimmer": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", + "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "stack-chain": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/stack-chain/-/stack-chain-1.3.7.tgz", + "integrity": "sha1-0ZLJ/06moiyUxN1FkXHj8AzqEoU=" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "tslib": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", + "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==", + "dev": true + }, + "tslint": { + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz", + "integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^4.0.1", + "glob": "^7.1.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.8.0", + "tsutils": "^2.29.0" + } + }, + "tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "typescript": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", + "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==", + "dev": true + }, + "vscode": { + "version": "1.1.37", + "resolved": "https://registry.npmjs.org/vscode/-/vscode-1.1.37.tgz", + "integrity": "sha512-vJNj6IlN7IJPdMavlQa1KoFB3Ihn06q1AiN3ZFI/HfzPNzbKZWPPuiU+XkpNOfGU5k15m4r80nxNPlM7wcc0wg==", + "dev": true, + "requires": { + "glob": "^7.1.2", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "mocha": "^5.2.0", + "semver": "^5.4.1", + "source-map-support": "^0.5.0", + "vscode-test": "^0.4.1" + } + }, + "vscode-extension-telemetry": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/vscode-extension-telemetry/-/vscode-extension-telemetry-0.1.3.tgz", + "integrity": "sha512-2P4/TrxwMRQJPpcsSpreI7JVftmy+kbatONGVY65x4fJfbaHTBTm6jNgkG0Xifv6Th1o25KvaVZUTjN7VWlxBA==", + "requires": { + "applicationinsights": "1.7.4" + } + }, + "vscode-test": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/vscode-test/-/vscode-test-0.4.3.tgz", + "integrity": "sha512-EkMGqBSefZH2MgW65nY05rdRSko15uvzq4VAPM5jVmwYuFQKE7eikKXNJDRxL+OITXHB6pI+a3XqqD32Y3KC5w==", + "dev": true, + "requires": { + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1" + }, + "dependencies": { + "agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "dev": true, + "requires": { + "agent-base": "4", + "debug": "3.1.0" + } + }, + "https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "dev": true, + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/src/extension.ts b/src/extension.ts index 1115c0b..e3cc628 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -9,10 +9,20 @@ import * as fs from 'fs'; import * as path from 'path'; var net = require('net'); +import TelemetryReporter from 'vscode-extension-telemetry'; let mayaportStatusBar: vscode.StatusBarItem; let socket_mel: Socket; let port_mel: string; +let reporter: TelemetryReporter; // telemetry reporter + +// all events will be prefixed with this event name +// extension version will be reported as a property with each event +const extensionId = 'saviof.mayacode'; +const extensionVersion = vscode.extensions.getExtension(extensionId).packageJSON.version; + +// the application insights key (also known as instrumentation key) +const key = '9f14526e-33c3-420b-a5ff-2bdab837dc10'; function updateStatusBarItem(langID?: string): void { let text: string; @@ -70,7 +80,7 @@ export class Logger { let util = require('util'); let time = TimeUtils.getTime(); if (!log || !log.split) return; - this._outputPanel.appendLine(util.format('MayaCode [%s][%s]\t %s', time, type, log)); + this._outputPanel.appendLine(util.format('MayaCode-%s [%s][%s]\t %s', extensionVersion, time, type, log)); } } @@ -84,9 +94,43 @@ export function activate(context: vscode.ExtensionContext) { let completions: Array = []; let word_completions: Array = []; let var_completions: Array = []; + let lastStackTrace: string; + const timeOpened = Date.now() var config = vscode.workspace.getConfiguration('mayacode'); + // create telemetry reporter on extension activation + // ensure it gets property disposed + reporter = new TelemetryReporter(extensionId, extensionVersion, key); + context.subscriptions.push(reporter); + reporter.sendTelemetryEvent('start', {}) + + function sendError(error: Error, code: number=0, category='typescript'){ + if(config.get('telemetry')){ + if(error.stack == lastStackTrace) return + Logger.info(`Sending error event`); + reporter.sendTelemetryException(error, { + code: code.toString(), + category, + }) + lastStackTrace = error.stack + } + } + + function sendEvent(event: string, execTime: number=0, fileType:string){ + if(config.get('telemetry')){ + const measurements: {[key: string]: number} = {} + measurements['timeSpent'] = (Date.now() - timeOpened)/1000 + measurements['execTime'] = execTime + + const properties: {[key: string]: string} = {} + properties['fileType'] = fileType + + Logger.info(`Sending event`); + reporter.sendTelemetryEvent(event, properties, measurements) + } + } + function ensureConnection(type: string) { let socket; let mayahost: string = config.get('hostname'); @@ -110,6 +154,7 @@ export function activate(context: vscode.ExtensionContext) { Error Code : ${error.code}`; Logger.error(errorMsg); + sendError(error, error.code, 'socket') }); socket.on('data', function(data) { @@ -126,6 +171,7 @@ export function activate(context: vscode.ExtensionContext) { function send_tmp_file(text: string, type: string) { let cmd:string, nativePath:string, posixPath:string; + var start = new Date().getTime(); if (type == 'python') { //add encoding http://python.org/dev/peps/pep-0263/ @@ -145,9 +191,13 @@ export function activate(context: vscode.ExtensionContext) { fs.writeFile(nativePath, text, function (err) { if (err) { Logger.error(`Failed to write ${type} to temp file ${posixPath}`); + sendError(err, 1, 'filewrite') } else { Logger.info(`Executing ${cmd}...`); send(cmd, type); + var end = new Date().getTime(); + var time = end - start; + sendEvent("send_tmp_file", time, type) } }); } @@ -209,6 +259,9 @@ export function activate(context: vscode.ExtensionContext) { item.documentation = this_item['comment']; completions.push(item); }); + var end = new Date().getTime(); + var time = end - start; + sendEvent("build-completions", time, "mel") } const _splitTexts = documentText.split(/[^A-Za-z\$1-9]+/); @@ -326,4 +379,7 @@ export function activate(context: vscode.ExtensionContext) { context.subscriptions.push(...registerDisposables()); } -export function deactivate(context: vscode.ExtensionContext) {} +export function deactivate(context: vscode.ExtensionContext) { + // This will ensure all pending events get flushed + reporter.dispose(); +} From ee309e5674c676d60070a9771de580872da5f1b4 Mon Sep 17 00:00:00 2001 From: Savio Fernandes Date: Mon, 27 Apr 2020 12:20:05 +0800 Subject: [PATCH 03/13] fix output line numbers are off by 1 #14 --- src/extension.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/extension.ts b/src/extension.ts index e3cc628..78efde0 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -131,6 +131,17 @@ export function activate(context: vscode.ExtensionContext) { } } + function cleanResponse(data: Buffer){ + var dataString = data.toString() + if(dataString.startsWith("Error")){ + dataString = dataString.replace(/MayaCode.py", line (?\d+)/, (...match) => { + let newLineno = match[0].replace(match[1], (+match[1]-1).toString()) + return newLineno; + }) + } + return dataString + } + function ensureConnection(type: string) { let socket; let mayahost: string = config.get('hostname'); @@ -157,8 +168,8 @@ export function activate(context: vscode.ExtensionContext) { sendError(error, error.code, 'socket') }); - socket.on('data', function(data) { - Logger.response(data.toString()); + socket.on('data', function(data: Buffer) { + Logger.response(cleanResponse(data)); }); socket.on('end', () => { From 99a1cb7071a8cfda5e5e9d4b967e97b303006be1 Mon Sep 17 00:00:00 2001 From: Savio Fernandes Date: Mon, 27 Apr 2020 12:39:11 +0800 Subject: [PATCH 04/13] bump version to 1.3.0 --- CHANGELOG.md | 12 ++++++++---- package.json | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2acbc4b..cc51288 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,18 +1,22 @@ # Changelog -## Version 1.2.0 +## Version 1.3.0 (April 27, 2020) +* Fix: Output line numbers are off by 1 (@artbycrunk in [issues/14](https://github.com/artbycrunk/vscode-maya/issues/14)) +* Enhancement: Added telemetry for basic events + +## Version 1.2.0 (Dec 21, 2019) * Add Help on hover, with link to read the documentation online. * Changed settings title to MayaCode to be in line with api docs * Added better error msg when cannot connect to maya via commandPort. -## Version 1.1.0 +## Version 1.1.0 (Aug 18, 2019) * Add autocomplete for MEL variables. [issues/9](https://github.com/artbycrunk/vscode-maya/issues/9) * Speedup autocomplete processing. -## Version 1.0.1 +## Version 1.0.1 (Jul 06, 2019) * Fixed issue with non-ascii characters in python code [issues/5](https://github.com/artbycrunk/vscode-maya/issues/5) -## Version 1.0.0 +## Version 1.0.0 (May 15, 2019) * Rewrite the code to work over a single Maya socket. * Use temp files to send code between vscode and maya. * Add support for sending complete files to maya diff --git a/package.json b/package.json index 3fd5f13..9557504 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "mayacode", "displayName": "MayaCode", "description": "A Visual Studio Code extension with support for coding for Maya.", - "version": "1.2.0", + "version": "1.3.0", "publisher": "saviof", "author": { "name": "Savio Fernandes" From 5233ac1d61557be14344635c88deb5d2b97e84df Mon Sep 17 00:00:00 2001 From: Savio Fernandes Date: Mon, 27 Apr 2020 13:03:25 +0800 Subject: [PATCH 05/13] update vscode engine --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 9557504..8644271 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ }, "icon": "icon.png", "engines": { - "vscode": "^1.5.0" + "vscode": "^1.31.0" }, "keywords": [ "maya", @@ -46,7 +46,8 @@ }, "devDependencies": { "@types/node": "^6.0.42", - "@types/vscode": "^1.40.0", + "@types/vscode": "^1.31.0", + "ts-loader": "^7.0.1", "tslint": "^5.11.0", "typescript": "^2.1.6", "vscode": "^1.1.17" From f25d344e1fa55af513c889b223adff1dd6f77261 Mon Sep 17 00:00:00 2001 From: Savio Fernandes Date: Mon, 27 Apr 2020 13:49:42 +0800 Subject: [PATCH 06/13] update dependencies --- package.json | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 8644271..ae31fbe 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ }, "icon": "icon.png", "engines": { - "vscode": "^1.31.0" + "vscode": "^1.20.0" }, "keywords": [ "maya", @@ -41,16 +41,14 @@ "scripts": { "vscode:prepublish": "npm run compile", "compile": "tsc -p ./", - "watch": "tsc -watch -p ./", - "postinstall": "node ./node_modules/vscode/bin/install" + "watch": "tsc -watch -p ./" }, "devDependencies": { - "@types/node": "^6.0.42", - "@types/vscode": "^1.31.0", - "ts-loader": "^7.0.1", - "tslint": "^5.11.0", - "typescript": "^2.1.6", - "vscode": "^1.1.17" + "@types/node": "^12.12.0", + "@types/vscode": "^1.20.0", + "tslint": "^5.19.0", + "typescript": "^3.8.3", + "vscode-test": "^1.3.0" }, "dependencies": { "vscode-extension-telemetry": "^0.1.3" From 5476d3b9c6b3ffe46f24b6af3567f2bc2b6d0e22 Mon Sep 17 00:00:00 2001 From: Savio Fernandes Date: Fri, 1 May 2020 01:25:56 +0800 Subject: [PATCH 07/13] add basic symbol provider --- src/extension.ts | 106 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) diff --git a/src/extension.ts b/src/extension.ts index 78efde0..ca166ea 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -84,6 +84,106 @@ export class Logger { } } +class MelDocumentSymbolProvider implements vscode.DocumentSymbolProvider { + + private getProcRange(ln_start: number, ln_end: number): vscode.Range { + let pos1 = new vscode.Position(ln_start, 0); + let pos2 = new vscode.Position(ln_end, 0); + return new vscode.Range(pos1, pos2); + } + + private getRange(name:string, text:string, ln_num: number): vscode.Range { + let pos = text.indexOf(name) + let pos1 = new vscode.Position(ln_num, pos); + let pos2 = new vscode.Position(ln_num, pos+name.length); + return new vscode.Range(pos1, pos2); + } + + public provideDocumentSymbols( + document: vscode.TextDocument, + token: vscode.CancellationToken): Promise + { + return new Promise((resolve, reject) => + { + let symbols: vscode.DocumentSymbol[] = []; + let nodes = [symbols] + let inside_proc = false + let nested_levels = 0 + + let symbolkind_proc = vscode.SymbolKind.Function + let symbolkind_var = vscode.SymbolKind.Variable + + let procTypes = ["string", "string[]"] + + let proc_symbol; + let proc_start_line:number; + + for (var i = 0; i < document.lineCount; i++) { + var line = document.lineAt(i); + let tokens = line.text.split(" ") + + for (var x = 0; x < tokens.length; x++) { + + let cur_token = tokens[x].trim() + + if (cur_token == '{' || cur_token.includes("{")) + {//open + nested_levels += 1} + + // found a proc + if (cur_token == "proc"){ + let proc_name = tokens[x+1] + if(procTypes.includes(proc_name)){ + proc_name = tokens[x+2] + } + + let clean_proc_name = proc_name.split("(")[0] + let proc_range = this.getRange(clean_proc_name, line.text, i); + proc_start_line = i + + proc_symbol = new vscode.DocumentSymbol( + clean_proc_name, + '', + symbolkind_proc, + line.range, proc_range) + + nodes[nodes.length-1].push(proc_symbol) + if (!inside_proc) { + nodes.push(proc_symbol.children) + inside_proc = true + } + } + if (cur_token == "}" || cur_token.includes("}")){ + //closed + nested_levels -= 1 + if (inside_proc && nested_levels == 0) { + proc_symbol.range = this.getProcRange(proc_start_line, i) + nodes.pop() + inside_proc = false + } + } + + // found a variable + if (cur_token.startsWith("$")){ + if(tokens[x+1] == "=" || cur_token.includes("=")){ + let clean_var_name = cur_token.split("=")[0] + let var_range = this.getRange(clean_var_name, line.text, i); + let var_symbol = new vscode.DocumentSymbol( + clean_var_name, + '', + symbolkind_var, + var_range, var_range) + + nodes[nodes.length-1].push(var_symbol) + } + } + } + } + resolve(symbols); + }); + } +} + export function activate(context: vscode.ExtensionContext) { let outputPanel = vscode.window.createOutputChannel('Maya'); Logger.registerOutputPanel(outputPanel); @@ -361,6 +461,12 @@ export function activate(context: vscode.ExtensionContext) { } }, '$'); + const provider_symbols = vscode.languages.registerDocumentSymbolProvider( + {scheme: "file", language: "mel"}, + new MelDocumentSymbolProvider() + ) + + context.subscriptions.push(provider_symbols); context.subscriptions.push(provider_all); context.subscriptions.push(provider_vars); From 09ad034bcda2ff1c315e653105f62ebabf19400e Mon Sep 17 00:00:00 2001 From: Savio Fernandes Date: Fri, 1 May 2020 01:26:34 +0800 Subject: [PATCH 08/13] update tsconfig --- tsconfig.json | 5 ++++- tslint.json | 27 ++++++++++++++++++++++----- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/tsconfig.json b/tsconfig.json index a374c9a..76549cd 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -5,7 +5,10 @@ "outDir": "out", "lib": ["es6"], "sourceMap": true, - "rootDir": "src" + "strict": false, + "rootDir": "src", + "forceConsistentCasingInFileNames": true, + "experimentalDecorators": true }, "exclude": ["node_modules", ".vscode-test"] } diff --git a/tslint.json b/tslint.json index 772eda2..93610b6 100644 --- a/tslint.json +++ b/tslint.json @@ -1,6 +1,23 @@ { - "rules": { - "indent": [true, "tabs"], - "semicolon": [true, "always"] - } -} + "defaultSeverity": "warning", + "extends": [ + "tslint:recommended" + ], + "jsRules": {}, + "rules": { + "semicolon":false, + "no-trailing-whitespace":false, + "curly":false, + "no-console":false, + "one-line":false, + "member-access": false, + "triple-equals":false, + "arrow-parens": false, + "no-consecutive-blank-lines": false, + "only-arrow-functions": false, + "whitespace":false, + "prefer-const":false, + "quotemark":false + }, + "rulesDirectory": [] +} \ No newline at end of file From e04054a9a258120039db343cfe76f195ebfa4890 Mon Sep 17 00:00:00 2001 From: Savio Fernandes Date: Fri, 1 May 2020 01:53:47 +0800 Subject: [PATCH 09/13] bump version to 1.4.0 --- package-lock.json | 224 +++++----------------------------------------- package.json | 2 +- 2 files changed, 22 insertions(+), 204 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9a4c5a4..d3b4ce4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "mayacode", - "version": "1.2.0", + "version": "1.3.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -30,16 +30,10 @@ "js-tokens": "^4.0.0" } }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true - }, "@types/node": { - "version": "6.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-6.14.10.tgz", - "integrity": "sha512-pF4HjZGSog75kGq7B1InK/wt/N08BuPATo+7HRfv7gZUzccebwv/fmWVGs/j6LvSiLWpCuGGhql51M/wcQsNzA==", + "version": "12.12.37", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.37.tgz", + "integrity": "sha512-4mXKoDptrXAwZErQHrLzpe0FN/0Wmf5JRniSVIdwUrtDf9wnmEV1teCNLBo/TwuXhkK/bVegoEn/wmb+x0AuPg==", "dev": true }, "@types/vscode": { @@ -48,15 +42,6 @@ "integrity": "sha512-WJZtZlinE3meRdH+I7wTsIhpz/GLhqEQwmPGeh4s1irWLwMzCeTV8WZ+pgPTwrDXoafVUWwo1LiZ9HJVHFlJSQ==", "dev": true }, - "agent-base": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.0.tgz", - "integrity": "sha512-j1Q7cSCqN+AwrmDd+pzgqc0/NpC655x2bUf5ZjRIO77DcNBFmh+OgRNzF6OKdCC9RSCb19fGd99+bhXFdkRNqw==", - "dev": true, - "requires": { - "debug": "4" - } - }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", @@ -119,18 +104,6 @@ "concat-map": "0.0.1" } }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, "builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", @@ -194,15 +167,6 @@ "emitter-listener": "^1.1.1" } }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, "diagnostic-channel": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/diagnostic-channel/-/diagnostic-channel-0.2.0.tgz", @@ -277,45 +241,12 @@ "path-is-absolute": "^1.0.0" } }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true - }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", - "dev": true - }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - } - }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -372,98 +303,6 @@ "minimist": "^1.2.5" } }, - "mocha": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", - "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", - "dev": true, - "requires": { - "browser-stdout": "1.3.1", - "commander": "2.15.1", - "debug": "3.1.0", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "glob": "7.1.2", - "growl": "1.10.5", - "he": "1.1.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "supports-color": "5.4.0" - }, - "dependencies": { - "commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", - "dev": true - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "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 - }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -494,6 +333,15 @@ "path-parse": "^1.0.6" } }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -504,22 +352,6 @@ "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -577,26 +409,11 @@ } }, "typescript": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", - "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==", + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz", + "integrity": "sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==", "dev": true }, - "vscode": { - "version": "1.1.37", - "resolved": "https://registry.npmjs.org/vscode/-/vscode-1.1.37.tgz", - "integrity": "sha512-vJNj6IlN7IJPdMavlQa1KoFB3Ihn06q1AiN3ZFI/HfzPNzbKZWPPuiU+XkpNOfGU5k15m4r80nxNPlM7wcc0wg==", - "dev": true, - "requires": { - "glob": "^7.1.2", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "mocha": "^5.2.0", - "semver": "^5.4.1", - "source-map-support": "^0.5.0", - "vscode-test": "^0.4.1" - } - }, "vscode-extension-telemetry": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/vscode-extension-telemetry/-/vscode-extension-telemetry-0.1.3.tgz", @@ -606,13 +423,14 @@ } }, "vscode-test": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/vscode-test/-/vscode-test-0.4.3.tgz", - "integrity": "sha512-EkMGqBSefZH2MgW65nY05rdRSko15uvzq4VAPM5jVmwYuFQKE7eikKXNJDRxL+OITXHB6pI+a3XqqD32Y3KC5w==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/vscode-test/-/vscode-test-1.3.0.tgz", + "integrity": "sha512-LddukcBiSU2FVTDr3c1D8lwkiOvwlJdDL2hqVbn6gIz+rpTqUCkMZSKYm94Y1v0WXlHSDQBsXyY+tchWQgGVsw==", "dev": true, "requires": { "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.1" + "https-proxy-agent": "^2.2.4", + "rimraf": "^2.6.3" }, "dependencies": { "agent-base": { diff --git a/package.json b/package.json index ae31fbe..981115e 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "mayacode", "displayName": "MayaCode", "description": "A Visual Studio Code extension with support for coding for Maya.", - "version": "1.3.0", + "version": "1.4.0", "publisher": "saviof", "author": { "name": "Savio Fernandes" From 02c4ddaad32f945467b88d1fd11049eab8b864ef Mon Sep 17 00:00:00 2001 From: Savio Fernandes Date: Fri, 1 May 2020 02:01:04 +0800 Subject: [PATCH 10/13] update changelog --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index cc51288..81ce321 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## Version 1.4.0 (May 01, 2020) +* Enhancement: ctrl+shift+o go to symbol support. (@artbycrunk in [issues/11](https://github.com/artbycrunk/vscode-maya/issues/11)) +* Enhancement: Outline support for functions and variables (@artbycrunk in [issues/11](https://github.com/artbycrunk/vscode-maya/issues/12)) + ## Version 1.3.0 (April 27, 2020) * Fix: Output line numbers are off by 1 (@artbycrunk in [issues/14](https://github.com/artbycrunk/vscode-maya/issues/14)) * Enhancement: Added telemetry for basic events From 2e5e3c446872d3e915b524ba6478ff8fffd8ef73 Mon Sep 17 00:00:00 2001 From: Savio Fernandes Date: Fri, 1 May 2020 02:06:16 +0800 Subject: [PATCH 11/13] update readme with new features --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 84b2b62..ec92408 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,10 @@ A [Visual Studio Code](https://code.visualstudio.com/) [extension](https://marke ## Features +* Syntax Highlight MEL scripts. +* Hierarchical document tree in the [outline view](https://code.visualstudio.com/docs/getstarted/userinterface#_outline-view). +* [Breadcrumbs](https://code.visualstudio.com/updates/v1_26#_breadcrumbs) support. + * Autocomplete MEL commands as you type ( along with flag info ) > ![Autocomplete MEL commands as you type](./images/autocomplete.gif "Autocomplete MEL commands as you type") @@ -28,11 +32,11 @@ A [Visual Studio Code](https://code.visualstudio.com/) [extension](https://marke > ![Send code to Maya via command port](./images/send_to_maya.gif "Send code to Maya via command port") -* Syntax Highlight MEL scripts. * Support auto closing brackets, quotes and ticks > ![Syntax Highlight MEL scripts](./images/syntax_highlight.gif "Syntax Highlight MEL scripts.") + ## Useful commands Open the Command Palette (Command+Shift+P on macOS and Ctrl+Shift+P on Windows/Linux) and type in one of the following commands: From 5da780739656ebf1ef6ce696cbe31afe86a7062a Mon Sep 17 00:00:00 2001 From: Savio Fernandes Date: Fri, 1 May 2020 02:06:38 +0800 Subject: [PATCH 12/13] ignore .vsix files --- .vscodeignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.vscodeignore b/.vscodeignore index e4e98e7..edf2439 100644 --- a/.vscodeignore +++ b/.vscodeignore @@ -10,3 +10,4 @@ vsc-extension-quickstart.md scrap python python/maya/.mypy_cache +*.vsix \ No newline at end of file From d20441ea891857c81ad43c3f6dc76ba7edad8808 Mon Sep 17 00:00:00 2001 From: Savio Fernandes Date: Sat, 30 Oct 2021 01:15:31 +0800 Subject: [PATCH 13/13] add support for maya 2022 --- CHANGELOG.md | 3 +++ LICENSE | 2 +- README.md | 3 +++ images/runner_option.png | Bin 0 -> 4754 bytes package-lock.json | 14 +++++++------- package.json | 11 ++++++++--- src/extension.ts | 7 ++++++- 7 files changed, 28 insertions(+), 12 deletions(-) create mode 100644 images/runner_option.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 81ce321..2c44a4f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +## Version 1.5.0 (October 30, 2021) +* Enhancement: Add support for Maya 2022 with Python 3.7. (@artbycrunk in [issues/25](https://github.com/artbycrunk/vscode-maya/issues/25)) + ## Version 1.4.0 (May 01, 2020) * Enhancement: ctrl+shift+o go to symbol support. (@artbycrunk in [issues/11](https://github.com/artbycrunk/vscode-maya/issues/11)) * Enhancement: Outline support for functions and variables (@artbycrunk in [issues/11](https://github.com/artbycrunk/vscode-maya/issues/12)) diff --git a/LICENSE b/LICENSE index d24b112..ed41e15 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2018 Savio Fernandes +Copyright (c) 2018-2021 Savio Fernandes Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index ec92408..208f651 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,9 @@ Command | Description You can also select a block of code in the editor and ```Right-click -> Send Code to Maya```, this is based on the current working language (Mel or Python). +## Update for Maya 2022 and above. + + > ![Option for Maya 2022 and above](./images/runner_option.png "Option for Maya 2022 and above") ## Opening the correct ports for Send to Maya Commands. diff --git a/images/runner_option.png b/images/runner_option.png new file mode 100644 index 0000000000000000000000000000000000000000..a29b57689fb7648d2de5012d1be8ab8b2f86cebc GIT binary patch literal 4754 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 literal 0 HcmV?d00001 diff --git a/package-lock.json b/package-lock.json index d3b4ce4..b19072a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "mayacode", - "version": "1.3.0", + "version": "1.4.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -176,9 +176,9 @@ } }, "diagnostic-channel-publishers": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/diagnostic-channel-publishers/-/diagnostic-channel-publishers-0.3.3.tgz", - "integrity": "sha512-qIocRYU5TrGUkBlDDxaziAK1+squ8Yf2Ls4HldL3xxb/jzmWO2Enux7CvevNKYmF2kDXZ9HiRqwjPsjk8L+i2Q==" + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/diagnostic-channel-publishers/-/diagnostic-channel-publishers-0.3.5.tgz", + "integrity": "sha512-AOIjw4T7Nxl0G2BoBPhkQ6i7T4bUd9+xvdYizwvG7vVAM1dvr+SDrcUudlmzwH0kbEwdR2V1EcnKT0wAeYLQNQ==" }, "diff": { "version": "4.0.2", @@ -415,9 +415,9 @@ "dev": true }, "vscode-extension-telemetry": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/vscode-extension-telemetry/-/vscode-extension-telemetry-0.1.3.tgz", - "integrity": "sha512-2P4/TrxwMRQJPpcsSpreI7JVftmy+kbatONGVY65x4fJfbaHTBTm6jNgkG0Xifv6Th1o25KvaVZUTjN7VWlxBA==", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/vscode-extension-telemetry/-/vscode-extension-telemetry-0.1.7.tgz", + "integrity": "sha512-pZuZTHO9OpsrwlerOKotWBRLRYJ53DobYb7aWiRAXjlqkuqE+YJJaP+2WEy8GrLIF1EnitXTDMaTAKsmLQ5ORQ==", "requires": { "applicationinsights": "1.7.4" } diff --git a/package.json b/package.json index 981115e..f9dcded 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "mayacode", "displayName": "MayaCode", "description": "A Visual Studio Code extension with support for coding for Maya.", - "version": "1.4.0", + "version": "1.5.0", "publisher": "saviof", "author": { "name": "Savio Fernandes" @@ -51,7 +51,7 @@ "vscode-test": "^1.3.0" }, "dependencies": { - "vscode-extension-telemetry": "^0.1.3" + "vscode-extension-telemetry": "^0.1.7" }, "contributes": { "languages": [ @@ -114,6 +114,11 @@ "default": "localhost", "description": "The hostname of the machine which has a maya instance running." }, + "mayacode.runner.latest": { + "type": "boolean", + "default": true, + "description": "Run for Maya 2022 and above" + }, "mayacode.telemetry": { "type": "boolean", "default": true @@ -159,4 +164,4 @@ ] } } -} \ No newline at end of file +} diff --git a/src/extension.ts b/src/extension.ts index ca166ea..5b5f6e0 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -289,7 +289,11 @@ export function activate(context: vscode.ExtensionContext) { text = "# -*- coding: utf-8 -*-\n" + text; nativePath = path.join(os.tmpdir(), "MayaCode.py"); posixPath = nativePath.replace(/\\/g, "/"); - cmd = `python("execfile('${posixPath}')")`; + if(config.get('runner.latest')){ + cmd = `python("exec(open('${posixPath}').read())")`; + }else{ + cmd = `python("execfile('${posixPath}')")`; + } } if (type == 'mel') { @@ -315,6 +319,7 @@ export function activate(context: vscode.ExtensionContext) { function send(text: string, type: string) { let success: boolean = socket_mel.write(text + '\n'); + // let success: boolean = socket_mel.write(text + '\n', "utf8"); Logger.info(text); if (success){ let successMsg = `Sent ${type} code to Maya...`;