You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+36-1Lines changed: 36 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,6 +5,12 @@ the [@markw65/prettier-plugin-monkeyc](https://www.npmjs.com/package/@markw65/pr
5
5
6
6
## Features
7
7
8
+
-[Source to Source Optimizer](#source-to-source-optimizer)
9
+
-[Various vscode support features for MonkeyC](#various-support-features-for-monkey-c)
10
+
-[Monkey C Code Formatter](#monkey-c-code-formatter)
11
+
12
+
---
13
+
8
14
### Source to Source Optimizer:
9
15
10
16
Various constructs in Monkey-C have runtime costs, including `const` and `enum` declarations. This plugin can generate a copy of your program with all `const`s and `enum`s replaced with their values, and also constant fold simple expressions, reducing generated code size, and improving performance. In addition, it removes dead code, and can optionally strip code based on excludeAnnotations.
@@ -53,6 +59,18 @@ By default the optimizer will figure out the excludeAnnotations and sourcePaths
53
59
54
60
You can provide more control over the build via `tasks.json` and `launch.json`. You can add configurations with type `omonkeyc` similar to the corresponding `monkeyc` ones that Garmin provides, but you can override any of the build options (so eg, you can create a `Build and run Debug` launch config, and a `Build and run Release` launch config, and switch between them from the `Run and Debug` menu).
55
61
62
+
---
63
+
64
+
### Various support features for Monkey C
65
+
66
+
-`Goto Definition`, and `Peek Definition`
67
+
-`Rename symbol`
68
+
-`Goto References` and `Peek References`
69
+
-`Outline Mode`, `Goto Symbol` (Cmd-Shift-O), and `Open symbol by name` (Cmd-T)
70
+
- Shows parser issues in the `Problems` tab as you type, rather than when you compile
71
+
72
+
---
73
+
56
74
### Monkey C code formatter:
57
75
58
76
#### Input
@@ -87,7 +105,6 @@ This extension depends on the [VSCode Prettier extension](https://marketplace.vi
87
105
88
106
-[A type checker bug](https://forums.garmin.com/developer/connect-iq/i/bug-reports/inconsistent-type-checker-errors) makes it hard to know exactly how to replace an enum with the corresponding number without causing type checker errors. As a result, type checking is off by default for optimized builds (but can be enabled explicitly in configured tasks or launch configs).
89
107
- Some of the constants in <sdk>/bin/api.mir are incorrect. In particular, all of the enums/constants that should be negative have the corresponding positive value. I've built a list of exceptions that need fixing which I believe is complete, but its hard to be sure.
90
-
- The optimizer will only re-generate the optimized source if the original source code has changed since the last time it was built. If you change options, but not the source code, you'll need to delete bin/optimized to ensure things are rebuilt.
91
108
92
109
## Release Notes
93
110
@@ -191,4 +208,22 @@ Upgrade to @markw65/monkeyc-optimizer:1.0.8 to fix more issues found via open so
191
208
192
209
- add full support for optimizing barrels
193
210
211
+
#### 2.0.9
212
+
213
+
- Bump to @markw65/monkeyc-optimizer@1.0.11
214
+
- Properly handle extension disposables
215
+
- prevents potential issues when the extension is repeatedly enabled/disabled, or different workspaces are loaded/unloaded.
216
+
- Switch to typescript
217
+
- The project was getting too complex to manage. typescript helps a little.
218
+
- Implement a definition provider
219
+
- Supports `Goto Definition`, and `Peek Definition`
220
+
- Add a rename provider
221
+
- Supports `Rename symbol`
222
+
- Add a reference provider
223
+
- Supports `Goto References` and `Peek References`
224
+
- Report parser errors
225
+
- Shows parser issues in the `Problems` tab as you type, rather than when you compile
226
+
- Add Document and Workspace Symbol Providers
227
+
- Supports `Outline Mode`, `Goto Symbol` (Cmd-Shift-O), and `Open symbol by name` (Cmd-T)
0 commit comments