Ruby VS 코드 스니펫

스 니펫 작성에 약간의 중독이 있습니다. 다음은 Ruby로 프로그래밍하는 데 사용하기 위해 제가 만든 것 중 일부입니다. VS Code의 스니펫 파일에 자유롭게 추가하세요!

VS Code에 사용자 지정 스니펫을 추가하기 위한 참조:
  • Stack Overflow: How to Add Custom Code Snippets in VSCode
  • VS Code Snippets Docs

  • VS 코드 스니펫 변환에 대한 내 블로그 게시물


  • 내 gif를 기록하는 데 사용하는 프로그램:
  • LICEcap

  • 스니펫 목록


  • Initialize with Variable Assignments
  • Initialize with Attr_Accessor
  • Class Setup
  • All Variable
  • ActiveRecord Model Class



  • 변수 할당으로 초기화

    "Initialize With Var Assign" : {
        "prefix": "init var",
        "body": [
            "def initialize($1$2)",
            "\t${1/^(\\w+)|,\\s(\\w+)/${2:+\n\t}@$1$2 = $1$2/g}$0",
            "end"
        ]
    }
    

    Purpose: creates initialize method for a class, taking arguments which are assigned to class-scoped variables

    Demo:


    어떻게:

  • 접두사: "init var"

  • Tabstop 1: 클래스 변수로 설정해야 하는 매개변수를 쉼표로 구분하여 입력합니다.
  • 이 탭 정지
  • 에서 탭으로 이동하면 형식이 업데이트됩니다.


  • Tabstop 2: 클래스 변수로 설정하면 안 되는 매개변수를 쉼표로 구분하여 입력합니다
  • .

  • Tabstop 0: 초기화 메서드 끝에 커서가 있음



  • Attr_Accessor로 초기화

    "Initialize With Attr" : {
        "prefix": "init attr",
        "body": [
            "attr_accessor ${1/(\\w+,\\s|\\w+)/:$1/g}$3",
            "",
            "def initialize($1$2)",
            "\t${1/^(\\w+)|,\\s(\\w+)/${2:+\n\t}@$1$2 = $1$2/g}$0",
            "end"
        ]
    }
    

    Purpose: creates initialize method for a class, as with the prior snippet, but additionally creates attr_accessors for each class variable set

    Demo:



    어떻게:

  • 접두사: "init attr"

  • Tabstop 1: 클래스 변수 및 attr_accessors로 설정해야 하는 초기화 메서드 매개변수를 쉼표로 구분하여 입력합니다.
  • 이 탭 정지
  • 에서 탭으로 이동하면 형식이 업데이트됩니다.


  • Tabstop 2: 클래스 변수로 설정하면 안 되는 초기화 메서드 매개변수를 쉼표로 구분하여 입력합니다
  • .

  • Tabstop 3: 추가 attr_accessors를 입력하거나 새 줄에 attr_readers와 같은 기타 필요한 코드를 입력합니다
  • .

  • Tabstop 0: 초기화 메서드 끝에 커서가 있음



  • 클래스 설정

    "Class Setup" : {
        "prefix": "class setup",
        "body": [
            "class ${1:${TM_FILENAME_BASE/[^a-zA-Z]*([a-zA-Z]+.*_.*)|[^a-zA-Z]*([a-zA-Z].*)/${1:/pascalcase}${2:/capitalize}/}}",
            "\tattr_accessor ${2/(\\w+,\\s|\\w+)/:$1/g}$4",
            "",
            "\tdef initialize($2$3)",
            "\t\t${2/^(\\w+)|,\\s(\\w+)/${2:+\n\t\t}@$1$2 = $1$2/g}$5",
            "\tend",
            "",
            "\t$0",
            "end",
        ]
    }
    

    Purpose: creates initialize method and attr_accessors, as with the prior snippet, but also creates the containing class definition which derives its name from the filename

    Demo:


    어떻게:

  • 접두사: "클래스 설정"

  • Tabstop 1: 클래스 이름 입력
  • 기본적으로 선행 숫자를 생략하고 파일 이름을 PascalCase(UpperCamelCase)로 설정합니다
  • .


  • Tabstop 2: 클래스 변수 및 attr_accessors로 설정해야 하는 초기화 메서드 매개변수를 쉼표로 구분하여 입력합니다.
  • 이 탭 정지
  • 에서 탭으로 이동하면 형식이 업데이트됩니다.


  • Tabstop 3: 클래스 변수로 설정하면 안 되는 초기화 메서드 매개변수를 쉼표로 구분하여 입력합니다
  • .

  • Tabstop 4: 추가 attr_accessors를 입력하거나 새 줄에 attr_readers와 같은 기타 필요한 코드를 입력합니다
  • .

  • Tabstop 5: 초기화 메서드 내에 추가 코드를 입력합니다
  • .

  • Tabstop 0: 커서가 클래스 정의의 끝에 위치함



  • 모든 변수

    "All Class Variable" : {
        "prefix": "all",
        "body": [
            "\t@@all = []",
            "",
            "${TM_SELECTED_TEXT/(end)$/\n\t\t@@all << self\n\tend/}",
            "",
            "\tdef self.all",
            "\t\t@all",
            "\tend"
        ]
    }
    

    Purpose: for an existing class, creates class-level @@all variable to contain array of class instances, adds instance to array within initialize method, and creates class-level get method

    Demo:


    어떻게:

  • 선택: 방법 정의를 닫는 마지막 단어 "end"를 통해 첫 번째 행의 시작부터 시작하여 방법을 초기화합니다.

  • 참고: 스니펫이 제대로 작동하려면 "끝"이 선택 항목의 마지막 문자여야 합니다. 그렇지 않은 경우 초기화 내의 삽 방법이 생성되지 않습니다
  • .


  • 유형 접두사: "all"

  • Tabstop 0: getter 메서드 끝에 커서가 있음



  • ActiveRecord 모델 클래스

    "ActiveRecord Class" : {
        "prefix": "ar class",
        "body": [
            "class ${1:${TM_FILENAME_BASE/[^a-zA-Z]*([a-zA-Z]+.*_.*)|[^a-zA-Z]*([a-zA-Z].*)/${1:/pascalcase}${2:/capitalize}/}} < ActiveRecord::Base",
            "\t$0",
            "end"
        ]
    }
    

    Purpose: creates basic class definition with inheritance for use with the ActiveRecord ORM gem

    Demo:


    어떻게:

  • 프롬프트: "ar class"

  • Tabstop 1: 클래스 이름 입력
  • 기본적으로 선행 숫자를 생략하고 파일 이름을 PascalCase(UpperCamelCase)로 설정합니다
  • .


  • Tabstop 0: 커서가 클래스 정의 내에 배치됨
  • 좋은 웹페이지 즐겨찾기