Git Product home page Git Product logo

handson-hello-vscode-extension's Introduction

Hello VS Code Extension ハンズオンテキスト

ハンズオンのターゲットレベル

ターゲット

  • VS Codeを一通り使える方 -> この体験で拡張機能を積極的に作ってみようと思えるようになる
  • 拡張機能の開発経験がある方 -> VS Code拡張機能のコード検証/修正機能,補完機能の実装方法を体験する

ターゲットにしない

  • VS Codeの使い方を知りたい人 -> このハンズオンは "拡張機能開発" をサポートします

事前に準備していただきたいこと

事前準備を見て,VS Codeをインストールし,必要な開発環境を整えてください

進め方

  • VS Code に初めて触られる方は、最初のところから、ご自身のスピードで進めてみてください。
  • 各 Topic の内容を以下に記載していますので、できそうなところはスキップして、気になるところから進めていただいて構いません。
  • 各 Topic 課題が設定されていますが、課題をクリアーしなければいけないことはありません。興味のある部分から進めていただければと思います。

内容がむずかしいと思ったとき

もしこのドキュメントの内容が難しすぎる場合,お気軽にYoutubeのコメントやGitHub Discussionsでご意見をお寄せください. また,以下のリンクから基礎的な学習を行えます.

本ハンズオンではTypeScriptを利用していますが,あまり高度な機能は利用しないため,JavaScript,もしくは他の言語にふれたことがあれば大丈夫です.

参加についての心構え

  • 拡張機能開発には多くのつまづきポイントがあります.操作で悩む所、よくわからないところがあれば、気にせず質問して下さい。
  • 質問はYoutubeのコメントの他,本リポジトリのDiscussionからも受け付けています.
  • 質問にはスクリーンショットも一緒に添付してもらえると回答しやすいです.

コンテンツ

  • 事前準備: 必要な開発環境を整えよう

    • やってもらうこと: VS Code, Node.js 16.xx, Git, Yeoman, ESLintをインストールする,GitHubアカウントを用意してもらう
    • 扱うこと: npmインストールを行う
    • ゴール: 必要な依存関係を揃えること
  • 事前準備: LSPハンズオンの進め方

    • やってもらうこと: ハンズオンで利用する資料の使い方を確認する
    • 拡張機能インストール,CodeTourを起動する
    • ゴール: CodeTourを使えるようになる
  • 予備知識: Language Server Protocol (LSP)とは?

    • やってもらうこと: 拡張機能開発の種類とLSPについて確認する
    • ゴール: LSPの利点や勉強方法を知る
  • 必須: LSP拡張機能を作成しよう

    • やってもらうこと: プロジェクトを作成する,プロジェクトを開く,プロジェクトを起動する
    • 扱うこと:git clone,フォルダを開く
    • ゴール: LSPの構造を理解する
  • コースA: ソースコード検証・修正機能を実装しよう

    • コード検証機能を実装しよう
      • やってもらうこと: LSPを使って3文字以上の大文字を検証する
      • 扱うこと: server.tsの編集,コード検証機能の編集
      • ゴール: エディタ上で該当文字を入力することで言語を検証する
    • コード修正機能を実装しよう
      • やってもらうこと: LSPを使って大文字を小文字に変える
      • 扱うこと: server.tsの編集,コード編集機能の実装
      • ゴール: 目的のリントツールが作成できること

Linterの利用方法

  • コースB: 補完機能を実装しよう
    • やってもらうこと: Visual Studio Code, VS Codeの補完を行う
    • 扱うこと: server.tsを編集,補完機能の実装
    • ゴール: エディタ上で該当文字を入力することで補完を行う

補完機能の利用方法

コースを完了した人向け

拡張機能の基礎を学びたい人向け

  • Hello Worldを作成しよう

    • やってもらうこと: プロジェクトを作成する,プロジェクトを開く,プロジェクトを起動する
    • 扱うこと: vsce,フォルダを開く
    • ゴール: プレーンアプリを作成する
  • Hello Worldを起動しよう

    • やってもらうこと: プロジェクトを作成する,プロジェクトを開く,プロジェクトを起動する
    • 扱うこと: vsce,フォルダを開く
    • ゴール: プレーンアプリを作成する
  • スニペットを追加しよう

    • やってもらうこと: スニペットファイルを作って自動補完機能を作る
    • 扱うこと: スニペットファイルを作成,package.jsonを編集
    • ゴール: 顔文字や絵文字を一瞬で生成する
  • ドキュメントを編集しよう

    • やってもらうこと: コードレンズのボタンからドキュメントを編集する
    • 扱うこと: extension.ts,package.jsonを編集
    • ゴール: コードレンズのボタンからドキュメントを編集する

逆にこのコンテンツでは扱わないこと

  • ウェブビュー
  • キーバインド
  • Webpack
  • カラーテーマ
  • マルチルート

コントリビュータ向けガイド

  • スクリーンショットは以下の環境で撮影する
    • .vscode/settings.json に設定済み
      • Color Theme: Light+(default light)
      • Icon Theme: VS Seti
      • Product Icon Theme: Default
    • Display Language: ja
  • キーボードショートカットを紹介する場合には、macOS: Cmd+P、Windows・Linux: Ctrl+P と、Windows、macOS、Linux の各環境のキーバインドを書くようにする。

カスタマイズに影響を受けずに、このリポジトリを開くには以下のように cli で実行します。

code --extensions-dir ./tmp/extensions --user-data-dir ./tmp/user .

handson-hello-vscode-extension's People

Contributors

74th avatar dafujii avatar ftnext avatar ikuyadeu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

handson-hello-vscode-extension's Issues

Typo: Yaoman

素晴らしいハンズオンテキストをありがとうございます。
環境構築から始め、基礎編の「ドキュメントを編集する拡張機能を作る」まで進められました。
さらにそれを改造して「特定の単語の直後に決まったemojiを追加する拡張機能」が手元で動かせています!

環境構築のテキストの中にYeomanをYaomanとtypoしている箇所があるのに気づきました(2文字目のeをaにtypoしています)。

そこで以下のコマンドからソースコード自動生成ツールのYaomanと、Yaomanのテンプレートパッケージ`generator-code`をインストールします。

※一文の中にtypoが2箇所あります

リポジトリの中を検索していますが、修正対象は上記ファイル内の3箇所のみと思われます。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.