Difference between revisions of "Eclipse Tips"

From CSE231 Wiki
Jump to navigation Jump to search
(need images incomplete)
 
(6 intermediate revisions by one other user not shown)
Line 10: Line 10:
 
# "Project" -> "Clean..." from the menu bar.
 
# "Project" -> "Clean..." from the menu bar.
  
Note in order to invoke the function keys on some laptops you need to press the Function modifier key.
+
Note: In order to invoke the function keys on some laptops, you need to press the Function (Fn) modifier key.
  
 
=Maven=
 
=Maven=
Sometimes refreshing Maven isn't enough.
+
Sometimes refreshing Maven isn't enough. Refer to [[Maven_Force_Update]] to update it.
 
 
[[Maven_Force_Update]]
 
  
 
=Content Assist=
 
=Content Assist=
Content assist is amazing. You should use it.   
+
The Content Assist feature completes partially entered code with existing code elements. Content Assist is amazing. You should use it.   
==Mac==
+
===Mac===
 
On the Mac, the Spotlight often masks content assist.  Follow [http://stefaanlippens.net/code_completion_shortcut_eclipse_osx/ this guide] to set up a new keyboard shortcut of your choosing.
 
On the Mac, the Spotlight often masks content assist.  Follow [http://stefaanlippens.net/code_completion_shortcut_eclipse_osx/ this guide] to set up a new keyboard shortcut of your choosing.
==Windows==
+
===Windows===
On Windows it is pretty easy.  Just type Ctrl+SPACE.
+
On Windows, it is pretty easy.  Just type Ctrl+SPACE.
  
=Content Assist lambda ()->{}=
+
===Content Assist lambda ()->{}===
 
set up "body" template to produce an empty lambda (see images below)
 
set up "body" template to produce an empty lambda (see images below)
  
Line 43: Line 41:
 
[[File:LambdaTemplate.png]]
 
[[File:LambdaTemplate.png]]
  
=Content Assist async,finish imports=
+
===Content Assist fork, join imports===
All classes are equal but some classes are more equal than others.  The following will single out the V5 class to promote the static methods async, finish, and friends to be offered in content assist.
+
All classes are equal but some classes are more equal than others.  The following will single out the FJ class to promote the static methods fork, join, and friends to be offered in content assist.
  
 
[[File:V5ImportStaticPreferences.png]]
 
[[File:V5ImportStaticPreferences.png]]
Line 50: Line 48:
 
[[File:V5ImportStaticNewFavoriteType.png]]
 
[[File:V5ImportStaticNewFavoriteType.png]]
  
[[File:V5ImportStaticTypeSelection.png]]
+
[[File:Eclipse favorite type selection.png]]
 +
 
 +
NOTE: for the video below, replace Habanero with FJ
 +
 
 +
<youtube>YO8x-ARnd50</youtube>
  
 
=Git Action Set=
 
=Git Action Set=
Line 63: Line 65:
 
=JDK Setup=
 
=JDK Setup=
 
By default Eclipse is often configured to use the JRE.  Switching to the JDK is a easy way to get access to the Java source code which is great for tunneling in to see how the system is implemented.
 
By default Eclipse is often configured to use the JRE.  Switching to the JDK is a easy way to get access to the Java source code which is great for tunneling in to see how the system is implemented.
==Mac==
+
===Mac===
 
https://manski.net/2011/12/eclipse-and-the-jdk-under-mac-os-x-lion/#manually-adding-a-jdk
 
https://manski.net/2011/12/eclipse-and-the-jdk-under-mac-os-x-lion/#manually-adding-a-jdk
==Windows==
+
===Windows===
 
http://www.gamefromscratch.com/post/2011/11/15/Telling-Eclipse-to-use-the-JDK-instead-of-JRE.aspx
 
http://www.gamefromscratch.com/post/2011/11/15/Telling-Eclipse-to-use-the-JDK-instead-of-JRE.aspx
  
 
=JavaFX Setup=
 
=JavaFX Setup=
 
We will use JavaFX for some visualizations this semester.  Installing the JavaFX plugin will get clean up the compiler warnings.
 
We will use JavaFX for some visualizations this semester.  Installing the JavaFX plugin will get clean up the compiler warnings.
 +
 +
[https://wustl.app.box.com/file/270328288527 video walkthrough]
  
 
Install the e(fx)clipse plugin via Help -> Eclipse Marketplace:
 
Install the e(fx)clipse plugin via Help -> Eclipse Marketplace:
Line 76: Line 80:
  
 
[[File:MarketplaceE FX Clipse.png]]
 
[[File:MarketplaceE FX Clipse.png]]
 +
 +
==Linux==
 +
<nowiki>sudo apt-get install openjfx</nowiki>
 +
 +
or
 +
 +
<nowiki>sudo yum install openjfx</nowiki>
  
 
=Hierarchical Package Presentation=
 
=Hierarchical Package Presentation=
 
As the semester progresses the number of packages can get to be a bit unwieldy.  Switching to Hierarchical Package Presentation might be worth trying out.
 
As the semester progresses the number of packages can get to be a bit unwieldy.  Switching to Hierarchical Package Presentation might be worth trying out.
 
[[File:EclipsePackagePresentationHighlight.png]]
 
[[File:EclipsePackagePresentationHighlight.png]]

Latest revision as of 05:24, 31 December 2022

Eclipse is a very powerful IDE for Java development. You can download it from eclipse.org/downloads. This page will contain tips for using Eclipse more efficiently in this class.

Refresh

Sometimes after you pull from git you will find that your project needs to be refreshed. The following steps are a bit heavy handed, but often will get your project back up and working again.

Select your project in the package explorer:

  1. "F5" to refresh
  2. "Alt-F5" to refresh Maven
  3. "Project" -> "Clean..." from the menu bar.

Note: In order to invoke the function keys on some laptops, you need to press the Function (Fn) modifier key.

Maven

Sometimes refreshing Maven isn't enough. Refer to Maven_Force_Update to update it.

Content Assist

The Content Assist feature completes partially entered code with existing code elements. Content Assist is amazing. You should use it.

Mac

On the Mac, the Spotlight often masks content assist. Follow this guide to set up a new keyboard shortcut of your choosing.

Windows

On Windows, it is pretty easy. Just type Ctrl+SPACE.

Content Assist lambda ()->{}

set up "body" template to produce an empty lambda (see images below)

Text for the copy buffer:

() -> {
    ${cursor}
}

example usage:

type async
type ctrl+SPACE (or whatever you have mapped content assist to)
type RIGHT_ARROW
type ctrl+SPACE (or whatever you have mapped content assist to)
type ENTER

TemplatePreferences.png

LambdaTemplate.png

Content Assist fork, join imports

All classes are equal but some classes are more equal than others. The following will single out the FJ class to promote the static methods fork, join, and friends to be offered in content assist.

V5ImportStaticPreferences.png

V5ImportStaticNewFavoriteType.png

Eclipse favorite type selection.png

NOTE: for the video below, replace Habanero with FJ

Git Action Set

Pulling, Committing, and Pushing to your git repo on bitbucket will be common operations. Make the operations more readily available:

CustomizePerspective.png

ActionSetAvailability.png

GitActionSet.png

JDK Setup

By default Eclipse is often configured to use the JRE. Switching to the JDK is a easy way to get access to the Java source code which is great for tunneling in to see how the system is implemented.

Mac

https://manski.net/2011/12/eclipse-and-the-jdk-under-mac-os-x-lion/#manually-adding-a-jdk

Windows

http://www.gamefromscratch.com/post/2011/11/15/Telling-Eclipse-to-use-the-JDK-instead-of-JRE.aspx

JavaFX Setup

We will use JavaFX for some visualizations this semester. Installing the JavaFX plugin will get clean up the compiler warnings.

video walkthrough

Install the e(fx)clipse plugin via Help -> Eclipse Marketplace:

EclipseMarketplace.png

MarketplaceE FX Clipse.png

Linux

sudo apt-get install openjfx

or

sudo yum install openjfx

Hierarchical Package Presentation

As the semester progresses the number of packages can get to be a bit unwieldy. Switching to Hierarchical Package Presentation might be worth trying out. EclipsePackagePresentationHighlight.png