自動Refresh

Settings > General > Workspace > Refresh On Access

Eclipse内コンソールでEOF入力できない?

c - Send an EOF in Eclipse's debugger console - Stack Overflow

It's a bug, see here:
c++ - Passing End of Transmission (Ctrl + D) character in Eclipse CDT console - Stack Overflow

Still broken >.> (Eclipse SDK Kepler) – Dennis Meng Nov 6 '13 at 5:16

まだダメっぽ?

PHPのデフォルトインデント

[設定] - [PHP] - [コード・スタイル] - [フォーマッター]
折り返された行のデフォルト・インデント
配列イニシャライザーのデフォルト・インデント

デフォルトで最初の行でブレークしないようにする

設定 - PHP - デバッグ - 最初の行でブレーク

EclipseとSubversion連携

http://d.hatena.ne.jp/deeeki/20090403/trysubversive

Subversiveプラグイン - EclipseWiki (リンク死んでる…?)
上記を参考に、

   SVN Team Provider
   Subversive SVN Connectors
   SVNKit Implementation

これら3つのプラグインをインストールします。

INDIGOへのインストール

http://kurusugawa.jp/2009/07/08/how-to-install-subversive-plugin-to-eclipse-galileo-35/

ステップ1

  • [Help] - [Install New Software...] で Install ダイアログを開く。
  • Work with: で「Indigo - http://download.eclipse.org/releases/indigo」を選択。
  • [Pending...] の表示が出ているときはしばらく待つ。
  • [Collaboration] - [Subversive SVN Team Provider (Incubation)] をチェック。
  • [Next] をクリックしインストールを進める。

ステップ2

  • [Help] - [Install New Software...] をクリックし Install ダイアログを開く。
  • [Add...] ボタンを押し、Add Site ダイアログを表示。
  • [Subversion SVN Connectors] - [SVNKit 1.3.5 Implementation (Optional)] をチェック。
  • [Next] をクリックしインストールを進める。

使い方

LogCat表示

[Window] - [Show View] - [Other] - [Android] - [LogCat]

プロジェクトをインポート

http://www.javadrive.jp/eclipse3/project/index4.html

補完関連クラス図

ICompletionProposal
│
△
│
CompletionProposal
EmptyProposal
PositionBasedCompletionProposal
TemplateProposal
ICompletionProposalExtension2
│
△
│
PositionBasedCompletionProposal
TemplateProposal
IJavaCompletionProposal, ICompletionProposalExtension, ICompletionProposalExtension2, ICompletionProposalExtension3, ICompletionProposalExtension5, ICompletionProposalExtension6
│
△
│
AbstractJavaCompletionProposal
│
△
│
LazyJavaCompletionProposal
│
△
│
JavaMethodCompletionProposal (本命)
│
△
│
FilledArgumentNamesMethodProposal, ParameterGuessingProposal

org.eclipse.jdt.ui改造

補完時の関数括弧を出力しない

org/eclipse/jdt/internal/ui/text/java/JavaMethodCompletionProposal.java

protected void appendMethodNameReplacement(StringBuffer buffer) {
    …
    <font color="red">// buffer.append(LPAREN); // ここをコメントアウト</font>
}

…

@Override
protected String computeReplacementString() {
    …

    <font color="red">// buffer.append(RPAREN); // ここをコメントアウト</font>

    return buffer.toString();

}

半角スペースの入力で補完を完了させない

org/eclipse/jdt/internal/ui/text/java/JavaMethodCompletionProposal.java

protected final static char[] METHOD_WITH_ARGUMENTS_TRIGGERS= new char[] { '(', '-', ' ' };
↓
<font color="red">protected final static char[] METHOD_WITH_ARGUMENTS_TRIGGERS= new char[] { '(', '-' };</font>

org.eclipse.jface.textプラグイン改造

注意

  • 改造元パッケージから .api_description ファイルをコピーしてくる。
  • ファイル名にも意味があるらしい。元のファイル名を変えないこと。

クラスの差し替え手順

ContentAssistant$AutoAssistListener.class
ContentAssistant$AutoAssistListener$1.class
の2つをコピー
MANIFEST.MF から該当の SHAハッシュを削除
圧縮

TemplateProposal.class
TemplateProposal$1.class

Tabで補完選択&半角スペースやその他記号で補完選択させない

org/eclipse/jface/text/contentassist/CompletionProposalPopup.java

switch (key) {
    case 0x1B: // Esc
        e.doit= false;
        hide();
        break;

    case '\n': // Ctrl-Enter on w2k
    case '\r': // Enter
        e.doit= false;
        insertSelectedProposalWithMask(e.stateMask);
        break;

    case '\t':
        e.doit= false;
        <font color="red">insertSelectedProposalWithMask(e.stateMask); // これを追加</font>
        <font color="red">// fProposalShell.setFocus(); // これをコメントアウト</font>
        return false;

    default:
        ICompletionProposal p= getSelectedProposal();
        <font color="red">/* コメントアウト
        if (p instanceof ICompletionProposalExtension) {
            ICompletionProposalExtension t= (ICompletionProposalExtension) p;
            char[] triggers= t.getTriggerCharacters();
            if (contains(triggers, key)) {
                e.doit= false;
                hide();
                insertProposal(p, key, e.stateMask, fContentAssistSubjectControlAdapter.getSelectedRange().x);
            }
        }
        */</font>
}

apply例

org/eclipse/jface/text/templates/PositionBasedCompletionProposal.java

public void apply(IDocument document) {
    try {
        document.replace(fReplacementPosition.getOffset(), fReplacementPosition.getLength(), fReplacementString);
    } catch (BadLocationException x) {
        // ignore
    }
}

挿入時に通る場所

ここは通ることを確認済。

org/eclipse/jface/text/contentassist/CompleteionProposalPopup.java

private void insertProposal(ICompletionProposal p, char trigger, int stateMask, final int offset){
  …(確実に通る)…

  …
    if (p instanceof ICompletionProposalExtension2 && fViewer != null) {
        …(ここも通るみたい)…
        ICompletionProposalExtension2 e= (ICompletionProposalExtension2) p;
        e.apply(fViewer, trigger, stateMask, offset);
    } else if…
  …
}

ICompletionProposalExtension2詳細

ICompleteionProposal    ICompletionProposalExtension2
│                      │
△                      △
│                      │
org.eclipse.jdt.internal.ui.text.java.JavaMethodCompletionProposal

つまり、org.eclipse.jdt.ui_3.7.0.v20110531-1200.jar も差し替える必要がある。

作成したプラグインに差し替え

http://codezine.jp/article/detail/3446?p=4

  • Eclipse のインストールディレクトリ内の plugins フォルダに jar を設置。
  • Eclipse を「-clean」オプションを付けて起動する

ライブラリ

プラグイン一覧

[Help] - [About Eclipse] - [Installation Details] - [Plug-ins]

プラグインをマーケットからインストールする

[Help] - [Eclipse Marketplace...]

ユーザライブラリ

http://www.myeclipseide.jp/blog/2010/03/eclipse-user-library.html

  • [Package Explorer] - プロジェクトを右クリック - [Build Path] - [Add Libraries...] - [User Library] で [User Library] ダイアログを開く
    • [User Libraries] で [Preferences (Filtered)] を開く
      • [New] で適当な名前を追加する。
      • [Add JARs...] で jar を追加する。
      • [OK] で閉じる
    • 追加したライブラリにチェックを入れて [Finish] を押す

AndroidによるHTMLのパース - Kazzzの日記

  • ※Androidパッケージ(apk)と共に配布する場合、Eclipseプロジェクトのassetsディレクトリにjarアーカイブをコピーする必要がある)

org.eclipse.jdt.uiをビルドするメモ

  • Eclipse で workspace を jdt に指定。
  • ui フォルダ内の org を src に上書き移動。
  • internal compatibility フォルダ内の org を src に上書き移動。
  • core extension フォルダ内の org を src に上書き移動。
  • core refactoring フォルダ内の org を src に上書き移動。
  • ui refactoring を右クリックして [ビルド・パス] - [ソースフォルダとして使用]
  • パッケージ・エクスプローラ上でパッケージを右クリック - [Refresh]
  • org.eclipse.jdt.core に依存しているので、これもプロジェクトに加える。
    • model を右クリックして [ビルド・パス] - [ソースフォルダとして使用]
    • codeassist を右クリックして [ビルド・パス] - [ソースフォルダとして使用]
    • compiler を右クリックして [ビルド・パス] - [ソースフォルダとして使用]
    • antadapter を右クリックして [ビルド・パス] - [ソースフォルダとして使用]
    • search を右クリックして [ビルド・パス] - [ソースフォルダとして使用]
    • dom を右クリックして [ビルド・パス] - [ソースフォルダとして使用]
    • batch を右クリックして [ビルド・パス] - [ソースフォルダとして使用]
    • eval を右クリックして [ビルド・パス] - [ソースフォルダとして使用]
    • formatter を右クリックして [ビルド・パス] - [ソースフォルダとして使用]

org.eclipse.jface.textをビルドするメモ

'org.eclipse.core.runtime' is missing version constraint information

META-INF/MANIFEST.MF内に

Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",

という行がある。これの影響??

MANIFEST.MF を開き、そのエディタ下部の「Dependencies」タブを開き、
org.eclipse.core.runtime を選択し、「Properties」ボタンを押す。
[Optional] チェックを ON にして、[OK] を押す。

「;bundle-version="[3.6.0,4.0.0)"」を付けてみる、とか。

org.eclipse.core.runtime''';bundle-version="[3.6.0,4.0.0)"'''

このへんは消してしまったり。 →消したらダメだった

org.eclipse.jface.text.source.projection,
org.eclipse.jface.text.source.projection.images,

API Baseline

API の規則に違反していないかどうかを知るためには、互換性分析のための、
何らかのベースライン (基準) を設定する必要があります。
これは API Tools では API Baseline と呼ばれ、API Baselines の Preferences ページで設定されます

[Window] - [Preferences] - [Plug-in Development] - [API Baselines]

eclipse インストールフォルダの plugins フォルダを指定すると良い。

projectionの解決

platform-text\org.eclipse.jface.text\projection\org\eclipse\jface\text\source\projection

platform-text\org.eclipse.jface.text\src\org\eclipse\jface\text\source\projection
に移動してみる。

移動後は、パッケージ・エクスプローラで src を右クリックして「Refresh」する。

The type org.eclipse.jface.text.source.projection.IProjectionPosition in org.eclipse.jface.text_1.0.0 is no longer API

クイックフィックスで解決

プラグイン作成

作って覚えるEclipseプラグイン(1):いちばん簡単なEclipseプラグイン (1/3) - @IT

Eclipseには標準でPDE(plug-in development environment)というプラグイン開発用の機能が含まれており、~

使用Eclipse

PDE (Plugin Dev) が含まれる Eclipse を用いる。

jar作成

パッケージを右クリックして [Export] - [Java] - [jar]

ログ

エラーログの出力: Eclipseプラグイン開発

Pluginクラスの作成

Pluginクラスの作成: Eclipseプラグイン開発

Eclipseプラグインは,各プラグインの生成と破棄のタイミング(ライフサイクル)で何らかの処理を行うために, Pluginクラスを準備しておくことができる。 各プラグインでは,Pluginクラスのサブクラスを作成しておき, プラグイン・マニフェストにそのクラス名を記載しておくことによって, Eclipseプラットフォームが自動的にPluginクラスのインスタンスを生成し, 所定のメソッドを呼び出してくれる。

クラス階層

Widget    Drawable
│        │
△        △
├────┘
│
Control
│
△
├────┬───┬───┐
│        │      │      │
Control   Caret   Item    ToolTip
│
△
├───┐
│      │
Label   Scrollable
        │
        △
        │
        Composite
        │
        △
        │
        Table

スペルチェック (別にいじることもないが)

[Window] - [Preferences] - [General] - [Editors] - [Text Editors] - [Spelling]

補完

パッケージ

org.eclipse.jface.text.contentassist

  • CVSリポジトリ … anonymous@dev.eclipse.org:/cvsroot/eclipse - platform-text

補完の完了

Completion can be triggered by user request or can be automatically triggered when the "(" or "." character is typed:

public char[] getCompletionProposalAutoActivationCharacters() {
    return new char[] { '.', '(' };
}

補完時の括弧調査

TemplateProposal.java

/*
 * @see ICompletionProposal#getDisplayString()
 */
public String getDisplayString() {
    if (fDisplayString == null) {
        String[] arguments= new String[] { fTemplate.getName(), fTemplate.getDescription() };
        fDisplayString= JFaceTextTemplateMessages.getFormattedString("TemplateProposal.displayString", arguments); //$NON-NLS-1$
    }
    return fDisplayString;
}

org.eclipse.jface.text.contentassist/ContentAssistant.java

boolean b = true; // この処理は確かに通る。b を false にすると、補完リストが表示されなくなる。
if (b && contains(activation, e.character) && !isProposalPopupActive())
    showStyle= SHOW_PROPOSALS;
else {
    activation= fContentAssistSubjectControlAdapter.getContextInformationAutoActivationCharacters(ContentAssistant.this, pos);
    if (contains(activation, e.character) && !isContextInfoPopupActive())
        showStyle= SHOW_CONTEXT_INFO;
    else {
        stop();
        return;
    }
}

補完リスト選択ウィンドウ

おそらく CompletionProposalPopup

補完の挿入

おそらくここ。

org/eclipse/jface/text/contentassist/CompletionProposalPopup.java

case '\n': // Ctrl-Enter on w2k
case '\r': // Enter
    e.doit= false;
    insertSelectedProposalWithMask(e.stateMask);
    break;

自動でimport文を挿入

Ctrl+Shift+O

Propertiesタブを表示

Android開発。EclipseでPropertiesを下のタブに出す方法。 | Brand Of Me

  • main.xml のソースコードを表示。
  • ソースの適当なところで右クリック - [Properties]

クラス追加

Package Explorer 内の目的のパッケージを右クリック - [New] - [Class]

ネットワーク設定

  • [Window] - [Preferences...] - [General] - [Network Connection]

手動ビルド

[Project] - [Build All]

パースペクティブ(レイアウト)変更

右上の「Debug」「Java」ボタンにより切替。

WinCVSでチェックアウト

※ごった煮版を使用。

  • 管理 - 環境設定

    • 認証方法 … pserver
    • リポジトリパス … /cvsroot/eclipse
    • ホストアドレス … dev.eclipse.org
    • ユーザ名 … anonymous
    • CVSROOT … anonymous@dev.eclipse.org:/cvsroot/eclipse
  • リモート - チェックアウト

    • [モジュール名、又はサーバ上のパスを入力] の [...] ボタンを押すと、サーバからリポジトリ一覧を取得し、選択画面が表示される。
  • 主要リポジトリ

    • jdt (だいじ)
    • jdt-ui
    • platform
    • platform-text (だいじ)
    • pde

ソースコードチェックアウト

例
cvs -d ':pserver:anonymous@dev.eclipse.org/cvsroot/eclipse' co e4/org.eclipse.e4.ui/bundles/org.eclipse.e4.ui.workbench3

一覧

$ cvs -d ':pserver:anonymous@dev.eclipse.org/cvsroot/eclipse' ls
org.eclipse.e4.compatibility
org.eclipse.e4.deeplink
org.eclipse.e4.installer
org.eclipse.e4.languages
org.eclipse.e4.resources
org.eclipse.e4.runtime
org.eclipse.e4.server
org.eclipse.e4.swt
org.eclipse.e4.tm
org.eclipse.e4.tools
org.eclipse.e4.ui
org.eclipse.e4.utils
org.eclipse.e4.xwt
releng

Visual Studio のようなキーボード挙動にしたい

※補完=Content Assist

ショートカットキー

C/C++ Development Tools (CDT) をインストール
↓
[ウィンドウ] - [設定] - [一般] - [キー] - [スキーム] - [Microsoft Visual Studio]
を選択できるようになっているので、これを選択。

行番号表示

  • [Window] - [Preferences]
    • [General] - [Editors] - [TextEditors] - [Show line numbers]

EclipseでJavaScriptのデバッグ

プラグイン追加で以下を入力。 - jsdt - Revision 235: /trunk/org.ayound.js.debug.update

Failed to create the Java Virtual Machine.

プロジェクトをインポート

[File] - [Import] - [General] - [Existing Projects into Workspace]

括弧の補完を切る

[Window] - [Preference] - [Java] - [Editor] - [Typing] - [Automatically close]

  • "Strings"
    • ダブルクォーテーションの補完
  • (Parentheses), [square] and brackets
    • ()[]<>の補完
  • {Braces}
    • 中括弧の補完
  • Javadoc and comment regions
    • ・・・
  •  Add Javadoc tags
    •  ・・・

関数へジャンプ

;変数、関数、クラスなどの定義元へジャンプ :要素上でF3もしくはCtrl + 左クリック

PackageExplorerの選択をソースと同期

「←→」みたいな形のアイコンを押しておくと良い。

ソースの自動同期

[設定]-[一般]-[ワークスペース]の「自動的に更新」(上から2番目)をチェック、です。

ショートカット

シーサー株式会社

次を検索 … Ctrl + K
前を検索 … Ctrl + Shift + K

キー割り当て

[Window] - [Preferences] - [General] - [Keys]