Skip to content

Commit 30cdc8a

Browse files
authored
Wiki migration and link updates (#7480)
1 parent 2166064 commit 30cdc8a

19 files changed

+237
-11
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -65,4 +65,4 @@ Please note the following known issues:
6565
If you like getting new features as soon as they've been added to the code then you
6666
might want to try out the dev channel. It is updated weekly with the latest contents
6767
from the "master" branch. It has minimal testing. Set up instructions are in the wiki's
68-
[dev channel page](https://github.com/flutter/flutter-intellij/wiki/Dev-Channel).
68+
[dev channel page](./docs/Dev-Channel.md).

docs/Demo-Tips.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
## Demo Tips and Tricks
2+
3+
_(A place for demo-giving tips and tricks.)_
4+
5+
Consider using Nikolay Chashnikov's excellent [Presentation Assistant](https://plugins.jetbrains.com/idea/plugin/7345-presentation-assistant).

docs/Dev-Channel.md

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
We have an early-access version of the plugin, called the dev channel. This version will be updated weekly, containing all changes made in the previous week. To use it you need to configure IntelliJ or Android Studio to look for plugins on the dev channel repository.
2+
3+
NOTE: If you already have the Flutter plugin installed, please uninstall it before proceeding. Once you have the plugin installed from one channel it will not be available on other channels.
4+
5+
Open the Plugins preference page (macOS) or settings page (Windows, Linux). Click the gear at the top-right and select _Manage Plugin Repositories_.
6+
7+
8+
![Screen shot of repositories page](https://lh4.googleusercontent.com/zo9vANXp01YXJC_tQGuiLJxgbdtRFWV-VXViIx_MnqCphGi8PhhQbNTa7H-8ogl0AxIpU7enEQpAs3FZ8lSd0eUw4FpSkxXRkDoQj9uCpvs93D4pTdIrjyK0--q9xBPXTQ0MN7PB)
9+
10+
11+
A list editor will pop up that allows you to edit custom plugin repositories. Add this to the list:
12+
[https://plugins.jetbrains.com/plugins/dev/list](https://plugins.jetbrains.com/plugins/dev/list)
13+
14+
15+
![Screen shot of repositories](https://lh3.googleusercontent.com/W4o9xr8IAx0ROAc5NLeTFMbV8b_0ONukXiQdbU9nPbsY3l1eYsqPhyRMU5GkCA93JgqEensjFHSP_AFY0UAGLtZF2epZmH-GoDNlK0okegrF-jsdpy0GuPPEt4CnqzwalWJVril3)
16+
17+
18+
Then click OK. The version of the Flutter plugin you see in the Marketplace list will be the dev channel version.
19+
20+
21+
![Screen shot of plugins](https://lh6.googleusercontent.com/q8L3R4Rqyjb9gbrKui1SK7YvVLejBXg4TLE0Nif28nxRj69pxrgQY4cwFGiCHuBEegar5MvUgCWY2ETn2lABzG2HjZznPNAtprQRGoUenFrbxpsPNRM-gnxMCAkOpGcI3bGJtRwz)

docs/Development.md

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
## Development Notes
2+
3+
### Simulating a fresh install
4+
5+
To simulate a fresh install, you need to delete any accrued application state. To do this, you'll want to delete select folders in your plugin sandbox (location found in the `Sandbox Home` field in `Project structure | SDKs | [your IntelliJ IDEA plugin SDK]`.
6+
7+
* **config** folder contains IDE app-level configuration, including app-level libraries, SDKs, recent projects, etc.
8+
* **system** folder contains indexes and caches, deleting it is similar to File | Invalidate Caches action.
9+
* **plugins** folder contains plugins that you additionally manually installed to the started IDE. (Likely don't want to delete `Dart`.)
10+
* **test** folder will also appear as soon as you run some tests. (Deleting it when tests fail with no visible reason can sometimes help.)
11+
12+
(_**NOTE:**_ after removing configuration info, you may need to re-prepare the `flutter-intellij` plugin for deployment in order for it to show up in your fresh runtime workbench: `Build > Prepare Plugin Module 'flutter-intellij' For Deployment`.)

docs/Diagnosing-Problems.md

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
This is a general page to help diagnose issues.
2+
3+
## SDK settings page
4+
5+
You can validate that you have a Flutter SDK configured for your project by going to `Settings > Languages & Frameworks > Flutter` and confirm that there is a setting for the `Flutter SDK path` field.
6+
7+
## Flutter doctor
8+
9+
Flutter doctor is a great tool to validate settings. You can run it from the command-line via `flutter doctor`, and from IntelliJ via `Tools > Flutter > Flutter Doctor`. Please validate that the results for each look reasonable, don't report issues, and agree with each other in terms of the installed toolchains and paths.
10+
11+
## Running apps
12+
13+
If you see issues when running apps - apps not coming up or buttons not becoming enabled - you can run in verbose mode. Open the Flutter preferences (`Settings > Languages & Frameworks > Flutter`), and select `'Enable verbose logging'`. The next time you run an app, it will log verbose information to the run console; this may help in diagnosing where the problem is.
14+
15+
## Analysis issues
16+
17+
The Dart specific smarts for the flutter-intellij plugin are powered by Dart's analysis server. It's a server process that provides errors and warnings as you type, code completion, refactorings, and other IDE-level features. This series of steps can help provide us with the information necessary to debug issues with the analysis server:
18+
19+
- in IntelliJ, open the registry (`cmd-shift-A` and search for `'Registry'`)
20+
- search for the key `dart.additional.server.arguments`
21+
- change the value to `--instrumentation-log-file=/path/to/log/file` (and point it to a path for your machine)
22+
- close the dialog (a restart may be necessary)
23+
24+
The next time IntelliJ runs, the analysis server will log diagnostic information to the given path.
25+
26+
## Restarting
27+
28+
If all else fails, try:
29+
30+
- restarting IntelliJ
31+
- restarting the iOS simulator
32+
- checking Android devices for a 'authorize debugging' dialog

docs/FAQ.md

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
## Frequently Asked Questions
2+
3+
### How do I configure a Flutter SDK?
4+
5+
The Flutter plugin for IntelliJ depends on a Flutter SDK to be configured in the Flutter Plugin (**Preferences>Languages & Frameworks>Flutter**). This should point to the Flutter install location.
6+
7+
### How do I build the plugin?
8+
9+
For details about developing with IntelliJ, see our
10+
[contributing](../CONTRIBUTING.md)
11+
instructions.

docs/Gradle-daemon-error.md

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
If you work with Gradle projects you might see an error like this:
2+
```
3+
The newly created daemon process has a different context than expected.
4+
Java home is different.
5+
```
6+
I don't know what causes this, but it appears to be internal to Gradle. IntelliJ is trying to sync the project and this error occurs when Gradle tries to start its daemon. The cached and given locations for the Java JDK are different. The cached one can't be used in IntelliJ so there appears to be no way to fix it.
7+
8+
I found a work around. It is painful. Remove all JDKs, unset JAVA_HOME (if set), and restart the computer. Start IntelliJ and see a different error for the Gradle-based project. Shut down IntelliJ, install a JDK, set JAVA_HOME (if used), and restart the computer. You will have to reconfigure the SDKs in IntelliJ (use the Project Structure editor). If the Gradle project does not re-sync automatically, just restart IntelliJ. You should at least get past the Gradle daemon creation problem doing this.
9+
10+
There are two ways you might see this problem. If you use the `intellij-community` sources you are using at least one Gradle-based module. The other is if you are working with the plugin integration tests. That is also a Gradle-based module.
11+
12+
UPDATE
13+
14+
This problem occurred again. This time I fixed it by defining JAVA_HOME, without deleting anything or restarting the computer. I set JAVA_HOME to the "Contents" directory of the JDK that is distributed with Android Studio. Then I started IntelliJ and reset the Project Structure JDKs to use that distro. After that, a build started automatically and the Gradle daemon was created properly. Still no idea what the underlying problem is, though.
+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Build your widgets inline with Hot UI
2+
3+
HotUI allows you to see and interact with your widgets directly in your IDE as you’re building them. This feature is very early so not all functionality is yet available in the version of Flutter you are using.
4+
5+
We call this feature “Hot UI” and, like Hot Reload, as you make the changes in your code, it updates the hosted UI directly. You can also interact with the hosted UI (like changing a color, as shown here) and that change goes directly into your code. To enable the Hot UI preview, enable this experiment in the Flutter plugin. Property editing is available on the stable Flutter channel and the device screen mirror will be available on master soon.
6+
7+
## Enabling
8+
This feature is currently experimental. To enable, go to Preferences > Languages & Frameworks > Flutter
9+
Then check "Enable Hot UI" under "Experiments".
10+
11+
## Outline view integration.
12+
At the bottom of the Flutter outline view Hot UI provides a list of properties for the current Widget that can be edited inline. When a property edit is made, a hot reload will automatically be triggered so you can see the results of the change on the device.
13+
14+
## Code editor integration.
15+
Your location in the code editor syncs with the outline view and the highlighted widget on the device to make it easier to see how your code relates to the running application.
16+
17+
## Screen mirror (coming soon)
18+
If your version of Flutter is new enough, you will see a screen mirror next to the editable list of properties. You can click on the screen mirror to select the widget in the editor and outline view.

docs/Mac-Menu-Bar-Problem.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
There appears to be a bug in the standard JDK that can prevent the Mac menu bar from functioning. This only affects a debuggable version of IntelliJ or Android Studio launched from IntelliJ. Commands invoked from the menu bar do nothing, although the same command invoked via a key binding works as expected.
2+
3+
There are two work-arounds. The simplest is to edit the run config used to launch the product under test. In the **VM options**, change `-Dapple.laf.useScreenMenuBar=true` to `-Dapple.laf.useScreenMenuBar=false`. That puts the menu bar in the window, rather than at the top of the screen.
4+
5+
The other solution is to use a different JDK. Jetbrains has one that can be used. Clone it from [https://github.com/JetBrains/jdk8u](https://github.com/JetBrains/jdk8u). Or you can use the JRE distributed with IntelliJ IDEA Ultimate. It is in the application installation folder: `<intellij>/Contents/JDK/Contents/Home/jre`. You'll need to copy `tools.jar` from `.../Home/lib` into `.../Home/jre/lib`. You also need to edit the run config to disable the JRE check. In **VM options** change _-Didea.jre.check=true_ to _-Didea.jre.check=false_. To make the run config use the alternate JDK edit it and change **JRE** to point to the new location. It will be something like _/Applications/IntelliJ IDEA.app/Contents/jdk/Contents/Home/jre_ or where ever you downloaded the github repo.

docs/Milestones.md

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Milestones and Planning
2+
3+
- we're using monthly [milestones](https://github.com/flutter/flutter-intellij/milestones)
4+
- at the beginning of a milestone, we triage issues from the [Backlog](https://github.com/flutter/flutter-intellij/milestone/10) and [On Deck](https://github.com/flutter/flutter-intellij/milestone/11) milestones into the new milestone
5+
- any work done or issues fixed should be assigned to the current milestone
6+
- at the end of the milestone, we run through the [testing plan](https://github.com/flutter/flutter-intellij/blob/master/docs/testing.md) and validate the candidate release
7+
- before releasing, we update the [changelog](https://github.com/flutter/flutter-intellij/blob/master/resources/META-INF/plugin.xml#L22) (based on the work tracking in the milestone)
8+
- we then [ship](../docs/Releasing.md), and iterate
+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
For information about how to profile IntelliJ for performance issues, see https://intellij-support.jetbrains.com/hc/en-us/articles/207241235-Reporting-performance-problems#capture_slow_startup_2019_2.
2+
3+
In summary:
4+
- install the 'Performance Testing' plugin
5+
- restart IntelliJ
6+
- get set up to repro the issue
7+
- from the `Help > Diagnostics` menu, select `Start CPU Usage Profiling`
8+
- repro the issue
9+
- from the `Help > Diagnostics` menu, select `Stop CPU Usage Profiling`
10+
- this will save a zip file with a performance snapshot
11+
12+
You can them attach that zip file to bug reports, or open it yourself in JetBrains' `YourKit Java Profiler` tool.

docs/README.md

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Welcome to the `flutter-intellij` docs!
2+
3+
This wiki is intended largely for development and process documentation.
4+
5+
For general plugin usage instructions see the [readme](../README.md). If you want to contribute please see the [contributor docs](../CONTRIBUTING.md).
6+
7+
Thanks!

docs/Release-testing.md

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
The following use cases should be tested on all new releases:
2+
https://github.com/flutter/flutter-intellij/blob/master/testing.md

docs/Releasing.md

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# Creating a new release
2+
3+
## From IntelliJ:
4+
- ensure that the changelog in `CHANGELOG.md` is up-to-date (from the current milestone)
5+
- edit `CHANGELOG.md` to update the release notes
6+
- re-generate the plugin.xml files using `bin/plugin generate`
7+
- commit these changes
8+
- create a new branch locally from that commit (`git checkout -B release_<version> SHA`, replacing `<version>` and `SHA` as appropriate)
9+
- in a terminal emulator, `bin/plugin --release=<version> build`, again replacing `<version>` with the current version number
10+
- the plugin is created as three separate `flutter-studio.zip` products in `/project/root/releases/release_<version>` (all three will be uploaded separately)
11+
- 2017.3
12+
- 2018.1
13+
- push your release branch upstream (`git push -u upstream release_21`)
14+
15+
## From plugins.jetbrains.com:
16+
- sign into https://plugins.jetbrains.com
17+
- from https://plugins.jetbrains.com/plugin/9212?pr=idea, select `'update plugin'`
18+
- upload the `flutter-studio.zip` files (one for each product) created from the earlier step (note: the `.zip` file)
19+
20+
# Pushing a patch to an existing release
21+
22+
When it's necessary to patch a previously released build:
23+
24+
## Change to the release branch
25+
26+
- the fix should have already been committed to master
27+
- `git pull` to get the latest branch information
28+
- change to the branch for that release (`git checkout release_21`)
29+
30+
## Cherry-pick the fix
31+
32+
- cherrypick the specific commit (`git cherry-pick 2d8ac6a`)
33+
- ensure that the changelog in `resources/META-INF/plugin.xml` is up-to-date (from the current milestone)
34+
- edit `CHANGELOG.md` to update the release notes
35+
- again, to re-generate the plugin.xml files use `bin/plugin generate`
36+
- commit these changes
37+
- push your release branch upstream (`git push -u upstream release_21`)
38+
39+
## Re-deploy the new Jar
40+
41+
- in a terminal emulator, `bin/plugin --release=<version> build`, again replacing `<version>` with the current version number
42+
- the plugin is created as three separate `flutter-studio.zip` products in `/project/root/releases/release_<version>` (all three will be uploaded separately)
43+
- 2017.3
44+
- 2018.1
45+
- 2018.2
46+
- sign into https://plugins.jetbrains.com
47+
- from https://plugins.jetbrains.com/plugin/9212?pr=idea, select `'update plugin'`
48+
- upload the `flutter-studio.zip` created from the earlier step (note: the `.zip` file)

docs/Triaging.md

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
## Inbox Tracking
2+
3+
The [Inbox Query](https://github.com/flutter/flutter-intellij/issues?utf8=✓&q=is%3Aissue+is%3Aopen+no%3Amilestone) contains all the
4+
5+
* open issues that
6+
* have no milestone assignment.
7+
8+
The inbox tracker should do the following initial triage:
9+
10+
* Is the issue invalid? Close it, with a brief explanation.
11+
* Is the issue a general question, like _"How can I make a blinking button?"_ Close it and redirect to [Stack Overflow](https://stackoverflow.com/tags/flutter) or [gitter](https://gitter.im/flutter/flutter); fodder for a redirecting response can be harvested from this [message](https://gist.github.com/pq/9c8293516b055b369e34e7410c52d2d8).
12+
* Is the issue better filed against Flutter or the Dart SDK? Move it using the GitHub [Issue Mover](https://github-issue-mover.appspot.com/).
13+
* Is the issue an obvious duplicate? Close it with a pointer to the duplicated issue.
14+
* Is this issue a bug? Add the `bug` label.
15+
* Is this issue a feature? Add the `enhancement` label.
16+
* Is the issue a `P0` or a `P1`? Assign the relevant label.
17+
* For P0s, let the team know and find an immediate owner. Fixes for P0s get patched into the current stable release.
18+
* For P1s, assign an owner and ping them. We'll plan to get fixes for P1s into the next stable release.
19+
* Milestone assignment:
20+
* For very high priority issues, assign to the current or upcoming milestones; these are ones you know people plan to work on imminently
21+
* For things that have a high likelihood of being triaged them into the next milestone during planning, assign to the 'On Deck' milestone
22+
* For things we're not willing to close, assign to the 'Backlog' milestone
23+
* Assign any relevant `topic-` labels, and
24+
* Edit the issue's title to best represent our new understanding of the issue; this will save time for every other person who needs to skim the issue titles in the future
25+
26+
## PR Bots
27+
- if an issue with the `waiting for customer response` label is not responded to in 14 days, it's automatically closed with an appropriate message
28+
- to move an issue to another repo, add the comment: `/move to flutter`
29+
30+
## flutter/flutter issues
31+
32+
For issues that clearly belong in the flutter/flutter repo, please do very initial triaging (for example, report 'flutter doctor -v' output with your bug), remove any of our github labels, and move the issue to the flutter/flutter repo by adding the comment to the issue: `/move to flutter`.
33+
34+
We don't have a process for monitoring or triaging IDE issue in the flutter/flutter repo, but likely should. Some candidate github searches:
35+
36+
- https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22dev%3A+ide+-+jetbrains%22
37+
- https://github.com/flutter/flutter/labels/dev%3A%20ide%20-%20vscode
38+
39+
To move flutter/flutter issues to the flutter-intellij repo, add a comment to the issue: `/move to ide`.

docs/testing.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ Verify that projects without Flutter project metadata open properly and are give
171171
Verify installation and configuration in a fresh IDEA installation.
172172

173173
* Follow the instructions to
174-
[simulate a fresh installation](https://github.com/flutter/flutter-intellij/wiki/Development#simulating-a-fresh-install).
174+
[simulate a fresh installation](Development.md#simulating-a-fresh-install).
175175
* (If not running in a "runtime workbench", [install the plugins](https://flutter.dev/docs/development/packages-and-plugins/using-packages).)
176176
* Open "Languages & Frameworks>Flutter" in Preferences and verify that there is
177177
no Flutter SDK set.

flutter-idea/src/io/flutter/run/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
## `io.flutter.run`
44

55
* `LaunchState` - launches a Flutter app in "machine" mode so that it
6-
[sends and receives JSON messages](https://github.com/flutter/flutter/wiki/The-flutter-daemon-mode).
6+
sends and receives JSON messages.
77

88
* `LaunchState.Runner` - abstract class for a way of running a Flutter app (either using a Flutter SDK or Bazel).
99

flutter-idea/src/io/flutter/run/daemon/DaemonApi.java

-4
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,6 @@
3434
* Sends JSON commands to a flutter daemon process, assigning a new id to each one.
3535
*
3636
* <p>Also handles dispatching incoming responses and events.
37-
*
38-
* <p>The protocol is specified in
39-
* <a href="https://github.com/flutter/flutter/wiki/The-flutter-daemon-mode"
40-
* >The Flutter Daemon Mode</a>.
4137
*/
4238
public class DaemonApi {
4339
public static final String FLUTTER_ERROR_PREFIX = "error from";

flutter-idea/src/io/flutter/run/daemon/DaemonEvent.java

-4
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,6 @@
1616

1717
/**
1818
* <p>A message received from a Flutter process that's not in response to a particular request.
19-
*
20-
* <p>The protocol is specified in
21-
* <a href="https://github.com/flutter/flutter/wiki/The-flutter-daemon-mode"
22-
* >The Flutter Daemon Mode</a>.
2319
*/
2420
abstract class DaemonEvent {
2521
/**

0 commit comments

Comments
 (0)