Léa Saviot
5853e96947
[apps/code] Remove EditorController::m_areaBuffer
...
This was a very large buffer that took a lot of RAM space (the size of
the storage). Instead of having it, we just move the available space of
the storage at the end of the edited script, and move it back when the
edition finishes.
This is slower but saves a lot of space.
2020-02-12 15:13:16 +01:00
Léa Saviot
e8be088478
[apps/escher] Factorize TxtArea and Code::EditorCtrlr's k_indentSpaces
2019-08-08 16:22:28 +02:00
Ruben Dashyan
eb6d697927
[apps] Make app accessors static members of App classes
2019-07-19 15:06:25 +02:00
Ruben Dashyan
44809f4b3f
Substitute Escher app() by Container::activeApp()
2019-07-19 15:06:25 +02:00
Ruben Dashyan
0490e3ab81
[apps] Define InputEventHandlerDelegate::inputEventHandlerDelegateApp() directly from ::app()
2019-07-19 15:06:25 +02:00
Romain Goyet
21907fb89a
[apps] Get rid of App casts
2019-07-19 15:06:25 +02:00
Romain Goyet
45875dd642
[escher] Make app() a global function
...
This way it can easily be reached by anyone, including non-responders.
And it can easily be overwritten in namespaced apps.
2019-07-19 15:06:25 +02:00
Léa Saviot
5f549b514e
[escher] Fix backspace on utf8 combining code point
2019-06-21 14:30:14 -04:00
Ruben Dashyan
5ee130a959
[apps/code/editor_controller] Fix backspace event handling
...
If there are only spaces on the left of the cursor, then a backspace
should remove two spaces (or one if there is only one of it). The number
of spaces was miscomputed.
2019-06-05 18:15:48 +02:00
Léa Saviot
4c5251f04f
[unicode] Use unicode when dealing with chars - Part 2
2019-05-03 15:53:19 +02:00
Léa Saviot
bd2ea41fbe
[apps/escher] Rename cursorTextLocation as cursorLocation
2019-05-03 15:53:19 +02:00
Léa Saviot
a7b51f92ee
[apps] Remove compilation warning about unused variable
2019-05-03 15:53:19 +02:00
Léa Saviot
5c39cab73e
[escher] Fix text inputs so they use UTF8
2019-05-03 15:53:19 +02:00
Émilie Feral
ea59e651ee
[code] EditorController: save script before displaying the variable box
2018-11-23 12:04:03 +01:00
Émilie Feral
a4f7d83805
[code] Load Variable box content before compiling any other python code
...
to avoid memory exhaustion when displaying variable box
2018-11-23 12:04:03 +01:00
Émilie Feral
698332c355
[escher] InputTextDelegate and LayoutFieldDelegate don't inherit from
...
InputTextDelegate to avoid diamond inheritance
2018-11-23 12:04:03 +01:00
Émilie Feral
7778c694d1
[escher] Create an InputEventHandlerDelegate that gives the toolbox to
...
be used by an InputEventHandler
2018-11-23 12:04:02 +01:00
Émilie Feral
01e433a9f2
[escher] Clean Field and Input class hierarchy:
...
Class hierarchy:
- InputEventHandler
- TextInput
- EditableField derives from InputEventHandler
- LayoutField, TextField and ExpressioField derives from EditableField
- TextArea and TextField derives from TextInput
2018-11-23 12:04:02 +01:00
Émilie Feral
625c0acd8b
[code] Fix EditorController: cannot use strcpy when the first char is a
...
flag that can be 0
2018-10-08 09:46:31 +02:00
Léa Saviot
c16d9e7ffe
[apps/code] Load Python in the viewWillAppear of the controllers
2018-09-21 12:26:57 +02:00
Émilie Feral
58ad8bd87e
[code] Fix handling of python heap by ConsoleController,
...
EditorController and VariableBoxController
2018-09-20 11:54:56 +02:00
Émilie Feral
afce751eb7
[code] Get rid of malloc: keep a buffer in Code::App to be used as python heap
2018-09-19 18:20:30 +02:00
Émilie Feral
032db99754
[code] EditorController: avoid dynamic allocation
2018-09-11 17:03:04 +02:00
Émilie Feral
79740e72b0
[code] Avoid dynamic allocation and useless string copy by keeping the
...
importation status flag in the areaBuffer
2018-09-11 17:03:04 +02:00
Romain Goyet
caff93cda0
[code] Avoid init/deinit-ing uPy in each editor redraw
2018-06-04 16:08:11 +02:00
Claire Savinas
33a31ab8e0
Saving Python script when home is pressed
2018-05-15 17:27:53 +02:00
Romain Goyet
c091d1f59d
[apps/code] Add an EditorView that has a gutter
2018-05-09 17:46:09 +02:00
Romain Goyet
382537ccfe
Merge branch 'github-master'
2018-04-10 18:28:15 +02:00
Émilie Feral
92d2c42ff8
[apps] Code: allocate the indentation buffer instead of using an
...
arbitrary value
2018-04-10 17:39:34 +02:00
Romain Goyet
628992680b
[ion] Ion::Storage is not a global variable anymore
2018-04-10 15:09:30 +02:00
Émilie Feral
845fc7c979
[ion] Typo: NoEnough -> NotEnough
2018-03-22 14:01:38 +01:00
Émilie Feral
b0ede47d55
[ion] Change Storage design (former kallax)
2018-03-22 14:01:38 +01:00
Émilie Feral
f9656fd94f
[ion] Namespace Record and Kallax
2018-03-22 14:01:38 +01:00
Émilie Feral
b9a852a9d1
[escher] Change name: File --> Record, FileSystem --> Kallax
2018-03-22 14:01:38 +01:00
Émilie Feral
19ca0f0640
[apps] Code: use the FileSystem to store the scripts instead of an
...
accordion
2018-03-22 14:01:38 +01:00
Émilie Feral
3db86a8111
[apps] Code: merge actions for text input in ConsoleController and
...
EditorController
2018-03-22 13:12:12 +01:00
Émilie Feral
aade7cb2fe
[escher] Create a class TextInput (from which derived TextField,
...
TextArea)
2018-03-22 13:12:12 +01:00
Émilie Feral
576caa039f
[apps][escher] Add methods 'handleEventWithText' in TextField and
...
TextArea to fix bug in probability (adding a toolbox text from the
calculations controller)
2018-03-22 13:12:12 +01:00
Léa Saviot
53d2ae2c46
[code] Rename Code::Toolbox in Code::PythonToolbox for more clarity.
...
Change-Id: I3729fedd8a26531edcd17105ed5fc177c06a8fcb
2017-12-01 13:19:30 +01:00
Léa Saviot
e6b4d07cb6
[code] Dynamic toolbox that displays script functions and variables.
...
Change-Id: Id1494580b3832540633d3aefaf04710d21e0a44c
2017-12-01 12:06:05 +01:00
Léa Saviot
07bc7672e8
[code] Fixed cursor bug when inserting text in editor.
...
Now the cursor moves only if the insterion was successful.
Change-Id: If2f74307aecd4b9b86183a3437a53fd8875c1751
2017-11-21 17:37:48 +01:00
Léa Saviot
57633829a9
[code] Split the Menu Controller in two columns.
...
The scripts names are on the right and open the script edition.
The left cells open the script options.
Change-Id: I3fbab8c3861f3395c3206775c92cda3470963b26
2017-11-17 14:05:23 +01:00
Léa Saviot
42e6435973
[code] Fixed Script edition cursor bugs.
...
The scroll is now reloaded when text is inserted or a new line is
entered. When opening a script, the cursor moves to the end of the
script.
Change-Id: I027ea80db485916fc3fc962cfa9e032ca0bbc81e
2017-11-17 11:59:50 +01:00
Léa Saviot
13bf8c2d62
[code] Python toolbox.
...
Change-Id: I4028b05c662cae04a5ac3af5021f3438bb22dcd0
2017-11-17 11:59:50 +01:00
Léa Saviot
fbdf6379d8
[code] Script editor and Console are stacked.
...
Before, they appeared in modal views.
Change-Id: I42ea742370cd3cf0854965f67fc44b43db4cc309
2017-11-17 11:59:50 +01:00
Léa Saviot
b7baec4a40
[code] Keyboard events translation, for script or command edition.
...
For instance, the "power" event should insert "**" in the text, not "^".
Added a universal i18n file in apps/code.
Change-Id: I5d067b0c5b86590af95aa98856522d54e42acba6
2017-11-17 11:59:50 +01:00
Léa Saviot
681be23c30
[code] Auto indentation in the script editor.
...
Change-Id: I7066c41fa53068e6f18a5ad226b5e72f591f02e2
2017-11-17 11:59:50 +01:00
Léa Saviot
35520fb3d4
[code] Scripts can be automatically imported when the console is opened.
...
Editing, renaming, deleting or changing the auto-importation of a script
triggers the reloading of the console (the history is cleared, Python
restarted and the scripts re-imported).
Change-Id: If8b933cc077ecd36cab09214b5e7a181aa3ae030
2017-11-17 11:59:50 +01:00
Léa Saviot
fbb5c70339
[code] Cleaned Script and ScriptStore classes, created accordion.h
...
A Script object now contains its AutoImport marker, its name and its
content. The ScripStore methods have better names and the optimization
is cleaner.
Change-Id: I1b21af2d23f1c9a34f984309512b0c01b2f1c320
2017-11-17 11:59:50 +01:00
Léa Saviot
5de4b5cd67
[code] Each script has a name, stored in the accordeon buffer.
...
A script can now be imported in the console.
Moved all the MicroPython functions to python/port files.
Change-Id: I0a23e8cb20005719b800e81470e1c574c702c3b7
2017-11-17 11:59:50 +01:00