1
0
mirror of https://github.com/arduino/Arduino.git synced 2025-01-06 21:46:09 +01:00
Commit Graph

1384 Commits

Author SHA1 Message Date
Martino Facchin
b71a4969af Kill active programmer if still alive after closing last IDE window
Fixes https://github.com/arduino/Arduino/issues/7498
2018-11-08 18:08:58 +01:00
Martino Facchin
e1a5be7354 Cleanup IDE quit()
There were two different routines andling more or less the same operations.
Let the IDE call "real" quit when the last Editor windows is being closed.
2018-11-08 18:07:33 +01:00
Cristian Maglie
edb707378f makeup: call I18n.format using static imports in Base class 2018-10-08 12:56:22 +02:00
Cristian Maglie
6a1c1f4df9 Invalid use of toString in Optional<Version>
It should be used on the actual Version.

Fix #8034
2018-10-08 11:53:33 +02:00
Martino Facchin
d3cb01424f Provide actual string to findPlatform for Optional<Version>
Fix https://github.com/arduino/Arduino/issues/8034
2018-10-08 09:53:36 +02:00
Cristian Maglie
3dfe85916c Preserve boards.txt custom menu order.
Fix #7955
2018-09-04 10:31:36 +02:00
PaulStoffregen
4ccf9bbd90 Show a helpful message when no Port is selected 2018-09-03 16:39:39 +02:00
Martino Facchin
2f3a561c61 Fix rebuild being triggered on every menu open()
Fixes #7924

JRE 8u161 made JMenu.insert() MUCH slower on OSX.
This exposed a bug lurking there for years; in fact the menu entries were rebuilt every time since JMenu.getComponent() returns an empty list.
The correct function is JMenu.getMenuComponents().
In the meantime, also remove sketchbookMenu and examplesMenu being deleted on board change; only their content needs to be updated, not the container itself.
2018-08-27 16:22:42 +02:00
Martino Facchin
49cd9b57dd Fix check for wrong submenu 2018-08-27 16:20:20 +02:00
Cristian Maglie
d97147826e Serial monitor timestamp: add the arrow ' -> ' to the timestamp format
This saves another "append" call while streaming.
2018-08-23 10:46:32 +02:00
Cristian Maglie
986d67f1d9 Serial monitor timestamp: cache newline status
This saves an access to the Document object (as well as a bunch
temporary object allocations).
2018-08-23 10:46:32 +02:00
Cristian Maglie
8128525e83 Improve performance on serial monitor 'Show timestamp'
This patch dramatically reduce pressure on heap memory:

- use a StringTokenizer instead of the very slow String.split(...)
  method to decode newlines. This avoid allocation/deallocation of
  big strings array and use of regexp.
- pre allocate as many object as possible to avoid new allocation
  while streaming data.
- the "timestamp" string is calculated only once per iteration.
- use StringBuilder instead of inline temporary strings (that are,
  again, allocated and deallocated on each iteration)
2018-08-23 10:46:32 +02:00
Cristian Maglie
13c3750ecf Revert "Moving a sketch to another folder should move all files"
This reverts commit c4f5cafd33.
2018-08-23 10:39:20 +02:00
Cristian Maglie
4700cc3d27 Transformed some ActionListener anonumous class into lambdas
No code change
2018-08-15 17:23:04 +02:00
Cristian Maglie
2988136f97 Added alternative key binding for "Increase Font Size"
This commits adds the "CTRL SHIFT =" as key to increase font size.
The old shortcut "CTRL +" is still active, but it's not always
possible to produce it if the keyboard layout doesn't have the + key
on the base layer.

This add the possibility to compose "CTRL +" when the keyboard has
the "+" available as "SHIFT =", that seems to be very common in
many layouts.

Fix #6806
2018-08-15 17:22:47 +02:00
Cristian Maglie
1a576dd468 Fixed wrong keybinding for "Increase Font Size"
See https://github.com/arduino/Arduino/issues/6806#issuecomment-335044967
2018-08-15 00:11:41 +02:00
Cristian Maglie
60146b3d7d Fixed unused import warnings 2018-08-14 22:01:04 +02:00
per1234
19bfd2ada9 Correct messages re: sketch/library folder name restrictions
- Specify that library name error is about folder name.
  - We would normally expect "library name" to mean the "fancy name" (as defined by the library.properties name field).
- Specify exactly which characters are allowed.
- State that spaces are prohibited in sketch folder name.
- Remove outdated message about library folders not being allowed to start with a number.
  - This restriction was removed by 4545283ae7.
- State library folder name length restriction.
- Make sketch and library messages consistent with each other.
2018-08-10 10:53:15 +02:00
Jose Juan Juarez Monsivais
9d904dad31 Fixed the bug that doesn't updates the title when an example sketch is saved 2018-08-10 10:50:43 +02:00
Martino Facchin
fa51a39b58 Fix SerialMonitor and SerialPlotter lifecycles
Fixes #7683

When the selected serial port is busy both monitors now avoid displaying a useless window, cleaning the status area once the open succeeds.
2018-06-12 10:41:45 +02:00
Cristian Maglie
a76588cf5d Added newline at the end of --version output
See #7549
2018-05-22 17:48:29 +02:00
Yohsuke FURUTA
24029c5ace CLI: Add --version to CLI option (#7549)
* CLI: Add --version to CLI option

I added to get the Arduino IDE version from the command line
It will allow to check easily if the new Arduino is already installed.

This feature makes it easier to build external systems linked to specific versions of Arduino.

1. I added `--version` action, which shows version name and exit
  1. Currently, VERSION_NAME_LONG (like `1.8.5`, `1.9.0-beta`, `1.8.6 Hourly Build XXX`, etc...) is used. Because I want to know its version number and stable/beta/hourly.
  2. Finish with `0`. Because it is `SUCCESSFLLY FINISHED`.
2. Updated man page.

* Split "parse" and "action".
Move print action to probably suitable place.

This commit will fix the behavior of multiple actions about --version.

* add testcase
2018-05-22 17:46:11 +02:00
Cristian Maglie
901d8c77fe Fixed UpdatableLibrarieyTest 2018-05-21 12:04:01 +02:00
Cristian Maglie
3bce82092e Command line: added more verbosity and made output coherent 2018-05-17 09:14:25 +02:00
Cristian Maglie
8d27171b74 Fixed error in cmd-line lib installer 2018-05-17 09:14:25 +02:00
Cristian Maglie
8fa45a3a07 Removed useless double sort
Removed also the weird LibraryByTypeComparator comparator that is no
more used.
2018-05-17 09:14:25 +02:00
Cristian Maglie
ac570c50bd UserLibrary: ensure that types field is always not-null 2018-05-17 09:14:25 +02:00
Cristian Maglie
b3d01d8281 Moved install-related fields out of DownloadableContribution
Those fields have a slightly different meaning on each object that
extends DownloadableContribution and having them grouped in
DownloadableContribution only increase confusion in change of a
(very) tiny code reuse.

Moreover:

- the `readOnly` field has been renamed to `builtIn`
- predicates have been replaced by lambdas
- DownloadableContributionBuiltInAtTheBottomComparator has been replaced
  with a singleton instance
2018-05-17 09:14:25 +02:00
Cristian Maglie
2374d9d1bd Introducing UserLibraryFolder
This class allows to attach a Location property to a folder
path, this way we directly know if a library is in the sketchbook,
core, referenced-core or bundled in the IDE.

This simplify a lot of logic in the IDE.
2018-05-17 09:14:25 +02:00
Cristian Maglie
040caad124 Fixed library layout detection when adding new library 2018-05-17 09:14:25 +02:00
Cristian Maglie
e896595214 UserLibrary doesn't extend ContributedLibrary anymore
ContributedLibrary is used to decode library_index.json and it's
intended to keep data coming only from the index.

Now, when the library_index is synced with the filesystem, the
metadata about installed libraries are kept in a separate list
to not mess up with the main index.
2018-05-17 09:14:25 +02:00
Cristian Maglie
482b905a62 Using Optional<T> semantics for 'replacedLib' in LibraryInstaller
Optional<T> helps to not forget to check about nullness where it is
needed.

This commit should be equivalent and shouln't fix any bug, BTW the
Optional<T> semantic turns out to be useful in the next commits.

Possibly all nullable values will be replaced by Optional in the
future.
2018-05-17 09:14:25 +02:00
Cristian Maglie
27b99860b4 Simplified SketchController.isReadOnly(..) method
Since the method is called everywhere with the following parameters

  isReadOnly(
    BaseNoGui.librariesIndexer.getInstalledLibraries(),
    BaseNoGui.getExamplesPath())
  )

the static calls to BaseNoGui have been inlined into isReadOnly()
removing all the duplications around.
2018-05-17 09:14:25 +02:00
Martino Facchin
2be54da740 SaveAs should preserve the folder structure if user selected a sketch
Fixes https://github.com/arduino/Arduino/issues/6416
2018-05-10 10:54:54 +02:00
Martino Facchin
950d88dcbe Handle unsaved tab deletion correctly 2018-05-09 16:09:29 +02:00
Martino Facchin
f8540b3a59 rescan libraries when installing from zip file
Fixes https://github.com/arduino/Arduino/issues/6960
2018-05-09 16:09:29 +02:00
Martino Facchin
b6280cfd65 Apply on-the-fly setFontSize to Console
Fixes #7022
2018-05-09 15:56:11 +02:00
Cristian Maglie
4aec8997e2 If theme couldn't be loaded print a message explaining why 2018-05-09 11:44:03 +02:00
Cristian Maglie
b96b2508db Fixed warnings 2018-05-09 11:43:40 +02:00
Martino Facchin
01519eba9c Move Sketchbook preparation before Theme.init()
Fixes NPE when searching for themes in portable installation
2018-05-08 16:53:55 +02:00
Martino Facchin
260e0c284c Abbreviate Theme name to max 40 characters 2018-05-08 16:53:55 +02:00
Mumfrey
794ef806f1 Support selectable, user-defined themes contained in zip files 2018-05-08 16:53:55 +02:00
Mumfrey
78ef37ef08 Support user-defined theme elements via "theme" folder in sketchbook dir 2018-05-08 16:53:54 +02:00
Martino Facchin
634fe10fa2 Mitigate stdout roaming through editor consoles
Still not a perfect solution; two compilation outputs will mix up anyway.

A major refactor should be needed to avoid using System.out anywhere and inverse multiplexing the streams so they can be muted or replicated on any Console.
2018-05-02 15:52:13 +02:00
Martino Facchin
c4f5cafd33 Moving a sketch to another folder should move all files
Fixes #6402
2018-05-02 15:52:13 +02:00
Cristian Maglie
1fd794dfdb Cache editor tools (don't create new instance for each menu item) 2018-05-02 15:26:14 +02:00
Cristian Maglie
a15abacc7f Added setting for autoformat before saving (editor.autoformat_currentfile_before_saving) 2018-05-02 15:26:14 +02:00
Cristian Maglie
8e0d668344 Serial Monitor: added "show timestamp" checkbox 2018-05-02 15:26:14 +02:00
Cristian Maglie
0175a4ee94 Revert "Fix keyword loading to use any whitespace as separator"
This reverts commit eed9e7069f.
See #6693
2018-02-19 12:58:01 +01:00
Cristian Maglie
8ffbe05437 Sligthly simplified buildImportMenu loop 2018-01-18 11:46:49 +01:00