2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

最初にVSCodeのスニペットは作っておこう

Last updated at Posted at 2020-10-28

Next.jsで開発をしていてコンポーネントを新しく作るとき、今まではrafceコマンドしていました。

SampleComp.ts
import React from 'react'

const sample = () => {
  return (
    <div>
      
    </div>
  )
}

export default sample

##でもなんか気に食わない
でも色々気に食わないところがありした。例えば...

・型がついていない
・最初っからdivタグなのは嫌だ
・そもそもrafceってコマンドが気に食わない

##理想
Reactの関数コンポーネントを作るのであればReact Functional Componentってことで頭文字取ってrfc で呼び出したい。
(完成イメージ)

SampleComponent.ts
import React, { FC } from 'react'

export const SampleComp: FC = () => {
  return (
    <>
      <p>this is sample</p>
    </>
  )
}

##そんな時は自作しよう
VSCodeを開いて、設定のUserSnippetsを選択します。
Screen Shot 2020-10-28 at 19.25.36.png

そうすると検索バーが出てくるので、そこで言語を選択します。
(今回はNext.jsでTypeScriptを使いたいのでtypescriptreact.jsonを選択)
Screen Shot 2020-10-28 at 19.27.16.png

するとTypeScriptでReactを書くときのスニペットを設定するjsonファイルが出てくるので、ここに色々書いていきます。
Screen Shot 2020-10-28 at 19.33.16.png

何やらExampleがあるので、それを見てみると
Screen Shot 2020-10-28 at 19.35.14.png

説明すると

 prefix: トリガーとなるコマンドを書く。これを打つとbodyに設定したスニペットが展開される。
 body: ここにスニペットを書いていく。配列にすれば複数行のスニペットが作れる。$1と書いたところに最初カーソルが当たっている。$2, $3としておくと、Tabで移動できる。
 description: 説明文。なくても発動するけど未来の自分のためになるべく書いておこう。

と言うことです。なのでこれを自分好みに書き変えます。

typescriptreact.json
{
  "console.log": {
    "prefix": "cl",
    "body": "console.log($1)",
    "description": "console.log"
  },
  "React Functional Component": {
    "prefix": "rfc",
    "body": [
      "import React, { FC } from 'react'",
      "",
      "export const $TM_FILENAME_BASE: FC = () => {",
      "  return (",
      "    <>",
      "      $1<p>this is sample</p>",
      "    </>",
      "  )",
      "}",
      ""
    ],
    "description": "create React Functional Component"
  }
}

コンポーネント名をファイル名と同期させたい時はVSCode公式が用意してくれるTM_FILENAME_BASE定数を使います。

他にも色々あります。(VSCode公式
 TM_FILENAME 拡張子つきのファイル名
 WORKSPACE_NAME 今のワークスペース名
 CURRENT_MONTH_NAME Julyとかで今月が出てくる

#完成品
いい感じだ
Screen Shot 2020-10-28 at 20.52.27.png

#まとめ
・prefixでコマンド登録!
・bodyにスニペットを書く!
・保存!
・色々変数が使える!

#参考リンク
VSCode公式
https://code.visualstudio.com/docs/editor/userdefinedsnippets

分かりやすかったYouTube動画
https://www.youtube.com/watch?v=KhaQw923268&ab_channel=Code2020

2
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?