From 4b0dc90e8d56fbf35dc8dd34f5be2494ad4f1479 Mon Sep 17 00:00:00 2001 From: David Lechner Date: Thu, 8 Jul 2021 11:34:31 -0500 Subject: [PATCH 1/5] editor: improve template snippets - fix always being suggested - add more imports - reduce duplicated code Fixes https://github.com/pybricks/pybricks-code/issues/471 --- CHANGELOG.md | 6 ++ src/editor/Editor.tsx | 4 +- src/editor/pybricksMicroPython.ts | 132 +++++++++++++++++------------- 3 files changed, 83 insertions(+), 59 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index be4d3a28..83555f5b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ # Changelog +## [Unreleased] + +### Changed +- Changed snippet (autocomplete) content and behavior [issue#471]. + ## [1.1.0-beta.2] - 2021-07-06 ## Changed @@ -33,6 +38,7 @@ Prerelease changes are documented at [support#48]. +[issue#471]: https://github.com/pybricks/pybricks-code/issues/471 [support#48]: https://github.com/pybricks/support/issues/48 [support#378]: https://github.com/pybricks/support/issues/378 [v3.0.0]: https://github.com/pybricks/pybricks-micropython/blob/master/CHANGELOG.md#300---2021-06-08 diff --git a/src/editor/Editor.tsx b/src/editor/Editor.tsx index 2a73f764..acb0794c 100644 --- a/src/editor/Editor.tsx +++ b/src/editor/Editor.tsx @@ -46,11 +46,9 @@ toDispose.push( pybricksMicroPythonId, pybricksMicroPython.language, ), -); -toDispose.push( monaco.languages.registerCompletionItemProvider( pybricksMicroPythonId, - pybricksMicroPython.completions, + pybricksMicroPython.templateSnippetCompletions, ), ); diff --git a/src/editor/pybricksMicroPython.ts b/src/editor/pybricksMicroPython.ts index 2865df04..83bce69b 100644 --- a/src/editor/pybricksMicroPython.ts +++ b/src/editor/pybricksMicroPython.ts @@ -236,67 +236,87 @@ export const language = { }, }; -export const completions = { - provideCompletionItems: (_model, position, _context, _token) => { - return { - suggestions: [ - { - label: 'technichub', - kind: monaco.languages.CompletionItemKind.Snippet, - insertText: `from pybricks.hubs import TechnicHub -from pybricks.pupdevices import Motor -from pybricks.parameters import Port, Stop, Color -from pybricks.tools import wait +function template(hubName: string, devices: string[]): string { + return `from pybricks.hubs import ${hubName} +from pybricks.pupdevices import ${devices.join(', ')} +from pybricks.parameters import Button, Color, Direction, Port, Stop +from pybricks.robotics import DriveBase +from pybricks.tools import wait, StopWatch -hub = TechnicHub()`, - range: monaco.Range.fromPositions(position), - }, - { - label: 'cityhub', - kind: monaco.languages.CompletionItemKind.Snippet, - insertText: `from pybricks.hubs import CityHub -from pybricks.pupdevices import Motor -from pybricks.parameters import Port, Stop, Color -from pybricks.tools import wait +hub = ${hubName}()`; +} -hub = CityHub()`, - range: monaco.Range.fromPositions(position), - }, - { - label: 'movehub', - kind: monaco.languages.CompletionItemKind.Snippet, - insertText: `from pybricks.hubs import MoveHub -from pybricks.pupdevices import Motor -from pybricks.parameters import Port, Stop, Color -from pybricks.tools import wait +const templateSnippets: Array< + Required< + Pick + > & { label: string } +> = [ + { + label: 'technichub', + documentation: 'Template for Technic hub program.', + insertText: template('TechnicHub', ['Motor']), + }, + { + label: 'cityhub', + documentation: 'Template for City hub program.', + insertText: template('CityHub', ['DCMotor', 'Light']), + }, + { + label: 'movehub', + documentation: 'Template for BOOST Move hub program.', + insertText: template('MoveHub', ['Motor', 'ColorDistanceSensor']), + }, + { + label: 'primehub', + documentation: 'Template for SPIKE Prime program.', + insertText: template('PrimeHub', [ + 'Motor', + 'ColorSensor', + 'UltrasonicSensor', + 'ForceSensor', + ]), + }, + { + label: 'inventorhub', + documentation: 'Template for MINDSTORMS Robot Inventor hub program.', + insertText: template('InventorHub', [ + 'Motor', + 'ColorSensor', + 'UltrasonicSensor', + ]), + }, +]; -hub = MoveHub()`, - range: monaco.Range.fromPositions(position), - }, - { - label: 'primehub', - kind: monaco.languages.CompletionItemKind.Snippet, - insertText: `from pybricks.hubs import PrimeHub -from pybricks.pupdevices import Motor, ColorSensor, ForceSensor, UltrasonicSensor -from pybricks.parameters import Port, Stop, Color, Button -from pybricks.tools import wait +export const templateSnippetCompletions = { + provideCompletionItems: (model, position, _context, _token) => { + // templates snippets are only available on the first line + if (position.lineNumber !== 1) { + return undefined; + } -hub = PrimeHub()`, - range: monaco.Range.fromPositions(position), - }, - { - label: 'inventorhub', - kind: monaco.languages.CompletionItemKind.Snippet, - insertText: `from pybricks.hubs import InventorHub -from pybricks.pupdevices import Motor, ColorSensor, UltrasonicSensor -from pybricks.parameters import Port, Stop, Color, Button -from pybricks.tools import wait - -hub = InventorHub()`, - range: monaco.Range.fromPositions(position), - }, - ], + const range = { + startLineNumber: position.lineNumber, + startColumn: 1, + endLineNumber: position.lineNumber, + endColumn: position.column, }; + + const textUntilPosition = model.getValueInRange(range); + + const items = templateSnippets + .filter((x) => x.label.startsWith(textUntilPosition)) + .map((x) => ({ + detail: x.insertText, + kind: monaco.languages.CompletionItemKind.Snippet, + range, + ...x, + })); + + if (!items) { + return undefined; + } + + return { suggestions: items }; }, }; From ad948dc1524754e799a740e6043d732319f44286 Mon Sep 17 00:00:00 2001 From: David Lechner Date: Thu, 8 Jul 2021 11:43:14 -0500 Subject: [PATCH 2/5] editor: copy python language configuration This copies the language configuration from https://github.com/microsoft/monaco-languages/blob/d7cc098c481059f63d51ce3753975c8ca8ab6030/src/python/python.ts This fixes a number of editor features, like auto-indent. Fixes: https://github.com/pybricks/pybricks-code/issues/470 --- CHANGELOG.md | 4 +++ src/editor/Editor.tsx | 4 +++ src/editor/pybricksMicroPython.ts | 43 ++++++++++++++++++++++++++++++- 3 files changed, 50 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 83555f5b..4aca2c99 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,9 @@ ### Changed - Changed snippet (autocomplete) content and behavior [issue#471]. +### Fixed +- Fixed auto-indent not working [issue#470]. + ## [1.1.0-beta.2] - 2021-07-06 ## Changed @@ -38,6 +41,7 @@ Prerelease changes are documented at [support#48]. +[issue#470]: https://github.com/pybricks/pybricks-code/issues/470 [issue#471]: https://github.com/pybricks/pybricks-code/issues/471 [support#48]: https://github.com/pybricks/support/issues/48 [support#378]: https://github.com/pybricks/support/issues/378 diff --git a/src/editor/Editor.tsx b/src/editor/Editor.tsx index acb0794c..ef54576a 100644 --- a/src/editor/Editor.tsx +++ b/src/editor/Editor.tsx @@ -42,6 +42,10 @@ monaco.languages.register({ id: pybricksMicroPythonId }); const toDispose = new Array(); toDispose.push( + monaco.languages.setLanguageConfiguration( + pybricksMicroPythonId, + pybricksMicroPython.conf, + ), monaco.languages.setMonarchTokensProvider( pybricksMicroPythonId, pybricksMicroPython.language, diff --git a/src/editor/pybricksMicroPython.ts b/src/editor/pybricksMicroPython.ts index 83bce69b..f1e6c085 100644 --- a/src/editor/pybricksMicroPython.ts +++ b/src/editor/pybricksMicroPython.ts @@ -1,4 +1,4 @@ -// Copied from https://github.com/microsoft/monaco-languages/blob/main/src/python/python.ts +// Copied from https://github.com/microsoft/monaco-languages/blob/d7cc098c481059f63d51ce3753975c8ca8ab6030/src/python/python.ts /*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. @@ -7,6 +7,47 @@ import { monaco } from 'react-monaco-editor'; +export const conf: monaco.languages.LanguageConfiguration = { + comments: { + lineComment: '#', + blockComment: ["'''", "'''"], + }, + brackets: [ + ['{', '}'], + ['[', ']'], + ['(', ')'], + ], + autoClosingPairs: [ + { open: '{', close: '}' }, + { open: '[', close: ']' }, + { open: '(', close: ')' }, + { open: '"', close: '"', notIn: ['string'] }, + { open: "'", close: "'", notIn: ['string', 'comment'] }, + ], + surroundingPairs: [ + { open: '{', close: '}' }, + { open: '[', close: ']' }, + { open: '(', close: ')' }, + { open: '"', close: '"' }, + { open: "'", close: "'" }, + ], + onEnterRules: [ + { + beforeText: new RegExp( + '^\\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async).*?:\\s*$', + ), + action: { indentAction: monaco.languages.IndentAction.Indent }, + }, + ], + folding: { + offSide: true, + markers: { + start: new RegExp('^\\s*#region\\b'), + end: new RegExp('^\\s*#endregion\\b'), + }, + }, +}; + export const language = { defaultToken: '', tokenPostfix: '.python', From 9ee2d1f1028cead499d66ee73ed4c44c7ff6fbaa Mon Sep 17 00:00:00 2001 From: David Lechner Date: Thu, 8 Jul 2021 12:22:22 -0500 Subject: [PATCH 3/5] editor: clean up keywords and builtins - remove python 2 stuff - separate builtins from keywords --- src/editor/pybricksMicroPython.ts | 64 ++++++++++--------------------- 1 file changed, 20 insertions(+), 44 deletions(-) diff --git a/src/editor/pybricksMicroPython.ts b/src/editor/pybricksMicroPython.ts index f1e6c085..160155e3 100644 --- a/src/editor/pybricksMicroPython.ts +++ b/src/editor/pybricksMicroPython.ts @@ -52,19 +52,16 @@ export const language = { defaultToken: '', tokenPostfix: '.python', - keywords: [ - // This section is the result of running - // `for k in keyword.kwlist: print(' "' + k + '",')` in a Python REPL, - // though note that the output from Python 3 is not a strict superset of the - // output from Python 2. - 'False', // promoted to keyword.kwlist in Python 3 - 'None', // promoted to keyword.kwlist in Python 3 - 'True', // promoted to keyword.kwlist in Python 3 + // https://docs.python.org/3/reference/lexical_analysis.html#keywords + keywords: >[ + 'False', + 'None', + 'True', 'and', 'as', 'assert', - 'async', // new in Python 3 - 'await', // new in Python 3 + 'async', + 'await', 'break', 'class', 'continue', @@ -73,7 +70,6 @@ export const language = { 'elif', 'else', 'except', - 'exec', // Python 2, but not 3. 'finally', 'for', 'from', @@ -83,38 +79,32 @@ export const language = { 'in', 'is', 'lambda', - 'nonlocal', // new in Python 3 + 'nonlocal', 'not', 'or', 'pass', - 'print', // Python 2, but not 3. 'raise', 'return', 'try', 'while', 'with', 'yield', + ], - 'int', - 'float', - 'long', - 'complex', - 'hex', - + // https://docs.python.org/3/library/functions.html#built-in-funcs + builtins: >[ 'abs', 'all', 'any', - 'apply', - 'basestring', + 'ascii', 'bin', 'bool', - 'buffer', + 'breakpoint', 'bytearray', + 'bytes', 'callable', 'chr', 'classmethod', - 'cmp', - 'coerce', 'compile', 'complex', 'delattr', @@ -123,9 +113,9 @@ export const language = { 'divmod', 'enumerate', 'eval', - 'execfile', - 'file', + 'exec', 'filter', + 'float', 'format', 'frozenset', 'getattr', @@ -133,15 +123,16 @@ export const language = { 'hasattr', 'hash', 'help', + 'hex', 'id', 'input', - 'intern', + 'int', 'isinstance', 'issubclass', 'iter', 'len', - 'locals', 'list', + 'locals', 'map', 'max', 'memoryview', @@ -156,9 +147,6 @@ export const language = { 'property', 'reversed', 'range', - 'raw_input', - 'reduce', - 'reload', 'repr', 'reversed', 'round', @@ -173,21 +161,8 @@ export const language = { 'super', 'tuple', 'type', - 'unichr', - 'unicode', 'vars', - 'xrange', 'zip', - - '__dict__', - '__methods__', - '__members__', - '__class__', - '__bases__', - '__name__', - '__mro__', - '__subclasses__', - '__init__', '__import__', ], @@ -214,6 +189,7 @@ export const language = { { cases: { '@keywords': 'keyword', + '@builtins': 'support.function', '@default': 'identifier', }, }, From 2ba6d88c49197340912e9483ff2eee1a826a1133 Mon Sep 17 00:00:00 2001 From: David Lechner Date: Thu, 8 Jul 2021 12:44:45 -0500 Subject: [PATCH 4/5] editor: remove gutter background override This was carried over from the Ace editor, but doesn't work well with the Monaco editor. Fixes: https://github.com/pybricks/pybricks-code/issues/472 --- CHANGELOG.md | 2 ++ src/editor/editor.scss | 10 ---------- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4aca2c99..e544bd6d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ ### Changed - Changed snippet (autocomplete) content and behavior [issue#471]. +- Changed gutter background color [issue#472]. ### Fixed - Fixed auto-indent not working [issue#470]. @@ -43,6 +44,7 @@ Prerelease changes are documented at [support#48]. [issue#470]: https://github.com/pybricks/pybricks-code/issues/470 [issue#471]: https://github.com/pybricks/pybricks-code/issues/471 +[issue#472]: https://github.com/pybricks/pybricks-code/issues/472 [support#48]: https://github.com/pybricks/support/issues/48 [support#378]: https://github.com/pybricks/support/issues/378 [v3.0.0]: https://github.com/pybricks/pybricks-micropython/blob/master/CHANGELOG.md#300---2021-06-08 diff --git a/src/editor/editor.scss b/src/editor/editor.scss index f51ba515..b3f77b17 100644 --- a/src/editor/editor.scss +++ b/src/editor/editor.scss @@ -5,16 +5,6 @@ @import '../variables.scss'; -// make editor match app backgound color - -.#{$ns}-dark .margin-view-overlays { - background-color: $pt-dark-app-background-color; -} - -.margin-view-overlays { - background-color: $pt-app-background-color; -} - // add "BETA" watermark .pb-beta .editor-scrollable::after { From a0467aed4c6a82168cf5973ffd99d088fef3f477 Mon Sep 17 00:00:00 2001 From: David Lechner Date: Thu, 8 Jul 2021 16:46:36 -0500 Subject: [PATCH 5/5] public: add icons with beta badge This makes it easier to tell versions apart when beta and non-beta are installed at the same time. Fixes: https://github.com/pybricks/support/issues/375 --- .github/workflows/release.yml | 3 ++- CHANGELOG.md | 2 ++ public/logo192-beta.png | Bin 0 -> 19859 bytes public/logo192m-beta.png | Bin 0 -> 18383 bytes public/logo512-beta.png | Bin 0 -> 36457 bytes public/manifest.json | 11 +++-------- 6 files changed, 7 insertions(+), 9 deletions(-) create mode 100644 public/logo192-beta.png create mode 100644 public/logo192m-beta.png create mode 100644 public/logo512-beta.png diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 03293322..642b4205 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -13,7 +13,8 @@ jobs: - name: Set env to beta if: contains(github.ref, '-beta.') || contains(github.ref, '-rc.') run: | - echo "REACT_APP_NAME=Pybricks Code (Beta)" >> $GITHUB_ENV + echo "REACT_APP_NAME=Pybricks Beta" >> $GITHUB_ENV + echo "REACT_APP_SUFFIX=-beta" >> $GITHUB_ENV - uses: actions/setup-node@v1 with: node-version: '12.x' diff --git a/CHANGELOG.md b/CHANGELOG.md index e544bd6d..4cebb7c7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ ### Changed - Changed snippet (autocomplete) content and behavior [issue#471]. - Changed gutter background color [issue#472]. +- Added *BETA` badge to application icon [support#375]. ### Fixed - Fixed auto-indent not working [issue#470]. @@ -46,6 +47,7 @@ Prerelease changes are documented at [support#48]. [issue#471]: https://github.com/pybricks/pybricks-code/issues/471 [issue#472]: https://github.com/pybricks/pybricks-code/issues/472 [support#48]: https://github.com/pybricks/support/issues/48 +[support#375]: https://github.com/pybricks/support/issues/375 [support#378]: https://github.com/pybricks/support/issues/378 [v3.0.0]: https://github.com/pybricks/pybricks-micropython/blob/master/CHANGELOG.md#300---2021-06-08 [v3.1.0a1]: https://github.com/pybricks/pybricks-micropython/blob/master/CHANGELOG.md#310a1---2021-06-23 diff --git a/public/logo192-beta.png b/public/logo192-beta.png new file mode 100644 index 0000000000000000000000000000000000000000..c7e981746aa62f1ccd511687e4945d4302156c80 GIT binary patch literal 19859 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

rR(@6sFgNTM*68-GzI^tgfvL6MNF> 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 literal 0 HcmV?d00001 diff --git a/public/logo512-beta.png b/public/logo512-beta.png new file mode 100644 index 0000000000000000000000000000000000000000..d6c7277678efa9191838b446e7fa2a9902d97267 GIT binary patch literal 36457 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

DPnLe?mqkklEyPy?`)W+dBJg2 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 literal 0 HcmV?d00001 diff --git a/public/manifest.json b/public/manifest.json index b347bf6a..17901a91 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -3,24 +3,19 @@ "name": "%REACT_APP_NAME%", "icons": [ { - "src": "favicon.ico", - "sizes": "64x64 32x32 24x24 16x16", - "type": "image/x-icon" - }, - { - "src": "logo192.png", + "src": "logo192%REACT_APP_SUFFIX%.png", "type": "image/png", "sizes": "192x192", "purpose": "any" }, { - "src": "logo192m.png", + "src": "logo192m%REACT_APP_SUFFIX%.png", "type": "image/png", "sizes": "192x192", "purpose": "maskable" }, { - "src": "logo512.png", + "src": "logo512%REACT_APP_SUFFIX%.png", "type": "image/png", "sizes": "512x512" }