1 of 18

Introduction of Steep-1.5

Takeshi KOMIYA (@tk0miya)

at TokyuRubyKaigi #14 (2023/7/29)

2 of 18

自己紹介

  • 小宮 健 (Takeshi KOMIYA)
    • @tk0miya
  • CTO of TIME INTERMEDIA, Inc.
    • We’re hiring!
  • OSS Developer
    • Sphinx�(Python 製ドキュメンテーションツール)
    • pycmark�(Python 製 Markdownパーサー)
  • 書籍
    • Sphinx をはじめよう (オライリー・ジャパン)

2

3 of 18

先日、Steep-1.5 がリリースされました🎉

3

4 of 18

先日、Steep-1.5 がリリースされました🎉

  • 今日は Steep-1.5 の紹介をします

4

5 of 18

先日、Steep-1.5 がリリースされました🎉

  • 今日は Steep-1.5 の紹介をします
  • 個人的な注目ポイント
    • シグネチャ表示の進化
    • 入力補完の進化
    • silent モードの導入

5

6 of 18

ポイント1: シグネチャ表示の進化

6

7 of 18

ポイント1: シグネチャ表示の進化

  • コメントがあると上手く動かない問題の修正
  • カーソル位置に応じた引数のハイライト
  • 入力途中にシグネチャ表示が消える問題の修正

7

8 of 18

ポイント2:入力補完の進化

  • キーワード引数の補完に対応

8

9 of 18

ポイント2:入力補完の進化

  • ぼっち演算子利用時のサジェストを強化

9

10 of 18

ポイント3:silent モードの導入

  • 型が不完全な状態でSteepを動作させると、warning/info が大量に出ていた
    • VSCode では問題タブが埋もれてしまっていた

  • LSP の機能だけを利用できるよう、silent モードが導入された
  • 型が不完全でも、恩恵を受けられるように!

10

11 of 18

Steep-1.5 の個人的に大きな変更

  • これまで
    • 型チェックツールに LSP がついていた
    • 型チェック機能がベース
  • これから
    • 型チェック機能が optional になった
    • 型チェック機能と LSP、好きな方が使える

11

12 of 18

型のゆるやかな導入

  • これまで
    • All or Nothing
  • これから
    • 型チェック or 入力支援 or Nothing
    • 途中の段階ができた

12

13 of 18

型のゆるやかな導入

  • 詳しくは「段階的に型を導入しよう」を見てね
    • #kawasakirb

13

14 of 18

katakata_irbもゆるやかな導入の選択肢

14

15 of 18

型の自動抽出も進めています

  • ソースコードから型を自動抽出するツールの改善も進めています
    • rbs
    • rbs_rails
    • rbs_draper
    • rbs_active_hash
    • など
  • 個人的なゴール
    • 手をかけずに型を抽出して
    • 入力支援をリッチにする
    • 型はなるべく書かない

15

16 of 18

まとめ

  • Steep-1.5 がリリースされました
    • 入力支援機能が強化されています
    • 型チェックが無効化できます
    • その他にもたくさん修正があります
  • 型の自動抽出を強化しています
  • すべてはゆるやかな型導入のために
    • 型を書かなくてもそれなりに便利に
    • 書いたらもっと便利に

16

17 of 18

おまけ: 紹介した機能はわたしが作りました

17

18 of 18

Introduction of Steep-1.5

原題:型を書かない型の導入のすすめ

Takeshi KOMIYA (@tk0miya)

at TokyuRubyKaigi #14 (2023/7/29)