Upsource 2019.1の新機能

CnsBLnca

Upsource 2019.1がリリースされました! 多数の機能を追加して、パフォーマンスが向上させ、コードレビュープロセスを円滑にできるようにしました。 またこれは、IntelliJ IDEA 2019.1とHub 2018.4にもバンドルされており、Mercurial 4.9以降を実行しているサーバーをサポートします。

詳細については、リリースのハイライトをお読みください。サムライズム様による新機能ページの翻訳はこちらよりご覧頂けます。

新しいタイプのレビュー:レビューのマージ(Merge reviews)

Upsource 2019.1では、新しいタイプのレビューを追加しました。 レビューのマージ(Merge reviews)を使用すると、選択したブランチにマージされる変更を確認し、マージ前に競合を見つけられます。

レビュー_マージ

レビューラベルを自動的に管理

レビューが作成され、リビジョンがレビューに追加されると、新しいカスタムワークフローがレビューラベルの追加と削除を行います。

レビュー_ラベル_マージ

レビューの説明

変更内容およびレビューの目的に関する追加情報を、専用のレビュー説明セクションに入力できるようになりました。

レビュー_説明

プロジェクトのアーカイブ機能

プロジェクトがアーカイブされると、Upsourceは変更に対するVCSリポジトリのポーリングを停止し、レビューの作成を無効にします。 レガシープロジェクトをアーカイブ済みとしてマークすることで、それらを表示する人にそのステータスを伝えて、大規模な構成においてパフォーマンスを改善できます。

アーカイブ_プロジェクト

ディスカッションでグループをメンション

コードディスカッションについて全員の意見を求める必要がある場合があることを考慮し、グループ全体の注意を引くための機能を追加しました。

メンション

作業日を使用してレビュー期限を指定

レビュー期限を設定するときに週末が考慮されるようになりました。

レビュー_期限

リアクション用のWebフック

コメントリアクションの追加や削除用に利用できるWebフックを作りました。

Webフック

当社の課題トラッカーで変更の完全なリストをご確認ください。

Upsource 2019.1を体験するには、当社のウェブサイトからビルドをダウンロードしてください。ただし、現在のインスタンスのバックアップを忘れないようにご注意ください!

Posted in Upsource | Leave a comment

JetBrainsテクニカルサポートの利用方法

こんにちはJetBrains堀岡です。

JetBrains製品を使っていて問題に遭遇した時に、

  • ググってみたけど解決方法が見つからず
  • Twitterで誰となく助けを求めてる

みたいにお困りの方、時折お見かけします。
techsupport1

以前、「最近始めた人、これから始めたい人向けJetBrains製品関連の情報源」で説明したことはありますが、まだまだJetBrainsのテクニカルサポート窓口が存在することを認知されていないのかなと思っていたところ、ちょうど良いタイミングでPhpStormのRoman PronskiyからPhpStorm and YouTrack: We Want Your Feedback」というJetBrainsのサポートの利用方法に関するブログポスト(英語)がありました。本記事は、こちらの内容を一部抜粋、加筆したものになります。

ちなみに現在(2019年7月時点)でJetBrainsにおける日本のお客様へのサポート体制としては

となっております。もし、日本語でテクニカルサポートを受けたい場合は、サムライズム様からのサポート付きプランの購入をご検討ください。それ以外の方は、こちらで解説する方法を参考にJetBrains製品のテクニカルサポートをご利用いただければと思います。

JetBrains IDEからテクニカルサポートへの連絡方法

今回の記事では(PhpStormやIntelliJ IDEA等の)IDE画面上からJetBrainsのテクニカルサポートに連絡する方法を解説します。以下の画面例のようにIDE上ではHelpメニューからテクニカルサポートへの連絡が可能です。


(IDEから)テクニカルサポートへの問い合わせの種類には以下の3種類があります。それぞれの用途は以下のとおりです。

  • Contact Support… – サポートチケットを起票するためのウェブフォームを開きます。製品の使用法や、バグかどうかわからない場合の問い合わせ等にこちらをご使用ください。
  • Submit a Bug Report… – 明らかにバグを思われる場合や、Feature Request(機能拡張要求)に利用します。YouTrackと呼ばれる課題管理システム上にIssueを作成します。初めて利用する場合はSign up(アカウント登録)が必要です。
  • Submit Feedback… – 上記以外の場合に利用します。

もちろん、IDE上からではなくJetBrainsのウェブサイトから直接テクニカルサポートに連絡することも可能です。詳細は「最近始めた人、これから始めたい人向けJetBrains製品関連の情報源」を御覧ください。

 YouTrackを初めて利用する方へ

ここではSubmit a Bug Report…(バグレポートや機能拡張要求)で利用するJetBrains製の課題管理システムYouTrackについてもう少し詳しく見ていきます。既にJiraやRedmine、Backlog等をお使いの方は、似た感じだと思いますので、特に難しい内容ではないでしょう。

 Issue(課題)画面の説明

ここでは過去にPhpStormに報告された問題・課題(以下Issue) https://youtrack.jetbrains.com/issue/WI-46383 の画面を例に、皆さんが参照すべき箇所を紹介します。PhpStorm独自の例も含まれるかもしれませんが、他のIDE向けプロジェクトでも基本同じかと思います。

YT

代表的なフィールドの説明

  • Project – Issueの報告対象となる製品やコンポーネントを表します。報告されたIssueにはProject毎のPrefixが付きます。PhpStormの場合「WI-」が付きます(理由はもともと「WebIDE」だったからだそうです)。一点注意としては、PhpStormはIntelliJ プラットフォームやWebStorm等の複数の機能の組み合わせで構成されています。そのため、Issueの内容・原因によっては、報告いただいたProjectとは別のProjectに割り当てられることがあります。
  • Fix versions – Issueの修正が提供されるバージョン。最新のメジャーリリース(2019.1.3 )と1つまえのメジャーリリース(2018.3.6)のように、複数のバージョンが指定されることがあります。
  • Affected versions – Issueの発生が確認または報告されたバージョン
  • Vote(いいね)ボタン– Vote(いいね)ボタンをクリックすると2つのことが実現されます。1つはJetBrainsがIssueの優先順位を知るために役立ちます。もう1つはIssueの更新があると通知されるようになります。JetBrainsのチームはIssueの優先順位を評価する際、1)vote数、2)内部的な調査結果 3) Issueの複雑度とIssue解決によるメリットの大きさ  等を考慮するため、vote数の多いものが必ずしも実現されるとは限りません。しかしながら、voteはユーザーの要望を知る上で非常に重要な要素ですので、同じようなIssueで困っている場合や同じような機能拡張を希望する場合、ぜひご活用ください。

問い合わせまたはIssueを起票する時に提供すべき情報

効率的なコミュニケーションのためには、問題に関する十分な情報の提供が必要不可欠です。理由は、多くの場合、問題を正しく理解し、再現出来ないと適切なアドバイスや問題解決・ワークアラウンドの提供ができないためです。YouTrackでIssueを起票する際は、可能な限り以下のガイドライン従い情報提供をお願いします。

1. テンプレートがある場合はそれに従い、無い場合は、Expected behavior(期待される動作)/Actual Behavior(実際の動作)により、問題の内容を記述する

2. 状況の理解に役立つスクリーンショットや動画を添付する

3. ご利用のIDEのバージョン、OSの種類とバージョン、プログラミング言語やライブラリ、フレームワーク等の問題の関連しそうな開発環境に関連する情報を提供する(IDE経由の場合一部自動で生成される)。クラッシュや起動しない等の問題の場合、IDEから出力されるログ(idea.log)を提供する。

  • Tip1: メニューのHelp | Compress Logs and Show in …. を選ぶとバージョン等の情報やIDEから出力されるlogファイルをzipにまとめてくれます。
  • Tip2: IDEが出力するidea.log を見ると(特にJavaプログラマの方は)問題の原因がわかることがあります

4. 特定のコードで問題が発生する場合は(画像ではなく)テキスト形式で。そのままコンパイルや実行ができればなお良い。

Issueの状態(State)の種類とその意味

報告されたIssueの状態とその一覧は以下のとおりです。例えば、(なんらかの理由で解決案が提供されることなく)Close済みのIssueについて進展を待っていても意味がありません。したがってIssueがどのような状態をとりうるのか、その意味を知ることは重要です。以下がIssueの代表的な状態一覧です。

  • Submitted – 新規作成されたIssueの初期状態です。システム上報告を受け付けているがまだ誰も確認していないということです。この状態のIssueに対してはJetBrainsのQAまたはサポートチームが報告内容を確認し、追加で必要となる情報はないか、既知の問題ではないか等を確認し、別の状態に変更します。
  •  Open – サポートチームが報告された内容がIssueとして適切である(報告内容が十分かつ明確で、再現可能)であると確認できた状態を表します。
  • To be discussed – 頂いたリクエストの内容がクリアではないか、要望の場合、内容が妥当であるかコミュニティから意見を求めたりして議論が必要な状態を表します。例えば、よく利用されているOSSコードや現場で使われているコード例等を追加情報として頂くと、話が進展しやすくなるかもしれません。
  • Declined – 残念ながら頂いたリクエストは現時点では受け付けられないという状態です。しかしながら、将来的には対応する可能性もゼロではありませんので、リクエスト自体は全く無駄という理由ではありません。
  • Wait for reply – お客様からの追加情報(ログ、バージョン情報、再現ステップ、スクリーンショット等)の提供を待っているという状態です。
  • In Progress – 開発者がリクエストの対応のため作業中である状態です。
  • Backlog – 頂いたリクエスト自体は妥当ではあるが、全体的な優先順位を鑑みると現時点では作業対象ではないという状態を表します。優先順位が上がるべき追加情報等あれば歓迎いたします。

Duplicates(既知の問題)

ご報告いただいたIssueが「duplicate(重複したIssue/既知の問題)」としてクローズされることがあります。実際のところ我々の統計では大体60%-70%のIssueがduplicateです。そう言ってしまうとIssueを報告するのをためらってしまう方がいるかもしれませんが、気にしていただく必要はありません。我々は皆様からのレポートは重要で価値のあるものであると理解しています。もしかして、報告いただいた問題は、一見既知の問題と似ているが、実は異なる条件を含む可能性あり、我々にとって問題解決のための重要な情報を含む可能性を含んでいます。加えて、製品に修正が提供された時にQAエンジニアduplicateなIssueについても解決されているか確認します。その際、解決されないケースがある場合はそれば別のIssueとして扱われるようになります。

ただし、新しいIssueを起票する際、Similar Issues 欄にピックアップされた問題を確認してみてください。あなたがこれから報告しようと思っていた問題と同一の問題が既に報告されているかもしれません(特に英語が苦手な方は、同じ内容を無駄に書いてしまうという自体を避けられます)。

similar_issues

もし、それが同じ問題であると確信がある場合は、新しいIssueを作る代わりに既存のIssueにコメントや追加情報を提供いただけると助かります。

Tip: 優先順位を上げたいと思った場合、コメント欄に “+1”と書くのではなくvoteしてください。 voting_140

同じ問題かどうか判断頂く際に、一点注意してもらいたいケースがあります。それはパフォーマンスに関する問題です。 パフォーマンスに関する問題は 新しいIssueを上げていただくことを推奨します。 理由は、PhpStormの内部やプロファイラスナップショットから判断しないと、本当に同じ問題かどうか厳密に判断できないためです。

おわりに

既にJetBrains製品を長くお使いのお客様は「大体知ってた」という感じかもしれませんが、最近使い始めた方や、これまでテクニカルサポートを全く利用してこなかった方に対しては参考になっていれば幸いです。
実際のところ、マイナー(だと思われる)BugやFeature Request「Issue起票したけど、対応が進まない」というケースもあると思いますが、それらのIssueは継続的なディスカッションやVotesを通して優先順位が上がり、実現されるというケースも少なくありません。お困りの際はぜひテクニカルサポートを利用いただき、フィードバックをいただければと思います。

おまけ

少し古い内容ですが、JetBrainsの課題管理システムYouTrackのプロモーション動画が(JetBrainsらしくキーボード操作中心な感じが)ちょっと面白いのでお時間のある時に御覧ください。

Posted in YouTrack, お知らせ | Leave a comment

JetBrains Marketplaceのサードパーティ製商用プラグインを使ってJetBrains製ツールをより便利に

現在JetBrainsプラグインリポジトリでは、必要に応じてJetBrains製品の機能を拡張するための、4,000件以上の様々なサードパーティ製プラグインを提供しています。そこには、IntelliJベースのIDE、TeamCity、.NETツールなどを含む、ほぼすべてのJetBrainsツール向けのプラグインが存在し、それらプラグインは、追加言語や新技術のサポート、クラウド統合、テーマ、ショートカットの学習、Nyan Catのプログレスバーに至るまで様々な機能を提供します。

今回はプラグインリポジトリを新たに進化させた、新しいJetBrains Marketplaceプラットフォームを紹介します。 新しいプラットフォームでは、サードパーティのプラグイン開発者がJetBrainsが提供するソリューションを使って自社のプラグインの販売およびライセンス付与を行えるようになります。 このプラットフォームを追加することで、より多くの開発者がプラグイン自体の開発により多くの作業時間を費やせるようになるでしょう。なぜなら、得られる対価に見合わないのに、資金や時間を大量に費やすのは困難な場合があるからです。

JetBrains Marketplaceにより、サードパーティのプラグイン開発者はもう独自のライセンス付与ソリューションに時間をかけたり、自分たちで営業ワークフローを作ったりする必要はなくなります。 一方で、プラグインのユーザーは、楽しく開発を進められる高品質で機能満載のプラグインがさらに手に入ることになります。

blog_less_text

現在入手可能なプラグインがどこかに消えることはありません。 ただ、近年、企業や個人開発者が、IntelliJプラットフォームやその他のJetBrains製ツール上で動作する(商用のものを含む)独自の開発者生産性向上ツールを開発し、提供する機会が増えてきています。私たちは、JetBrains Marketplaceによりプラグイン開発者が独自のライセンス管理ソリューションの実装や配信チャネルの構築に時間をかけることなく、プラグインの開発に集中できるようにしたいと考えています。 そこで、JetBrains Marketplaceのソリューションの一部として、すぐに利用可能なソフトウェアライセンス付与ソリューション、課金および販売用のインフラ、そしてマーケティングと営業サポートの提供を行います。

プラグインのユーザーは以下のメリットを享受できます。

  • サードパーティ開発者の有料プラグインによる、より高品質で魅力的な追加機能の利用が可能になります。
  • JetBrainsアカウント経由で簡単にプラグインのインストール、支払い、契約、管理を行えます。なお2019年6月29日の発表時点では、プラグインの購入はJetBrainsサイトからのみ対応となります。代理店様経由での販売は将来的に対応予定となっております
  • JetBrainsアカウントを使って簡単にライセンスを管理できます。オンプレミスのライセンスサーバーを利用したサブスクリプションやライセンスの管理もできます。
  • JetBrains製品ライセンスの契約期間と合わせてプラグインのライセンス契約期間を調整できます(オプション)。
  • 各種割引(例:ボリュームディスカウント)、特別ライセンス(例:ユーザーグループ、オープンソース)、その他JetBrainsがサポートするプログラム(これらについては、現時点では利用可能ではありませんが、将来的に対応予定です)。
  • セキュリティとプライバシー保護:プラグインを購入する際にクレジットカード情報やその他任意のデータを外部機関に提供する必要はありません。

今のところ、Marketplaces上の新しいサードパーティ製プラグインはIntelliJベースのIDEで利用可能なもののみですが、他のツールまでサポート対象範囲を広げる予定です。続報をお待ちください!

現時点で入手可能なもの

JetBrains Marketplace早期アクセスプログラムには100社以上のベンダーが参加しています。 2019年6月29日より、第一弾として、JetBrains Marketplaceを通じて下記のサードパーティ製プラグインの販売とライセンス提供を開始いたしました(説明の内容はプラグイン開発者から提供されたものです):

hybris integration
by Alexander Bartash

Hybris Integrationプラグインは、HybrisプロジェクトをIntelliJ IDEAに自動インポートする機能を提供します。 このプラグインを使用すると、Hybrisの開発を行う際にIDEのすべてのメリットを活用できるようになり、さらに機能が追加されます。

Iedis 2
by CodesMagic

ledisはRedis(インメモリデータ構造ストアで、データベース、キャッシュ、メッセージブローカーとして使用されます)用の美しく、使いやすいGUIプラグインで、Redisサーバーの動作を妨げることなく数百万件のキーを処理できます。

Java Antidecompiler
by BIS Guard & Co.

Java AntidecompilerはJavaのバイトコードやリソースをデコンパイラから保護し、リバースエンジニアリングやソフトウェアの盗用を防ぎます。 難読化技術とJavaの暗号化アルゴリズム、およびBIS Guard & Co.独自の技術を組み合わせて使用します。

JetForcer | The Smartest Force.​com IDE
by JetForcer Team

JetForcerはJetBrains IDEでSalesforceを開発するための強力なプラグインで、クライアントサイド(Lightning とVisualforce をサポート)およびサーバーサイド(ApexとSOQL)開発に最適です。

JFormDesigner
by FormDev Software GmbH

JFormDesignerはJava Swingユーザーインターフェース用のプロフェッショナルなGUIデザイナーです。 MigLayout、JGoodies FormLayout、GroupLayout(Free Design)、およびGridBagLayoutに優れたサポートを提供しており、プロ並みのフォームを簡単に作成することができます。

Manifold
by Manifold Systems LLC

ManifoldはJavaに新しい命を吹き込みます。 拡張メソッド、構造的型、Javaテンプレート、型安全なリフレクションのような強力な機能を使用できます。 Javaから直接GraphQL、JSON Schema、YAML、Javascriptのような他の言語に型安全にアクセスできます。

OrchidE
by Thomas Fröscher

OrchidE はIT自動化プラットフォームであるAnsibleへのサポートを提供します。 このプラグインはIntelliJプラットフォームIntelliJプラットフォームの最新機能を提供し、Ansibleをインフラストラクチャフレームワークとして使用するDevOpsチームがそれを利用できるようにします。

RON ​(Rusty Object Notation)
by Vultix

RON (Rusty Object Notation) 言語プラグインはRustの型、コード補完、バリデーションなどのインポートをサポートします。

Wolfram Language
by Patrick Scheibe

Wolfram Languageプラグインは、IntelliJプラットフォームベースの製品をWolfram言語とMathematicaコード用の強力な開発ツールに変身させます。

ZenUML support
by ZenUML

ZenUMLプラグインは、JavaのメソッドやZenUML DSLから直接シーケンス図を生成できるようにします。 このプラグインは既存コードを解析したり、コードを書く前にプロセスをモデル化したりする際に便利です。

今後もご期待ください

近日中にさらにプラグインがリリースされる予定です。 プラグインはすべて引き続きプラグインリポジトリから入手および購入できますが、有料プラグインはJetBrains ストアでもお求めいただけます。

JetBrains Marketplaceに関するご質問がございましたら、お気軽にmarketplace@jetbrains.comまでご連絡いただくか、以下のフォームからコメントをご投稿ください。

Keep developing with pleasure!
JetBrains Marketplaceチーム

Posted in お知らせ | Leave a comment

あなたのKotlinイベント、Kotlin/Everywhereに登録しませんか?

こんにちは。JetBrains堀岡です。

2019年のGoogle I/Oや以下で発表されていますが、現在GoogleとJetBrainsは「Kotlin/Everywhere」と呼ばれる世界各地で開催されるKotlin関連のコミュニティ・イベントを開催・支援する取り組みを行っています。

Blog-Post-Grey

Kotlin/Everywhere 登録サイト(英語)

https://events.withgoogle.com/kotlin-everywhere

Kotlin Blog「Kotlin Is Everywhere! Join the Global Event Series」(英語)

https://blog.jetbrains.com/kotlin/2019/05/kotlin-is-everywhere-join-the-global-event-series/

Google Developers 「Kotlin Everywhere を開催します」(日本語)

https://developers-jp.googleblog.com/2019/06/kotlin-is-everywhere-join-global-event.html

が、本ブログを執筆時点(2019年6月12日)の日本の開催状況を見てみると、5月18日の開催済みイベントしか登録されていません😅(温泉イベントを登録・開催頂いた皆様ありがとうございます。最新状況はこちら

【2019年9月2日アップデート】8月に開催されたKotlin/Everywhere Ehimeも登録されました🎉

KEJapan

ということで、より多くの技術者コミュニティの皆様がKotlin/Everywhereの機会を活用して、イベントを企画・開催して、Kotlinをいろいろな機会でより便利にお使い頂けるよう、JetBrainsの日本語ブログでも紹介したいと思います。

Kotlin/Everywhereとは

  • Kotlinの要素技術やベストプラクティスについて学ぶ、世界各地で開催される、コミュニティ主催の技術者向けイベントの総称
  • どなたでも主催、どなたでも参加可能
    • GDG(Google Developer Group)やKUG(Kotlin User Group)、その他コミュニティ主催者がイベントをKotlin/Everywhereイベントとして登録可能
  • 主催者がKotlin/Everywhereとしてイベント登録すると、Kotlin/Everywhereウェブサイトに掲載される
  • イベントの内容・規模に応じてGoogle/JetBrainsからサポートを得られる場合がある(すべてのイベントがサポートを得られるとは限りません)。
    • サポート内容例
      • 会場費や飲食代、グッズ作成にかかる費用(イベントの詳細が決まった段階で早めにご相談ください。リクエストから回答まで2週間ほどかかる場合があります。)
      • スピーカーの派遣(イベント開催の2ヶ月以上前に要連絡)
  • サポート対象のイベントの開催期間は2019年5月15日から2019年12月1日まで
  • イベントでのセッション内容の例

主催者向けガイドではKotlin/Everywhereのセッション・トークでは例として以下の内容が紹介されています。私自身、昨年から日本のKotlinイベントに数回参加しましたが、皆様が主催・参加されたKotlin勉強会やイベントで話された内容と共通する部分が多いのではないでしょうか。

KETopics

加えて、これから新たにハンズオンセッションを企画したいと考えている場合、codelabやプレゼンテーションスライド、トレーニングコースのビデオへのリンクも主催者向けガイドに掲載されています。

KECodelab

あなたのKotlin関連イベント、Kotlin/Everywhereに登録してみませんか?

ということで、既にKotlin関連のイベントや勉強会の主催の予定がある皆様、これから12月1日までに企画したいと考えている皆様

  • 既に開催予定のイベントをKotlin/Everywhereに登録することによりVisibilityを上げたい
  • イベントを開催するにあたり、Google/JetBrainsから何らかのサポートを受けたい
  • ハンズオンイベントをリードすることにKotlin力を高めたい

場合は、ぜひKotlin/Everywhereへの登録をご検討ください。

Kotlin/Everywhere登録のための準備

これから登録を検討したいと考えている方はイベントの詳細を決定する前に

を確認しておくと、必要なアクションをスムーズに進めることができます。

イベント企画から開催までの大まかな流れ

イベントの企画から開催までの流れは以下のようになると思います。

  1.  イベントの企画・準備
    • 開催日時、イベント内容(Kotlinに関するトピック、想定レベル)、想定参加者数、会場の決定、イベント登録サイトの準備を行います。
    • 登録されるイベント名は「Kotlin/Everywhere   [コミュニティ名 or ABC company(任意)]」のように「Kotlin/Everywhere」が含まれる必要がある
  2. Kotlin/Everywhereの登録
  3. イベントの告知
  4. イベントの実施
  5. 開催後レポートの提出
    • イベント開催後1週間以内に主催者サーベイへの回答、費用の補助を受ける場合請求書の提出等を行う必要があります。

サポートが必要であればお手伝いします

イベント登録や、登録後のGoogle/JetBrains チームを英語で行わないといけないのが不安だと思っていませんか?安心してください。Kotlin/Everywhere事務局はイベントが開催される国や地域のコミュニティと連携して、皆様のイベント開催をサポートします。Kotlin/Everywhereのイベント登録等で質問やお手伝いが必要であればKotlin/Everywhereオーガナイザーグループや、私宛にTwitter等でご連絡ください。

皆様のご登録をお待ちしています。

Posted in Kotlin, お知らせ, イベント | Leave a comment

RubyMine 2019.1がリリースされました!

RubyMine 2019.1 がリリースされました!

この新しいメジャーバージョンへアップグレードすると、次のようなことを体験できます:

  • RubyMineでDockerとの作業をスピードアップ
  • Recent Locations(最近の場所)ポップアップ(Shift + Cmd + E / Shift + Ctrl + E)を使って、より素早いナビゲーション
  • Ruby and Railsアプリケーションのプロファイリング
  • Factory Botのフルサポート
  • Call Hierarchy(呼び出し階層)でメソッド呼び出しを調査
  • 新しいUIテーマ

新バージョンには、TruffleRubyのサポート、改善されたJavaScriptとデータベースツール、そして多くのバグ修正も含まれています。

新機能の詳細については、 What’s new ページをご覧ください。サムライズム様による翻訳はこちらにございます。ぜひ、今すぐ新しいRubyMine 2019.1をダウンロードしてお試しください。

改善点の一覧については、リリースノートをご確認ください。また、発生した問題についてはYouTrackに報告してください。 そして、ぜひ RubyMine Slackにも参加してください!

よろしくお願いいたします。
RubyMine チーム

[原文Original post in English is written by Artem Sarkisov

Posted in RubyMine, お知らせ | Leave a comment

CLion 2019.1リリース:組み込み開発、ClangFormat、メモリビュー、言語の注入(Inject)、カスタムテーマなど

CLionの今年初のメジャーアップデート、CLion 2019.1がリリースされました!

すぐにアップデートするには、Toolbox App、スナップパッケージ(Ubuntu)、当社のウェブサイト、または2018.3の最新ビルドからのパッチアップデートが利用可能です。ぜひ今すぐアップデートしてください! :)
CLion 2019.1がリリースされました!

サムライズム様によるWhat’s Newの翻訳はこちらにございます。

以前に発表したように、今年当社は主に、IDEのパフォーマンス、Clangdのさらなる活用、そして組み込み開発に重点を置いています。 今回のアップデートではその3つの分野すべてで前進しております:

詳細についてぜひこのまま読み続けて、Phil Nash(フィル・ナッシュ)によるこちらの短いWhats Newビデオ(英)をご確認ください:

JetBrainsは30日間のCLion無料体験版を用意していますので、サブスクリプションを購入する前に、これらの全機能をすべて試すことができます。

CLion 2019.1をダウンロード

 

Clangdベースの言語エンジンとのインテグレーションの強化

私たちは引き続きClangdのより広範なインテグレーションに重点を置いているため、当社は補完的なClangdベースの言語エンジンを開発することに尽力を注いでいます。 可能な限り(機能およびパフォーマンスの観点から)、このエンジンにさまざまなアクションを再実装していますが、そのようなアクションに対してはCLion独自のエンジンに切り替えるオプションもございます(現時点では)。

ユーザーの観点からは、それによりエディタの反応がよくなることがわかります。 Clangdのより広範なインテグレーションに向けて当社が取ったもう1つのステップは、Clangdを利用してクイックフィックスが必要な場所を特定するようになったことです。 つまり、Clangdベースの言語エンジンは、コード内の潜在的な違反を特定してエラーや警告を表示するだけでなく、クイックフィックスの場所を提供するためにも使用できます。 ただし、実際のクイックフィックスはCLionによって提供されることにご注意ください。
Clang fix location

一方、この2番目のステップには欠点がいくつかあり、その結果、クイックフィックスの一部は一時的に削除されました(CPP-15243)。

また、エラーアノテーターが改善され、Clangから取得されたより詳細なエラーメッセージを表示できるようになりました。 実用的な例として、Clangが置換失敗に対する詳細な理由を提供できる、失敗したオーバーロード解決のデバッグ:
Clangエラー

また、当社のC++言語サポートチームは、CLionが提供する独自のコードチェックにも取り組んでおり、それらをClangdに実装しています。 例えば、Member function can be static(メンバー関数は静的にできます)チェック。 これはメソッド本体を分析し、それがthisに依存しているかどうかを確認しようとします。
Member static

CLion独自の言語エンジンの改善

IDEパフォーマンス

Clangdベースのエンジンに取り組んでいる一方で、私たちは当社独自の言語エンジンの改善に向けても、懸命に取り組んでおります。 まず、Clangdがまだ適用できない、IDEのパフォーマンス向上を目標としております。次に、少なくとも現在の状態ではまだClangdエンジンに移行できない、リファクタリングの精度を高めることです。

新規プロジェクトを作成したり最初に開いたりする際の初期インデックスの時間を短縮させました。 つまり、プロジェクトに適している限り、CLionは最近開いた他のプロジェクト用にすでに構築されているシンボルを再利用できるようになりました。 例えば、STLまたはBoostライブラリ、あるいは現在のプロジェクトや新規プロジェクトで広く使用されているその他のカスタムライブラリを使う場合に便利な改善点です。 私たちはこの機能にさらに取り組み、今後それを拡張する予定です。

より正確なリファクタリング

私たちはリファクタリングに1つずつ取り組み、改善していましたが、今回は、Extract(抽出)に取り組む必要がありました。 結果が正確であることを確認するために、私たちはそれが、std::名前空間修飾子、テンプレートの特殊化、テンプレートパラメータ、および型エイリアスを尊重するようにしました。

また、Rename(名前の変更)リファクタリングも改善されました。 ファイルに対して呼び出されたRenameで、関連するクラス/構造体の名前変更がトリガーされずに、代わりにこのオプションをサジェストするポップアップが表示されるようになりました。 またその逆も!
Rename class

さらに、ヘッダファイルの名前が変更された際に、ヘッダガードがこのヘッダファイルで使用されている場合は、それに応じてヘッダガードも更新され、使用されるヘッダガードスタイルテンプレートにはヘッダファイル名が含まれます。

組み込み開発への第一歩

STMicroelectronicsボード用に開発している場合は、CLionがSTM32CubeMXと統合されたことを知って、とても喜ぶでしょう:

  • CLionの新しいプロジェクトウィザードは、STM32CubeMX(.ioc)プロジェクトの作成を提案してくれます。このタイプの既存のプロジェクトをCLionで開くこともできます。
  • その後、いつでもCLionから直接STM32CubeMXを起動してボード設定を更新し、コードを生成できます。
  • また、CLionは、あなたの.iocプロジェクトが正しく動作するように、対応するCMakeファイルを生成し、ボード構成を選択することも提案してくれます。

OpenOCD + STM32CubeMXプラグインを試したことがあれば、機能は非常に似ていることに気づくでしょう。私たちはこのプラグインのアップデートされたバージョンをCLionにバンドルしました。

このプラグインの2つ目の部分は、どの組み込みデベロッパーにとっても便利です。というのもこれは、 Open On-Chip Debuggerとのインテグレーションを提供しているからです。 ‘OpenOCD Download and Run’ の新しい実行/デバッグ構成テンプレートを使用して、マイクロコントローラでデバッグできます。
OpenOCD

このインテグレーションについて、または必要な設定の詳細については、この詳細なブログ記事(英語)をご覧ください。

CLionをあなたのコードスタイルに調整

ClangFormat

ClangFormatツールはC/C ++の世界で広く使用されており、多くの開発者によって標準として評価されています。 よくオープンソースプロジェクトはリポジトリに.clang-format構成ファイルを保存しています。 現在、CLionでそのようなプロジェクトを開くと、IDEは構成ファイルを検出し、ClangFormatに切り替えるように提案するようになりました。 つまり、ClangFormatは代替フォーマッタとしてCLionに統合されました! これはIDEのすべてのアクションに影響するため、それに完全に切り替えることができます。
ClangFormat

Settings/Preferences | Editor | Code Style で、ClangFormatのスイッチャーもあります。 詳細については、私たちの専用ブログ記事(英語)をご確認ください。

C/C++命名

クラスや構造体用のPascalCase、メンバー関数や変数用のcamelCase、マクロや定数用のSCREAMING_SNAKE_CASE、グローバル関数用のsnake_case、すべての列挙型の接頭辞としての ‘E’ -これら全ての命名規則。 CLionはあなたの苦痛を理解し、Settings/Preferences | Editor | Code Style | C/C++ | Naming Convention で対応する設定を提供し、すべてのコード補完、コード生成、リファクタリングアクション、およびクイックフィックスでその選択を尊重するようになりました。

事前に設定されたスキームから命名スタイル(およびその他のコードスタイル設定)を選択することもできます。Google、LLVM、Qtなどが利用可能です。 また、Inconsistent Naming(一貫性のない命名)インスペクションを有効にすると、IDEは問題のある名前について警告し、クイックフィックスを使用してより正確な名前をサジェストし、すべての使用箇所を置換することもできます。
命名規則

ヘッダガードスタイル

ヘッダファイルで通常何を使用しますか? pragma、それともヘッダガードですか?  デフォルトでは、CLionはヘッダガードを生成します(Settings/Preferences | Editor | File and Code Templates でpragmaを使用するようにヘッダファイルテンプレートを変更できます)。ヘッダガード派の方は、喜ぶと思いますが、 CLion 2019.1には、ヘッダガードスタイルを構成する新機能が追加されています:
ヘッダガード設定

このテンプレートは、Apache Velocityシンタックスをサポートし、${PROJECT_NAME}${PROJECT_REL_PATH}${FILE_NAME}${EXT}などの事前定義された変数もいくつか使用します。 より標準的なスタイルを使用したい場合は、事前定義されたスタイルオプションのどれかを選択できます(命名規則と同じように)。

カスタムビルドターゲットと実行/デバッグ構成

IDEで提供されているカスタムコマンドのようなものを使用してプロジェクトをビルドする機能が欲しいというご要望を、最近多くのユーザーから頂いております。 また、実行/デバッグ構成をカスタム実行可能ファイルに指定することで、IDEでバイナリを実行/デバッグする機能についてもご要望を多数頂きました。 この機能は特に、CLionでサポートされている(ほとんどすべてのビルドシステムから抽出できる)コンパイルデータベースプロジェクトに役立つでしょう。 私たちはCLion 2019.1で、それを実現しました。

カスタムコマンドを使用してプロジェクトをビルドするには、Custom Build Target in Settings/Preferences | Build, Execution, Deployment | Custom Build Targets でカスタムビルドターゲットを作成してください。そこで、ツールチェーンとビルド/クリーンコマンドを指定できます:
カスタムターゲット

CLionでカスタム構成を実行またはデバッグするには、Run | Edit Configurations…でCustom Build Applicationの構成を設定してください。そこで、カスタムターゲット、実行可能ファイル、プログラム引数などを指定できます。
Custom configuration
これらすべてがどのように機能するかの詳細については、当社のウェブヘルプをご覧ください。

デバッガの機能強化

メモリビュー

CLion 2019.1以降、デバッグ時にポインタの後ろの生メモリをダンプできます。 また、デバッグ中にメモリビューを開き、ステップ実行中にメモリへの変更を追跡できます。
メモリビュー

これはまだ進行中の作業です。 例えば、次のアップデートではデバッグモードで任意のメモリアドレスをダンプする機能を予定しています。

逆アセンブリビュー

逆アセンブリビューが改善され、機能ごとに分類された情報を表示するようになりました。 またこれは、LLDBでも動作するようになったため、LLDBとGDBの両方が現在カバーされています。
Disasm view
ソースコードのない関数で Force Step Into(強制ステップイントゥ) (Win/LinではShift+Alt+F7、macOSでは⌥⇧F7) を使用すると、このビューが開きます:

変数をミュート

変数の計算にはかなりの時間がかかることがあります。コードをステップ実行する際には、特にパフォーマンスに重大な影響を与える可能性があります。 変数の計算に注意を払う必要がある場合、膨大な作業になる場合がある一方、最終的には必要ない場合もあります。 そのような状況では、一般的なIDEごとのスイッチを使って変数をミュートできるようになりました。 また、必要に応じて、Load(読み込み)オプションを適用して、現在のステップで特定の変数を計算できます。
変数をミュート

注入された言語

コードの一部を含む文字列リテラルは、実際のコードの一部として扱うことができます。 つまり、コードのハイライト、言語固有のインテンションやアクションをそれらに適用できます。 典型的な例は、SQLまたはHTML文字列、あるいは正規表現などです。

一時的に言語を注入するには、Alt+Enterを押して“Inject language or reference”(言語または参照を注入する)インテンションを適用し、適切な言語を選択すれば完了です! 専用のエディタセクションでコードフラグメントを編集したり、特定のアクションを適用したりできるようになりました。例えば、IDEで文字列がRegExpに一致するかどうかを確認できます。
Inject language
これは便利ですよね?

カスタムテーマでIDEをカラフルに!

デフォルトのホワイトとDarculaのテーマでは不十分な場合、ぜひカスタムテーマを作成してください! アイコンやラジオボタンから矢印まで、IDEのすべての項目のすべての色を調整できます。 お好みに合わせて調整してから、それをすべて新しいテーマプラグインとして保存してください。 こちらのチュートリアルで調整方法をご確認ください。
カラーテーマ

Rustプラグインのアップデート

IntelliJ RustプラグインはCLionでRustのサポートとCargoビルドシステムおよびデバッガを提供します。 このバージョンはそれが大規模にアップデートされました:

  • プロファイラがRustでサポートされるようになりました:macOSではDTrace、LinuxではPerf。
  • 範囲外の項目はコード補完でサジェストされ、使用時に自動インポートをトリガーします。
  • doc commentsでコードスニペットへのRust言語挿入が提供されるようになりました。
  • Cargo checkアノテーター、LLDB、およびGDBフォーマッタのさまざまな改善。

ぜひ「はじめてのCLion+IntelliJ Rust」ブログポストもご確認ください。

その他の機能強化

その他の改善には、新しい Recent Locations(最近の場所)ポップアップが含まれています。最近訪れたすべての場所を時系列順にまとめた概要と、バンドルされたCMake(3.13)、バンドルされたLLDB(7.0.1)、および最近サポートされたCygwin(3.0)の更新されたバージョンを提供。

さらに、CLionのプラグインを構築するプロセスは、gradle-intellij-plugin (バージョン0.4.2以降)によって使用されるMavenの依存関係としてCLionを公開することで、簡素化されました。

以上です! ぜひ新しい改善点をお試しください。そして、いつものように、フィードバックは大歓迎です。

CLion 2019.1をダウンロード

[原文Original post in English is written by Anastasia Kazakova

Posted in CLion, お知らせ | Leave a comment

GoLand 2019.1がリリースされました!

GoLand 2019.1がリリースされました!

blog@2x

GoLand 2019.1では、ビルトイン Memory、CPU、Block、Mutexプロファイラが統合され、高度な機能でデバッガが強化され、新しいリファクタリングを追加しました。また、GoLand 2019.1はさまざまな方法で式にnilを使用することで発生する可能性があるエラーについて警告してくれます。

新しいバージョンでは、IDEから直接Go SDKをダウンロードしてインストールできるようになり、新しい設定済みの Sublime Text キーマップを使用できます。

これらは、新しいGoLandが提供する新機能のわずかなリストです。 ぜひこのまま詳細をお読みいただくか、当社のWhat’s Newページに移動し、Goモジュール、ナビゲーション、インテンションアクション、バージョン管理、ウェブ開発、データベースについて当社が行ったことの詳細をご覧ください。サムライズム様による翻訳はこちらにございます。

GoLand 2019.1をダウンロード

一方で、GoLandをまだお試しになられていない場合、ぜひ30日間の無料体験版を使用し、新機能を試してみてください。
ハイライトをお読みいただくか、こちらのクイックデモでそれらをご確認ください(英語):


プロファイリング

ワンクリックでビルトインMemory、Heap、CPU、Mutex、またはBlockプロファイラを実行できます。 GoLandで専用のツールウィンドウを使って、分析結果を確認し、ソートできます。

デバッガ

  • 一連の呼び出しとネストされたメソッド呼び出しのデバッグが、新しいデバッガアクションの Smart Step Into(スマートステップイントゥ) を使用することで、はるかに簡単になりました。
  • デバッガはスレッドの代わりにゴルーチンを表示します(その逆も)。 Int変数の表示方法を2進数、10進数、16進数のいずれかで選択できます。
  • ゴルーチンリストを右クリックして、Debugger タブで Copy Stack(スタックのコピー)を使うと、フレームスタック全体をクリップボードにコピーできます。
  • マウスジェスチャーとして、Run to Cursor(カーソル位置まで実行)が利用できます。
  • Windowsミニダンプがサポートされています。
  • Run/Debug(実行/デバッグ)設定はsudoで実行できるようになりました。

リファクタリング

  • 新しい Extract Interface (インターフェースの抽出) リファクタリングを使用すると、選択したタイプに基づく新しいインターフェースをすばやく作成するのに役立ちます。
  • Rename リファクタリングには、インタフェースで宣言されたメソッドの名前を変更する機能が含まれるようになりました。

コードインスペクション

  • Nilness Analyzer(nil値アナライザ)は、さまざまなケースで、変数にnil値があるかどうかを即座に検出するように設計された新しいコードインスペクションセットです。
  • Multiple defaults in switch(switchの複数のデフォルト)コードインスペクションでは、switch文内の冗長なデフォルトのケースについて警告し、重複したデフォルトにすばやく移動できます。

新しいUIテーマとテーマカスタマイズのサポート

IntelliJ IDEAベースのIDEのすべての新しい2019.1バージョンでは、すべてのUI要素の色を完全にカスタマイズできます。 本当に、何の色でも変えられます

ちょっとはしゃぎすぎてしまったかもしれませんが、3つの新しいテーマを作成しました:ダークパープルライトシアングレー。 ぜひお試しください!

IDEからGo SDKをインストール

GoLandで新しいプロジェクトを作成する際に、ベータ版とRC版を含む、SDKの必要なバージョンをダウンロードしてインストールするオプションが追加されました。

さまざまな便利な変更

  • 新しい設定済みの Sublime Text キーマップが、Preferences | Settings | Keymap から利用できます。さらに、VS Codeキーマップがこのプラグインから利用できます。
  • Recent locations(最近の場所)のポップアップは、コードスニペットとして最近訪れた/変更されたコードの場所のリストを提供し、プロジェクト周辺のナビゲーションに役立ちます。
  • ウェブ開発用のプロジェクトテンプレート(React AppReact NativeHTML 5 BoilerplateFoundationなど)がすべて、ウェルカム画面からご利用いただけます。
  • コードスタイル の設定をJSONにエクスポートする新しいオプションが、Preferences /Settings | Editor | Code Style で利用できます。
  • JetBrains製のプラグインの設定は、Preferences/Settings ダイアログで検索できます。
  • 無視されたファイルとフォルダは、Project ビューでオリーブグリーン色で表示されます。
  • ファイルをドラッグしてBlank Diff(空白差分)ウィンドウにテキストをコピー&ペーストできます。

新しいインテンションアクション

  • 一連のインテンションアクションは、宣言を再フォーマットするのに役立ちます:Settings/Preferences | Editor | Intentions | Declaration。
  • Export(エクスポート)のインテンションアクションを使用すると、パッケージ間で切り替えずにプライベート関数、型、またはフィールドをエクスポートできます。

Goモジュール

  • インポートされていないGoモジュールのコード補完を追加しました。
  • Goモジュールのプロジェクトテンプレートには、新しい Vendoring mode のチェックボックスが追加されました。

バージョン管理の改善

  • Partial Git(部分的なGit)コミット(git add -p)のUncheck all(すべてのチェックを解除)チェックボックスにより、すべてのコードチャンクのチェックを一度に解除できます。
  • FixupSquash Intoアクションを使って、正しいfixup! とsquash! メッセージを使用して、 コミットを 作成できます。
  • Mark Branches that have incoming/outgoing commits in the Branches(ブランチに着信/送信コミットがあるブランチをマークする)ポップアップが利用可能になりました。
  • VCSアノテーションに作者のフルネームの代わりにイニシャルを表示できます。

ウェブ開発

  • 一連のリファクタリング、インテンションアクション、およびクイックフィックスにより、コード内のオブジェクトと配列を簡単にデストラクチャリング(分割代入)を始めるのをサポートします。
  • Convert to async function(非同期関数に変換)インテンションアクションは、Promiseを返す関数をasync / await付きの非同期関数に変更するのに役立ちます。
  • HTMLとCSS用のドキュメントに、MDNの説明とブラウザサポートに関する情報が表示されるようになりました。
  • Jest、Karma、Mocha、またはProtractorを使用してテストを実行して、その一部が失敗すると、IDEはエディタで失敗したコードをハイライトします。

データベース

  • Remember password(パスワードを保存)機能に、パスワードを保存するためのオプションが2つ付きました。Forever(永遠に)For session(セッション間)です。
  • Greenplum、Vertica、Apache Hiveデータベースのサポート。
  • 完全に作り直された接続ダイアログ。
  • 新しいキープアライブと自動切断オプション。
  • データエディタのフィルタはクリップボードの値をサジェストします。

当社のさまざまな改善案は、ユーザーの皆様から頂いたご意見から生まれました。 フィードバック大歓迎です!当社のバグトラッカーでご要望等をお伝えいただくか、@GoLandIDEをメンションして、ツイートしてお伝えいただけますと幸いです。 よろしくお願いいたします!

[原文Original post in English is written by Ekaterina Zharova

Posted in GoLand, お知らせ | Leave a comment

IntelliJ IDEA 2019.1がリリースされました! テーマのカスタマイズ、Java 12のSwitch式、Dockerコンテナ内でのデバッグなど

IntelliJ IDEAの今年初のメジャーアップデート、IntelliJ IDEA 2019.1がリリースされました! この大規模なアップデートには、たくさんの新機能と改善点が含まれています。新機能ページをぜひご確認ください!サムライズム様による翻訳はこちらにございます。

このブログ記事では、このアップデートの主な新機能の概要をご紹介いたします。

blog@2x

ユーザーインターフェース

  • 新しいテーマが追加され、テーマのカスタマイズが公式にサポートされるようになりました!

詳細は、新機能ページのテーマセクションをご覧ください。

Java

  • IntelliJ IDEAは、Java 12のプレビュー機能、Switch式JEP 325をサポートしています。 詳細はこちら
  • Extract Variable リファクタリングは、以前よりもさらにセマンティクスを保持するようになりました。
  • 三項式では、IDEはnullability(変数がnullを取り得るかの記述)違反が検出された条件のみをハイライトするようになりました。
  • 数学演算の分析が大幅に改善されたため、IDEは剰余、乗算、および右シフト演算の値を追跡できるようになりました。
  • IDEはソースからコンストラクタの純粋性を自動的に推測できるようになりました。
  • 自動生成されたtry/catchブロックに変数名を設定できます。
  • Javaスタックトレースから行内の適切な位置へのナビゲーション。
  • IDEは重複したスイッチブランチを検出できるようになり、そのようなブランチをマージするためのクイックフィックスを提供してくれます。
  • “Move Statement Up/Down”(文を上/下に移動)を使用して、switch文とcatchブロックを上下に移動できるようになりました。
  • クリップボードとの間で構造検索パターンをインポートおよびエクスポートできるようになりました。

詳細については、新機能ページのJavaセクションをご覧ください。

Gradle

  • 新規プロジェクトでは、デフォルトでビルドおよび実行アクションがGradleに委任されます。
  • Gradleへのビルドおよび実行アクションの委任は、Gradleプロジェクトごとに個別に設定できます。
  • HotSwapはビルドアクションがGradleに委任されたときに機能します。
  • Gradleの組み込みバージョンはv4.10.3にアップグレードされました。
  • Gradleテストランナーを使って、JUnitパラメータ化テストを実行できます。
  • Gradleテストタスクを適切に選択して、エディタから実行できます。
  • Gradleツールウィンドウは、 ‘gradle projects’コマンドを実行した場合と同じように、マルチモジュールプロジェクトの構造を表示できます。

詳細は、新機能ページのGradleセクションをご覧ください。

Maven

  • HotSwapはビルドアクションがMavenに委任されたときに機能します。
  • 唯一のバンドルされたMavenバージョンは現在v3.3.9です。IntelliJ IDEAでMaven 2をバンドルするのをやめました。
  • ビルドに関連するすべてのMaven出力を1か所で表示できる、ビルドツールウィンドウが追加されました。
  • 改善されたMaven図(ダイアグラム)を使って、競合の依存関係または重複する依存関係を表示できるようになりました。選択したノードの隣接ノードのみを表示したり、選択したノードへのパスを表示し、ダイアグラムを境界線なしでプレビューできます。

詳細は、新機能ページのMavenセクションをご覧ください。

バージョン管理システム

  • FixupとSquashアクションは、VCS Logタブのコンテキストメニューから利用できるようになりました。そのため、fixup! とsquash! コミットメッセージを使用してすぐにコミットを作成できます。
  • コンテキストメニューを使用し、VCSログから直接ファイルをチェリーピックできるようになりました。
  • ‘Mark Branches that have incoming/outgoing commits in the Branches popup’ (ブランチに入出力コミットがあるブランチをマークする)ポップアップオプションが有効になっている場合、それぞれのブランチに対する入出力コミットを確認できるようになりました。
  • シェルフタブの新しい “Recently Deleted”ノードには、最近削除されたすべてのファイルが表示され、最近削除された、シェルフされたファイルを復元するオプションが追加されました。
  • VCSアノテーションにおいて作者のイニシャルを表示するモードが追加されました。
  • 部分的なGitコミット用のCommit Changes(変更をコミット)ダイアログのDiffペインの新しい“Uncheck all”(すべてのチェックを外す)チェックボックスで、すべてのコードチャンクを一度に選択および選択解除できます。
  • プロジェクトビューで、IDEはGit ignoreによって無視されたファイルとフォルダをオリーブ色でマークするようになりました。

詳細については、新機能ページのバージョン管理セクションをご覧ください。

差分ビューア

  • ファイルのドラッグアンドドロップで、テキストをBlank Diffウィンドウにコピー&ペーストできるようになりました。
  • 差分ビューアで文字単位で差分を表示できるようになりました。
  • 差分ビューアでは、Swap Sides オプションを使用して、左側に表示されるファイルと右側に表示されるファイルを選択できるようになりました。

詳細は、新機能ページの差分ビューアセクションをご覧ください。

Recent Locations (最近の場所)ポップアップ

  • 最新の “Recent Locations”(最近の場所)ナビゲーションポップアップ(Cmd-Shift-E/Ctrl-Shift-E)を使用して、最近訪れた、または変更されたコードの場所をすべて表示できます。 もっと詳しく

JVMデバッガ

  • デバッガエバリュエータは、 synchronized statements(同期文)、assert expressions(アサート式)、およびswitch statements(スイッチ文)をサポートするようになりました。
  • Javaプロジェクトのデバッグ中に、新しいアクション、“Step Out of the block”(ブロックからステップアウト)を使用して現在のブロックからステップアウトできるようになりました。
  • マウスでデバッグモード中に必要な行番号をクリックするだけで、Run to mouse pointer(カーソル位置まで実行)アクションを呼び出すことができるようになりました。

詳細は、新機能ページのJVMデバッガセクションをご覧ください。

Scala

  • エラーハイライト、暗黙のヒント、GoTo / Quick Definition / Quick Documentationアクションが、 ‘For-comprehensions’でサポートされるようになりました。
  • Find Usages(使用箇所を検索)は、暗黙の定義、メソッドの適用/適用を解除、for-comprehensionメソッド、および Single Abstract Method (SAM)(単一抽象メソッド)型に対して呼び出せるようになりました。
  • コンパイルされたScalaファイルをJavaに逆コンパイルできるようになりました。
  • カスタムバージョンのScalafmtフォーマッタを使えるようになりました。
  • HOCON形式のサポートは、専用のプラグインによって提供されています。
  • エラーのハイライトが大幅に改善されました。部分的なユニフィケーション、コンストラクタのハイライト、better-monadic-forコンパイラプラグインの改善(implicit0機能)、kind-projector(値レベルの多型ラムダ)、simulacrum(higher-arity型コンストラクター)など。

詳細については、新機能ページのブログ記事Scalaセクションをご覧ください。

Groovy

  • Groovy 3.0のJavaスタイルのラムダシンタックスのサポート
  • Groovyのインテンションとインスペクションは、ラムダ本体内部で適切に機能します。
  • Javaスタイルのラムダをデバッグする機能。

詳細は、新機能ページのGroovyセクションをご覧ください。

Kotlin

バンドルされたKotlinプラグインはv1.3.21にアップデートされました

  • ‘main’ ライブテンプレートを使用して、パラメータなしでmainメソッドを作成できます。
  • ‘Deferred’ を返す関数に “Async” サフィックスを追加するようにサジェストする新しいインテンションアクション。
  • SAMをラムダとして匿名オブジェクトに変換するための新しいインテンション。
  • 文字列変換の改善。

詳細は、新機能ページのKotlin セクションをご覧ください。

JavaScript & Typescript

  • JavaScriptとTypeScriptのデストラクチャリング(分割代入)用の新しいリファクタリングとインテンション。
  • Promiseを持つ関数をasync/awaitに変換するインテンション。
  • CSSとHTMLのドキュメントがアップデートされました。
  • JavaScriptとNode.jsデバッグツールウィンドウの改善されたデバッガコンソール。

詳細は、WebStormの新機能ページをご覧ください。

Docker

  • Dockerコンテナ内で実行されているJavaアプリケーションをデバッグできるようになりました。 もっと詳しく知る.

Kubernetesプラグイン

  • 外部ソースからカスタムリソース仕様をロードする機能が追加されました。
  • チャートの名前の変更リファクタリングは、Helmリソースファイルでできます。

詳細は、新機能ページのKubernetesセクションをご覧ください。

エディタ

  • すべてのコードスタイル設定をJSONにエクスポートするための新しいオプションが追加されました。 さらに、外部ツールとのカスタムインテグレーションに、エクスポートされたコードスタイル設定をすべて使用できます。
  • ファイルの種類に応じてソフトラップを有効にできます。
  • Windowsで、最初の使用箇所で、キーマップ設定ダイアログで “Delete Line”(行の削除)または “Redo”(やり直し)アクションにCtrl + Yショートカットを割り当てるオプションが追加されました。
  • 設定済みのSublime TextキーマップをIDEで利用できるようになりました。
  • 新しいVSCodeテキストキーマッププラグインをインストールして、IntelliJ IDEAでVSCodeキーマップを使用できます。

詳細は、新機能ページのエディタセクションをご覧ください。

Spring Cloud Stream

  • IDEは、Spring Cloud Stream用にシンタックスハイライト、コード補完、インスペクション、およびクイックフィックスの編集サポートを提供してます。
  • バインダー名の補完は、application.propertiesファイルまたはapplication.ymlファイルの値と参照に使用できるようになりました。
  • バウンド消費および生成メッセージハンドラ間のナビゲーションは、ガターのアイコンから利用できるようになりました。

詳細は、新機能ページのSpring Cloud Streamセクションをご覧ください。

Thymeleaf

  • ‘th: replace’ と ‘th: include’ 属性で参照されたテンプレートフラグメントへのナビゲーション。
  • 含まれたフラグメントおよび置き換えられたフラグメント用のリネームリファクタリング。
  • コード補完は、含まれたフラグメントおよび置き換えられたフラグメントに対して機能するようになりました。

詳細については、新機能ページのThymeleafセクションにジャンプしてください。

Android

  • IntelliJ IDEA 2019.1には、Android Studio 3.3の変更がすべて含まれています。 詳細はこちら

JetBrains Runtime

  • IntelliJ IDEA 2019.1では、新しいJetBrains Runtime 11でIntelliJ IDEAへの早期アクセスがございます。 当社はJetBrains Runtime 8とJetBrains Runtime 11の両方でIntelliJ IDEAを公開し続けます。

データベースツール

  • 新しいデータベースのサポート:Greenplum、Vertica、Apache Hive。
  • 接続ダイアログの外観が新しくなりました。
  • 接続を確立するたびに実行されるSQLクエリを指定できます。
  • 新しいキープアライブと自動切断オプション。

詳細については、新機能ページのデータベースツールセクションをご覧ください。

その他の変更

  • Linuxでのグローバルメニューのサポートが実験的な機能ではなくなり、IntelliJ IDEAで完全にサポートされるようになりました。
  • IDEはEclipse Concierge OSGiフレームワークをサポートするようになりました。
  • プラグイン設定は、プラグインがIDEにバンドルされていなくても、IntelliJ IDEAで検索可能になりました。また、手動でインストールするだけでも、設定は検索結果に表示されます。

これは非常に長いハイライトのリストです。これらの新しい機能をすべて追加するのに尽力する一方で、品質と安定性について忘れることはありません。私たちはバグやパフォーマンス問題を修正し、ユーザビリティを改善し続けています。 全体的にこの新しいメジャーアップデートでは、1700個以上の課題を修正いたしました! 解決されたすべての課題のリストは、リリースノートにございます。 課題に投票したり、機能リクエストをご送信いただいたり、Twitterとこちらのコメントで、ご意見やご提案をお伝えいただいた方全員に、心から感謝申し上げます! フィードバックは大歓迎です!

ではいよいよ、IntelliJ IDEA 2019.1をダウンロード してください!

Happy Developing!

[原文Original post in English is written by Zlata Kalyuzhnaya

Posted in IntelliJ IDEA, お知らせ | Leave a comment

YouTrack 2019.1がリリースされました!

YouTrack 2019.1のリリースに関するニュースです。

VLA7bXbG

JetBrainsはYouTrackを改善し続けており、今回、2019年最初のリリースをお届けいたします。 このブログ記事を読み、最新版の新機能をご確認ください。サムライズム様による新機能のページの翻訳はこちらにございますので併せてご参照ください。

お気に入りのアジャイルボード

アジャイルボードをお気に入りとしてマークできるようになりました!個人用およびチーム用のボードなど、複数のボードで作業する場合に非常に便利です。 お気に入りのボードはリストの一番上に表示されます。

お気に入り_ボード 17.24.22

Slack用YouTrackアプリ(Standalone)

Slackとのカスタムインテグレーションにより、YouTrackスタンドアロンインスタンスをワークスペースにリンクし、両方のアプリケーションを最大限に活用できるようになりました。 課題の更新通知を取得し、プレビューをリンクし、課題の下書きへメッセージをコピーできます。

下書き_作成 17.24.22

コミュニティベースの言語サポート

現在YouTrackでは、英語、ドイツ語、フランス語、ロシア語、日本語、およびスペイン語の公式ローカライズサポートを提供しています。 このリリース以前でも、YouTrackスタンドアロンインストールにカスタムローカライゼーションをアップロードすることは可能でしたが、このプロセスは簡単ではなく、ある程度の労力が必要でした。

現在、JetBrainsで正式にサポートされていない言語でYouTrackを使用したい場合、JetBrainsが使用しているローカライズサービスであるCrowdinを使って、翻訳をご提供いただけます。 新しい言語の追加をしたい場合、あるいは他の貢献者によって既に開始された翻訳プロセスに参加されたい場合は当社のサポートまたはプロジェクト管理者までお問い合わせください。 コミュニティによって追加された言語は、特定の条件が満たされた場合にのみYouTrack UIに表示されることにご注意ください。 詳細については、こちらのドキュメントをご参照ください。

Crowdin

アップデートとエンハンスメント

アジャイルボードのカードのカスタマイズ可能なフィールド

アジャイルボード上のカードの新しいオプションを使用して、表示するフィールドと値の表示方法を選択できるようになりました。 これにより、複数のプロジェクトで課題を管理する場合でも、ボード上の各カード用に同じデータコレクションを表示できます。

変更点:

1. フィールドはカードの一番下に表示されるようになりました。
2. カードのサイズは決まっていません。内部のコンテンツ量に依存するようになりました。 フィールドがカードに収まらない場合、カードにフォーカスされたときに表示されます。

カスタマイズできる_フィールド

システム全体にわたるダークテーマ

YouTrackのすべてのページにダークテーマを適用できるようになりました(課題リストを除く)。 ダークテーマは、課題リストが実験的な機能として有効になっている場合でも機能します。 アバターをクリックしたときに表示されるメニューで、またはプロファイルの一般設定でダークテーマに切り替えることができます。

ダーク_テーマ 17.24.22

アジャイルボード用のクローンアクション

この機能により、アジャイルボードの設定パネルにオプションを追加して、ボードのクローンを作成できます。 最初から設定することなく新しいアジャイルボードを作成し、後でいつでも設定を調整できます。

ボード_クローン 17.24.22

ユーザーごとの期間形式設定

あなたのYouTrackプロファイルの新設定を使用して、期間フィールドに格納されている値の表示方法を選択できるようになりました。 これにより、簡単に計算して一目で値を比較できます。

匿名SMTPサーバー接続

YouTrackはログイン名とパスワードを送信せずにSMTPサーバーに接続できるようになりました。 これにより、認証を必要としないSMTPサーバーに接続できます。

Markdownでシンタックスハイライトを改善

Markdownの言語固有のシンタックスハイライトを改善することで、GitHubの同様の機能との互換性が向上し、ハイライトなしのコードブロックへのサポートも追加されました。

プロジェクト設定へのクイックアクセス

課題からそのプロジェクトの設定に直接ジャンプできる設定を追加しました。 プロジェクトの更新権限を持つユーザーは、フィールドパネルのプロジェクト名の横にあるアイコンをクリックして、プロジェクト設定にアクセスできます。

設定 17.24.22

スマートなデフォルト作業項目タイプ

新しい作業項目の場合、デフォルトでは直近の作業項目に割り当てられた作業項目タイプが使用されます。 この変更により、常に同じタイプの作業をするユーザーは、自分の作業をより早く報告できるようになります。

実験的な機能

再設計された課題リスト

新しい課題リストが実験的な機能として表示されるようになりました! 実験バージョンでは、すべてのレベル用のツリーモードと、現在の検索クエリを絞り込むためのスマートフィルタがサポートされています。 ダークテーマをご使用の場合、再設計された課題リストページでもダークテーマをお楽しみいただけます。

課題_リスト

ぜひYouTrack 2019.1 をお試しください!

今すぐダウンロード

フィードバックも大歓迎です!以下のコメント欄からお気軽にお知らせください。

このリリースの詳細については、リリースノートをご参照ください。 新機能の設定の詳細については、最新のドキュメントをご参照ください。

クラウドでYouTrackをご使用の場合は、当社のメンテナンスカレンダーに従って、あなたのインスタンスは自動的に最新バージョンにアップグレードされます。

[原文Original post in English is written by Natasha Katson

Posted in YouTrack, お知らせ | Leave a comment

はじめてのCLion+IntelliJ Rust

こんにちは。JetBrains堀岡です。ご存知の通り、JetBrainsの製品は様々なプログラミング言語やテクノロジーをカバー(参考:jetbrains.dev)しており、日々様々な技術情報が英語でアップデートされています。営業的な記事を書くのはそろそろ飽きてきたので、私自身仕事で使ったことのの無い(遠い昔、ソフトウェアエンジニアでしたw)プログラミング言語(Kotlin、PHP、Ruby、Swift、Scala、Go、Rust)のコンテンツも学びながら増やしていけたらと考えております。そこで、今回(今後伸び代がありそうな)IntelliJ Rustについて紹介したいと思います。

clion_rust_banner2

IntelliJ Rustの歴史

現在JetBrainsの製品群の中でプログラミング言語Rust専用のIDEはありませんが、オープンソースのJetBrains IDE向けプラグインとしてIntelliJ Rustがあります。歴史を調べてみると以下が大きな節目のようです。

IntelliJ Rustの情報源

IntelliJ Rustには製品レベルのドキュメントはありませんが、以下から機能概要やリリース情報を知ることができます。

現時点でIntelliJ Rustと一番親和性の高いJetBrains IDEはCLionです(デバッガサポートがあるため)。そのため、現在JetBrainsの製品カテゴリ/マーケティング的にはIntelliJ Rust関連の情報(新機能や便利な使い方紹介)は、CLionの一部として以下の通り情報提供されています。

IntelliJ Rustの主な機能

IntelliJ IDEAやCLionの基本操作の多くが(同じキー操作で)IntelliJ Rustプラグインでサポートされています。機能一覧はIntelliJ Rust DocumentationのFeaturesに掲載されています。基本的な機能は一通り入っているようですが、まだまだWIP(Working In Progress: 開発中)のものも多いようでこれからさらなる発展が期待されます。

ここでは、クイックスタートの指示に従って、GitHub上のコードで試してみます。

今回試してみた環境は以下の通りです。

  • CLion 2018.3.4
  • IntelliJ Rust Plugin v0.2.94.2119-183
  • Rust 1.33.0
  • macOS 10.13.6
  • Xcode 10.1 (IntelliJ Rustのdebuggerが使用)
  • テスト用コード rustlings

インストール

  • CLionをお持ちでない方はこちらから30日試用版が利用可能です
  • IntelliJ Rustプラグイン
    • [Preference]-[Plugins] (またはShiftキー*2 でpluginsを検索)
    • Rustを検索し[Install]

Plugins

プロジェクトの選択と実行

[Open]を選択し、git clone済みのrustlingsコードが含まれるディレクトリを指定します。

Welcome_to_CLion

Rustプロジェクトとして正しく認識されているか確認するため、画面右[Cargo]を開きます。targetsのrustlingsをダブルクリックすると自動的にCargo runしてくれます。

rustlings____work_rust_rustlings__-_____src_main_rs

コード編集支援とナビゲーション

Code Completion/コード補完[Ctrl+Space/^Space]やQuick Documentation Look up/関数リファレンス参照[Ctrl+Q/^J]、Refactoring/各種リファクタリング、定義ジャンブ等はCLionのショートカットやアクションがそのまま使えるようです。

completion

rustlings____work_rust_rustlings__-_____src_main_rs_と_rustlings____work_rust_rustlings__-_____exercises_functions_functions2_rs_png

Inspection/静的解析の設定や実行、Show Intention Action/空気を読む による修正も(対応パターンはまだまだ限られているかもしれませんが)実行可能です。

Preferences_と_rustlings____work_rust_rustlings__-____rustup_toolchains_stable-x86_64-apple-darwin_lib_rustlib_src_rust_src_libstd_sync_mpsc_mod_rs

以下は戻り値と思われる式にセミコロンが付いているため、戻り値の方が合わない警告に対するShow Intention Actionによる修正例です(参考:Rustの関数の戻り値について)。

Intention

デバッグ

既に「プロジェクトの選択と実行」の箇所でCargo runを実行済みであれば、Run/Debug構成はできていると思いますので(なければこちらを参考にRun/Debug Configurationを設定してください)、あとはブレークポイントをセットして、虫のマークアイコンからDebugを開始することができます。

注意が必要なのは、現在デバッガ機能は(IntelliJ Rustという名前にもかかわらず)CLionでのみサポートしているということです。理由はRustのデバッグ機能は、LLDB/GDBを使用したネイティブコードに対するデバッグ機能が必要であるためです(IntelliJ IDEAにはその機能はありません)。また(今回はmacOS環境で試していますが)Windows環境の場合、MSVCではなくGNU Rust toolchainが必要であることに注意が必要です(参考 IntelliJ Rust Issueへのリンク)。

debug

おわりに

私にとっても「はじめてのCLion+IntelliJ Rust」ということで、簡単に紹介しました。これから試される方が「完全に理解できるよう」参考になっていれば幸いです。また、既に使い込んでいる方は、こんな便利機能がある等シェアいただけると嬉しいです。

IntelliJ Rustはまだまだ発展途上な雰囲気もありますが、ダウンロード数は着実に増えており、特にデバッガサポート以降、CLion+IntelliJ Rustの組み合わせで使われているケースが一番多いようです。また、CLionはC/C++以外にもRustを含む様々な言語をサポートしていますので、この機会に試してみたい方はCLion 30日トライアル版をご利用ください。一方、IntelliJ Rustのデバッガ以外の機能はIntelliJ IDEAを含むCLion以外のIDEで動作しますし、全て無料の環境で使ってみたい方はIntelliJ IDEA Community + IntelliJ Rustというオプションもあります。

本記事への提案や今後「こんな情報がほしい」等ありましたらフィードバックをお待ちしております。

Posted in CLion, IntelliJ Rust | Leave a comment