Atom language에 CWL 추가

개요



Atom에서 Common Workflow Language을 작성하기위한 신택스 하이 라이터를 원했지만 찾지 못했기 때문에 먼저 만들기 시작했습니다.
  • language-cwl

  • 간단한 기능을 만들고 거기에서 할 수 있다면 여러가지 해보고 싶다.
  • format에서 EDAM이 사용 중이면 어떤 형식이 표시되는지
  • 입력 및 출력 보조 ​​또는
  • 사용 가능한 색인을 저장하거나

  • 준비


    .atom/packages/language-cwl 라는 디렉트를 만들었다.

    atom 을 reload 하면(자), 깨어질 것 같다

    개발 버전 정보



    개발판의 패키지를 넣는 디렉토리도 따로 만들 수 있다.
    이것에 대해서는 나중에 작성할 예정입니다.
    atom -d
    

    그러면 시작하면 개발판 패키지가 사용됩니다.

    language-cwl을 만들 때



    우선, 병아리 디렉토리를 만들었다.
    .
    ├── CHANGELOG.md
    ├── grammars
    │   └── cwl.cson
    ├── LICENSE
    ├── package.json
    └── README.md
    

    package.json


    {
      "name": "language-cwl",
      "version": "0.1.0",
      "description": "CWL support in Atom",
      "keywords": [
      ],
      "repository": {
        "type": "git",
        "url": "https://github.com/manabuishii/language-cwl"
      },
      "bugs": {
        "url": "https://github.com/manabuishii/language-cwl/issues"
      },
      "license": "MIT",
      "engines": {
        "atom": ">=1.0.0 <2.0.0"
      },
      "dependencies": {
      }
    }
    

    grammers/cwl.cson



    우선은, 코멘트 아웃에만 대응.
    다만, 쿼트 속이라든지는 생각하지 않는다.
    'scopeName': 'source.cwl'
    'name': 'CWL'
    'fileTypes': ['cwl']
    'patterns': [
      {
        # comment
        'match': '#.*$'
        'name': 'comment.line.number-sign.cwl'
      }
    ]
    

    결과





    키워드를 강조하고 싶습니다.



    우선, 다음과 같은 것을 생각하고 cwlVersion
    #!/usr/bin/env cwl-runner
    cwlVersion: v1.0
    



    grammers/cwl.cson



    cwl.json을 만들었습니다.
    'scopeName': 'source.cwl'
    'name': 'CWL'
    'fileTypes': ['cwl']
    'patterns': [
      {
        # keyword
        'match': '\\b(cwlVersion)\\b'
        'name': 'keyword.control.cwl'
      },
      {
        # comment
        'match': '#.*$'
        'name': 'comment.line.number-sign.cwl'
      }
    ]
    

    결과




    type(CommandLineTool) 등을 추가

    suppoert.type이 좋은지 여부를 다시 고려해야하지만,
    다음을 patterns에 추가
      {
        # type
        'match': '\\b(CommandLineTool|ExpressionTool|Workflow)\\b'
        'name': 'support.type.cwl'
      }
    

    이렇게하면 다른 색상으로 표시됩니다.

    결과





    개발판 자신 메모



    Atom 재로드는 명령 팔레트에서 Window Reload

    범위 확인



    커서 위치의 범위 확인
    명령으로 Editor: Log cursor scope
    맥이라면 기본 키 바인딩이 할당 된 것 같습니다.
    리눅스나 윈도우라면 할당되지 않았을지도 모른다.

    이하, 실행 화면 Scopes at Cursor 그런데, 현재의 커서 위치의 스코프

    좋은 웹페이지 즐겨찾기