最終更新: twoflat1017 2015年04月20日(月) 22:12:45履歴
目次
- ここからEclipse Kepler 64bit版をダウンロード
- 適当なパスにダウンロードしたEclipseを展開
- 展開後Eclipse起動
- メニュー→Help→Eclipse Marketplaceを選択
- Find右のテキストボックスにtextを入力しEnterキーを押す
- 検索結果が表示され、その一番上にXtextがあるはずなので、Installボタンを押す
- インストール途中で、Security Warningがでた。Detailsボタンで表示される文字列を含めたメッセージは以下のとおり。が、構わずOKを押す。
Warning: You are installing software that contains unsigned content. The authenticity or validity of this software cannot be established. Do you want to continue with the installation? X:\eclipse-kepler\plugins\de.itemis.xtext.antlr_2.0.0.v201108011202.jar X:\eclipse-kepler\plugins\org.antlr.generator_3.2.0.v201108011202.jar
- Windows7からネットワークアクセス許可が出たのでそのままOKを押す
- Eclipseから再起動するかと尋ねられるのでRestartを選択する
本家サイトの5分チュートリアルを参考にやってみる。
- Menu -> File -> New -> Projectを選択
- Xtext -> Xtext Projectを選択
- Nextボタンを押す
- New Xtext ProjectではデフォルトのままFinishを押す
- あとでそれなりに作れるようになってきたらもっとオリジナリティあふれる名前をつけることにする
- Problemsに5個のワーニングが出た。が、無視して続けてOK
Build path specifies execution environment J2SE-1.5. There are no JREs installed in the workspace that are strictly compatible with this environment. Build path specifies execution environment J2SE-1.5. There are no JREs installed in the workspace that are strictly compatible with this environment. Build path specifies execution environment J2SE-1.5. There are no JREs installed in the workspace that are strictly compatible with this environment. The file "plugin.xml" does not exist in the workspace The file "plugin.xml" does not exist in the workspace
- grammar editor*1で右クリック→Run As→Generate Xtext Artifactsを選択。コンソールに以下のメッセージが表示された。MyDsl.xtextと同列にあるGenerateMyDsl.mwe2で右クリック→Run As→MWE2 Workflowを選択しても同じ結果になるようだ。
0 [main] INFO lipse.emf.mwe.utils.StandaloneSetup - Registering platform uri 'X:\My Projects\eclipse_kepler_workspace' 64 [main] INFO lipse.emf.mwe.utils.StandaloneSetup - Adding generated EPackage 'org.eclipse.xtext.xbase.XbasePackage' 237 [main] INFO clipse.emf.mwe.utils.GenModelHelper - Registered GenModel 'http://www.eclipse.org/Xtext/Xbase/XAnnotations' from 'platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel' 240 [main] INFO clipse.emf.mwe.utils.GenModelHelper - Registered GenModel 'http://www.eclipse.org/xtext/xbase/Xtype' from 'platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel' 254 [main] INFO clipse.emf.mwe.utils.GenModelHelper - Registered GenModel 'http://www.eclipse.org/xtext/xbase/Xbase' from 'platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel' 254 [main] INFO clipse.emf.mwe.utils.GenModelHelper - Registered GenModel 'http://www.eclipse.org/xtext/common/JavaVMTypes' from 'platform:/resource/org.eclipse.xtext.common.types/model/JavaVMTypes.genmodel' 591 [main] INFO ipse.emf.mwe.utils.DirectoryCleaner - Cleaning X:\My Projects\eclipse_kepler_workspace\org.xtext.example.mydsl\..\org.xtext.example.mydsl\src-gen 592 [main] INFO ipse.emf.mwe.utils.DirectoryCleaner - Cleaning X:\My Projects\eclipse_kepler_workspace\org.xtext.example.mydsl\..\org.xtext.example.mydsl.ui\src-gen 592 [main] INFO ipse.emf.mwe.utils.DirectoryCleaner - Cleaning X:\My Projects\eclipse_kepler_workspace\org.xtext.example.mydsl\..\org.xtext.example.mydsl.tests\src-gen 715 [main] INFO ipse.xtext.generator.LanguageConfig - generating infrastructure for org.xtext.example.mydsl.MyDsl with fragments : ImplicitRuntimeFragment, ImplicitUiFragment, GrammarAccessFragment, EcoreGeneratorFragment, SerializerFragment, ResourceFactoryFragment, XtextAntlrGeneratorFragment, ValidatorFragment, ImportNamespacesScopingFragment, QualifiedNamesFragment, BuilderIntegrationFragment, GeneratorFragment, FormatterFragment, LabelProviderFragment, OutlineTreeProviderFragment, QuickOutlineFragment, QuickfixProviderFragment, ContentAssistFragment, XtextAntlrUiGeneratorFragment, Junit4Fragment, RefactorElementNameFragment, TypesGeneratorFragment, XbaseGeneratorFragment, CodetemplatesGeneratorFragment, CompareFragment 1832 [main] INFO clipse.emf.mwe.utils.GenModelHelper - Registered GenModel 'http://www.xtext.org/example/mydsl/MyDsl' from 'platform:/resource/org.xtext.example.mydsl/src-gen/org/xtext/example/mydsl/MyDsl.genmodel' 3785 [main] INFO text.generator.junit.Junit4Fragment - generating Junit4 Test support classes 3807 [main] INFO text.generator.junit.Junit4Fragment - generating Compare Framework infrastructure 4029 [main] INFO .emf.mwe2.runtime.workflow.Workflow - Done.
- 生成されたArtifactsはPackage Explorerに現れる*2。現れたものは以下のとおり
org.xtext.example.mydsl.formatting org.xtext.example.mydsl.generator org.xtext.example.mydsl.scoping org.xtext.example.mydsl.validation
- Package Explorerのorg.xtext.example.mydslを選択し、Menu -> Run -> Run As -> Eclipse Applicationを選択*3
- 新しく起動したEclipseで、File -> New -> Project...を選択
- Java Projectを選択し、Nextボタンをクリック
- Project nameにはSampleを入力し、Finishをクリック
- File -> New -> Fileをクリックし、フォルダパスはSample/srcを選択、File nameにSample.mydslを入力し、Finishをクリック
- Do you want to add the Xtext nature to the project Sample?なるメッセージが表示されるので、Yesをクリック
- Sample.mydslタブのエディタ領域で、Heまでタイプし、Ctrl+SpaceでHelloと補完されるのを確認する
- 次いでWorld!までタイプし、警告が出なくなることを確認する
- ウィンドウの×ボタンを押して新たに起動したEclipseを終了する
本家サイトの15分チュートリアルを参考にやってみる。
- File -> New -> Project... -> Xtext -> Xtext projectをクリック
- チュートリアルの例と同じproject name, name, extentionsを入力し、Finishをクリック。入力内容は以下
Main project name: org.example.domainmodel Language name: org.example.domainmodel.Domainmodel DSL-File extension: dmodel
- PackageExplorerび現れたプロジェクトは以下のとおりであることを確認する
org.xtext.example.mydsl.sdk org.xtext.example.mydsl org.xtext.example.mydsl.tests org.xtext.example.mydsl.ui
- Domainmodel.xtextタブにてModel...以下の行を以下のテキストで置換
Domainmodel : (elements += Type)* ; Type: DataType | Entity ; DataType: 'datatype' name = ID ; Entity: 'entity' name = ID ('extends' superType = [Entity])? '{' (features += Feature)* '}' ; Feature: (many ?= 'many')? name = ID ':' type = [Type] ;
- 上記追記内容の1つにカーソルを合わせ、F3キーを押して定義位置にジャンプすることを確認する
- ここではIDで試してみると、Terminals.xtextタブが開く*4ことを確認する。確認できたらタブを閉じていい
- 生成物を作る
- Package Explorerからorg.example.domainmodel -> src -> org.example.domainmodel -> GenerateDomainmode.mwe2で右クリック
- Run As -> MWE2 Workflowを選択。Consoleに出てきたメッセージは以下
0 [main] INFO lipse.emf.mwe.utils.StandaloneSetup - Registering platform uri 'X:\My Projects\eclipse_kepler_workspace' 67 [main] INFO lipse.emf.mwe.utils.StandaloneSetup - Adding generated EPackage 'org.eclipse.xtext.xbase.XbasePackage' 299 [main] INFO clipse.emf.mwe.utils.GenModelHelper - Registered GenModel 'http://www.eclipse.org/Xtext/Xbase/XAnnotations' from 'platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel' 302 [main] INFO clipse.emf.mwe.utils.GenModelHelper - Registered GenModel 'http://www.eclipse.org/xtext/xbase/Xtype' from 'platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel' 316 [main] INFO clipse.emf.mwe.utils.GenModelHelper - Registered GenModel 'http://www.eclipse.org/xtext/xbase/Xbase' from 'platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel' 316 [main] INFO clipse.emf.mwe.utils.GenModelHelper - Registered GenModel 'http://www.eclipse.org/xtext/common/JavaVMTypes' from 'platform:/resource/org.eclipse.xtext.common.types/model/JavaVMTypes.genmodel' 743 [main] INFO ipse.emf.mwe.utils.DirectoryCleaner - Cleaning X:\My Projects\eclipse_kepler_workspace\org.example.domainmodel\..\org.example.domainmodel\src-gen 743 [main] INFO ipse.emf.mwe.utils.DirectoryCleaner - Cleaning X:\My Projects\eclipse_kepler_workspace\org.example.domainmodel\..\org.example.domainmodel.ui\src-gen 744 [main] INFO ipse.emf.mwe.utils.DirectoryCleaner - Cleaning X:\My Projects\eclipse_kepler_workspace\org.example.domainmodel\..\org.example.domainmodel.tests\src-gen 886 [main] INFO ipse.xtext.generator.LanguageConfig - generating infrastructure for org.example.domainmodel.Domainmodel with fragments : ImplicitRuntimeFragment, ImplicitUiFragment, GrammarAccessFragment, EcoreGeneratorFragment, SerializerFragment, ResourceFactoryFragment, XtextAntlrGeneratorFragment, ValidatorFragment, ImportNamespacesScopingFragment, QualifiedNamesFragment, BuilderIntegrationFragment, GeneratorFragment, FormatterFragment, LabelProviderFragment, OutlineTreeProviderFragment, QuickOutlineFragment, QuickfixProviderFragment, ContentAssistFragment, XtextAntlrUiGeneratorFragment, Junit4Fragment, RefactorElementNameFragment, TypesGeneratorFragment, XbaseGeneratorFragment, CodetemplatesGeneratorFragment, CompareFragment 2225 [main] INFO clipse.emf.mwe.utils.GenModelHelper - Registered GenModel 'http://www.example.org/domainmodel/Domainmodel' from 'platform:/resource/org.example.domainmodel/src-gen/org/example/domainmodel/Domainmodel.genmodel' 4707 [main] INFO text.generator.junit.Junit4Fragment - generating Junit4 Test support classes 4726 [main] INFO text.generator.junit.Junit4Fragment - generating Compare Framework infrastructure 4926 [main] INFO .emf.mwe2.runtime.workflow.Workflow - Done.
- 生成した成果物を起動するため、Package Explorerでorg.example.domainmodelを選択し、メニュー -> Run -> Run As -> Eclipse Applicationを選択
- 新たに起動したEclipseでFile -> New -> Project...を選択
- Java Projectを選択し、Nextボタンをクリック
- Project nameにはSampleを入力し、Finishをクリック
- File -> New -> Fileをクリックし、フォルダパスはSample/srcを選択、File nameにmymodel.dmodelを入力し、Finishをクリック
- Do you want to add the Xtext nature to the project Sample?なるメッセージが表示されるので、Yesをクリック
- チュートリアルの画面を真似て、mymodel.dmodelタブにて以下のコードを入力し、最終的に警告やエラーが出ないことを確認する。途中Ctrl+Spaceなどで候補を出したり、打ち間違えて警告を出すなどを確認するとなお良い
datatype String entity Blog { title: String many posts: Post } entity HasAuthor{ author: String } entity Post extends HasAuthor{ title:String content:String many comments:Comment } entity Comment extends HasAuthor{ content: String }
- 新たに起動したEclipseを終了し、元のEclipseに戻る
- チュートリアルに従い、Domainmodel.xtextタブにてDomainmodel:の行以下を以下のように変更する
Domainmodel: (elements += AbstractElement)* ; PackageDeclaration: 'package' name = QualifiedName '{' (elements += AbstractElement)* '}' ; AbstractElement: PackageDeclaration | Type | Import ; QualifiedName: ID ('.' ID)* ; Import: 'import' importedNamespace = QualifiedNameWithWildcard ; QualifiedNameWithWildcard: QualifiedName '.*'? ; Type: DataType | Entity ; DataType: 'datatype' name=ID ; Entity: 'entity' name = ID ('extends' superType = [Entity | QualifiedName])? '{' (features += Feature)* '}' ; Feature: (many ?= 'many')? name = ID ':' type = [Type | QualifiedName] ;
- 再度、生成物を作る
- Package Explorerからorg.example.domainmodel -> src -> org.example.domainmodel -> GenerateDomainmode.mwe2で右クリック
- 生成した成果物を起動するため、Package Explorerでorg.example.domainmodelを選択し、メニュー -> Run -> Run As -> Eclipse Applicationを選択
- チュートリアルにならって、以下のファイルを作成する
datatypes.dmodel commons.dmodel blogs.dmodel
- datatypes.dmodelタブにて以下の内容を入力する
datatype String
- commons.dmodelタブにて以下の内容を入力する
package my.company.common { entity HasAuthor { author: String } }
- blogs.dmodelタブにて以下の内容を入力する
package my.company.blog { import my.company.common.* entity Blog { title: String many posts: Post } entity Post extends my.company.common.HasAuthor { title: String content: String many comments: Comment } entity Comment extends HasAuthor { content: String } }
- Outlineタブでクリックするなどして定義したものの階層関係をツリー形式で確認する
本家サイトの15分チュートリアル 延長を参考にやってみる。
- Eclipseを起動し、15分チュートリアルで作ったプロジェクトを開く(デフォルトで開いているかも)
- Package Explorerからorg.example.domainmodel -> src -> org.example.domainmodel.generatorと辿り、DomainmodelGenerator.xtendをダブルクリック
- エディタウィンドウにDomainmodelGenerator.xtendが開いたことを確認する。コメントを含む初期内容は以下のとおり
/* * generated by Xtext */ package org.example.domainmodel.generator import org.eclipse.emf.ecore.resource.Resource import org.eclipse.xtext.generator.IGenerator import org.eclipse.xtext.generator.IFileSystemAccess /** * Generates code from your model files on save. * * see http://www.eclipse.org/Xtext/documentation.html#TutorialCodeGeneration */ class DomainmodelGenerator implements IGenerator { override void doGenerate(Resource resource, IFileSystemAccess fsa) { // fsa.generateFile('greetings.txt', 'People to greet: ' + // resource.allContents // .filter(typeof(Greeting)) // .map[name] // .join(', ')) } }
- これをチュートリアルにあるコードで置き換える。サンプルを示していないのは>を2つ重ねた記号を入力すると&**と表示され、意図通りの結果になっていないため
- Run As -> Eclipse Applicationをクリック
- 新しく起動したEclipseでProject -> Clean...を選択し、現れたダイアログでOKを押す*5
- Package ExplorerのSampleの直下にsrc-genフォルダが生成されたこと、および、生成されたソースコードを開いて意図通りのソースコードが生成されたことを確認する。
- 新しく起動したEclipseを終了する
Unit Testing the Language*6
冒頭に、
自動テストはソフトウェア製品の品質と保守性のために重要です。だからこそ、あまりにもあなたの言語用の単体テストを記述する強くお勧めします。Xtext プロジェクト ウィザードは、その目的のため、テスト プロジェクトを作成します。Junit4 の Eclipse 不可知論者テストと UI テストの両方のセットアップ手順を簡素化します。とある*7。
- choose the src folder of the test plugin, and select New -> Xtend Class from the context menu.とあるが、Pachage Explorer -> org.example.domainmodel.testsで右クリックして、Xtendクラス作成に入る
- Name欄は例にならってPerserTest、Package欄はデフォルト文字列を削除し空欄に、Source folder欄はそのままで、Finishを押す
- 例には2つのソースが掲示されているものの、いずれも断片的にしか書かれていない。が、それらを寄せ集め、Eclipseが出すQuickFix?機能でエラーを適当にとったものが以下のコードになる
import org.eclipse.xtext.junit4.XtextRunner import org.example.domainmodel.DomainmodelInjectorProvider import org.eclipse.xtext.junit4.InjectWith import org.junit.runner.RunWith import org.eclipse.xtext.junit4.util.ParseHelper import static org.junit.Assert.* import org.junit.Test import javax.inject.Inject import org.example.domainmodel.domainmodel.Domainmodel import org.example.domainmodel.domainmodel.Entity @InjectWith(DomainmodelInjectorProvider) @RunWith(XtextRunner) class ParserTest { @Inject ParseHelper<Domainmodel> parser @Test def void parseDomainmodel() { val model = parser.parse( "entity MyEntity { parent: MyEntity }") val entity = model.elements.head as Entity assertSame(entity, entity.features.head.type) } }
- Package Explorer -> org.example.domainmode.tests -> src -> ParserTest.xtendで右クリックし、Run as -> Run Configurations ...を選択
- 初めての場合は、Run Configurations ...しかコンテクストメニューに出てこないが、1回実行した以降は、コンテクストメニューにJUnitTestなどが現れるようになる
- JUnit -> org.example.domainmodel.testsを選択し、Runボタンを押す
- テストが実行され、結果が表示されるので確認する。Runs:1/1などと表示されている。成功したっぽいが、サンプル通りにやってみただけで、成功したのかそうでないのか区別がついていないが…。テストなのでparseに渡している文字列を変えてみると結果が変わるかも
→テストケースを書くのにXtendクラスを活用する、と記事にあるが、そもそも、なぜXtendクラスを指定したのか理由が分からない。Xtendクラスだとテストケースが書きやすいというのだろうか?
→テストコードで、parseに渡している文字列は今回定義しているDSLのフォーマットに則っているが、これをテストするとどういうことが検証できるのか。そこまで理解できていない
→おまじない的に使っているアノテーションもある
→テストコードで、parseに渡している文字列は今回定義しているDSLのフォーマットに則っているが、これをテストするとどういうことが検証できるのか。そこまで理解できていない
→おまじない的に使っているアノテーションもある
アプリケーションの実行形態の目標は、Windows上で動作するアプリケーション、である。テキスト型DSL開発フレームワーク Xtext 入門のPDFを読んでいて、RCPを活用するのがもっとも手っ取り早いのではないかと思い、ネットの記事などを参考に検討してみることにした。
まずは本命と目されるSetting up a RCP product for a Xtext DSLから試してみる。元記事が作成されてからだいぶ経っているため、現在確認のために使用しているEclipse Keplerにおいて
、RCPで使用すべきプラグインがかなり異なっていると思われる。元記事でリストアップされているプラグインでを参考に、Keplerでの置き換えを検討中である。
→ダメだ。起動時にエラーになる。見よう見まねではKeplerにあった設定になっていないようだ。RCPを学んでから戻ってこよう
RCPの覚書
- Setting up a RCP product for a Xtext DSL
- Xtextで作ったテキストエディタをRCPにしている記事。書いてある手順通りにやるだけで良さそうである
- Eclipse RCP
- そもそもRCPって何のこと??と調べて出てきた良さそうな記事
まずは本命と目されるSetting up a RCP product for a Xtext DSLから試してみる。元記事が作成されてからだいぶ経っているため、現在確認のために使用しているEclipse Keplerにおいて
、RCPで使用すべきプラグインがかなり異なっていると思われる。元記事でリストアップされているプラグインでを参考に、Keplerでの置き換えを検討中である。
- com.google.collectに代わり、com.google.guavaをAddしてみることにした
- Bug 371396 - should com.google.collect be removed from active builds?
- この記事自体の作成日が比較的新しく、タイトルからして削除された?とあり、参考になりそうである。
- 少し読み込んだところにあった、別の記事をたどると、ライブラリの名前がguavaにリネームされたという記述を発見した
- org.antlr.gnに代わり、org.antlr.generatorをAddしてみることにした。省略形がそうでなくなっただけなので間違いないだろう
- org.aopallianceに代わるものが見つからない
- org.eclipse.xsdも見当たらない
- XMLスキーマのことだと思うが、それが何に変わったのか
→ダメだ。起動時にエラーになる。見よう見まねではKeplerにあった設定になっていないようだ。RCPを学んでから戻ってこよう
RCPの覚書
(以下の作業は、上記ワーニングを取ろうと思って実施したことだがワーニングを解消しなくてもアプリケーションが起動することは確認できたので、メモとして扱う)
- Package Explorerにある、org.xtext.example.mydsl, tests, uiのそれぞれで以下を実施
- 右クリック→Build Path→Configure Build Pathを選択
- Java Build Path で、Libraries タブを選択
- JRE System Library[J2SE-1.5] を選択し、Edit ボタンをクリック
- JRE System Library の System library で、Workspace default JRE を選択し、Finish ボタンをクリック
- Java Build Path に戻って、OK ボタンをクリック*8
- Problemsウィンドウで以下を実施
- The file "plugin.xml" does not exist in the workspaceダブルクリックし、問題箇所を表示
- plugin.xmlを含む行を削除
- 新たにProblemsに2個のワーニングが出た
The JRE container on the classpath is not a perfect match to the 'J2SE-1.5' execution environment MANIFEST.MF /org.xtext.example.mydsl.tests/META-INF line 21 Plug-in Problem The JRE container on the classpath is not a perfect match to the 'J2SE-1.5' execution environment MANIFEST.MF /org.xtext.example.mydsl.ui/META-INF line 13 Plug-in Problem
- JRE1.5の環境構築
- OracleのページからJRE1.5をダウンロードし、インストール*9*10
- Eclipse の Menu -> Windows -> Preferenceを選択
- Java -> Installed JREsからADDをクリック
- Standard VMを選択しNextをクリック
- Directoryボタンを押し、先ほどインストールしたJREのフォルダを選択する
- JRE Nameが自動入力されたことを確認したら、Finishをクリック
- ワーニング消し実行*11*12。以下を作業をすべてのワーニングで実行する
- Problemsでダブルクリックし問題の箇所にジャンプする
- MANIFEST.MFの内部?タブが表示されるので、Overviewタブを選択する
- Execution EnvironmentsでRemoveボタンでリストにある既存のものを削除する
- Addボタンを押し、現れたウィンドウでJ2SE-1.5を選択し、OKを押す
java.lang.UnsatisfiedLinkError: Cannot load 64-bit SWT libraries on 32-bit JVM→日を改めて実施。Run -> Run ConfigurationsでDefault JREをjre7としたところ、エラーなく動いた。設定を変えたら必ずOKを押してダイアログを閉じてなど踏まないとならない手順があるのかも。
Eclipseからアプリ起動時にConsoleに出てきたメッセージ。gitが関係しているみたいだがまだアクションは取っていない。内容を確認して対応するのでメモとしてとっておく
!SESSION 2013-07-15 21:49:50.614 ----------------------------------------------- eclipse.buildId=4.3.0.I20130605-2000 java.version=1.7.0_02 java.vendor=Oracle Corporation BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=ja_JP Framework arguments: -product org.eclipse.platform.ide Command-line arguments: -product org.eclipse.platform.ide -data X:\My Projects\eclipse_kepler_workspace/../runtime-New_configuration(2) -dev file:X:/My Projects/eclipse_kepler_workspace/.metadata/.plugins/org.eclipse.pde.core/New_configuration (2)/dev.properties -os win32 -ws win32 -arch x86_64 -consoleLog !ENTRY org.eclipse.egit.ui 2 0 2013-07-15 21:50:13.241 !MESSAGE Warning: EGit couldn't detect the installation path "gitPrefix" of native Git. Hence EGit can't respect system level Git settings which might be configured in ${gitPrefix}/etc/gitconfig under the native Git installation directory. The most important of these settings is core.autocrlf. Git for Windows by default sets this parameter to true in this system level configuration. The Git installation location can be configured on the Team > Git > Configuration preference page's 'System Settings' tab. This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. !ENTRY org.eclipse.egit.ui 2 0 2013-07-15 21:50:13.243 !MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git user global configuration and to define the default location to store repositories: 'C:\Users\Hironobu'. If this is not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and EGit might behave differently since they see different configuration options. This warning can be switched off on the Team > Git > Confirmations and Warnings preference page.
- Xtext Users Japan
- 信州ソフトウェアサポーターズグループのXtextのページ
- Xtextのドキュメンテーションのページ
- TIPS Eclipse のワーニング
- Xtext紹介
- スライドショー形式での紹介。中に出てくるEcoreなるものが気になる
コメントをかく