Ctags: Typescript : ํƒœ๊ทธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Œ

์— ๋งŒ๋“  2020๋…„ 04์›” 04์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: universal-ctags/ctags

ํŒŒ์„œ์˜ ์ด๋ฆ„ : Typescript

ctags๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•œ ๋ช…๋ น ์ค„ :

$ ctags --options=NONE -e src/index.ts

์ž…๋ ฅ ํŒŒ์ผ์˜ ๋‚ด์šฉ :

import * as three from "three";

let scene: three.Scene,
  camera: three.PerspectiveCamera,
  renderer: three.WebGLRenderer;
const cubeArr = new three.Group();

// TODO: Add lighting
const setupScene = (): void => {
  scene = new three.Scene();
  camera = new three.PerspectiveCamera(
    75,
    window.innerWidth / window.innerHeight,
    0.1,
    1000
  );

  renderer = new three.WebGLRenderer();
  renderer.setSize(window.innerWidth, window.innerHeight);
  document.body.appendChild(renderer.domElement);
  camera.position.z = 20;
};

// TODO: Position the cubes in the center of the screen
const createCubeArr = (): void => {
  let cubes;

  for (let i = 0; i < 5; i++) {
    for (let r = 1; r < 5; r++) {
      cubes = createCube();
      cubes.position.set(i * 3, r * 2, 0);
      cubeArr.add(cubes);
    }
  }
  cubeArr.position.set(-5, -5, 0);
  scene.add(cubeArr);
};

// TODO: Receive shadow
const createWall = (): void => {
  const geometry = new three.PlaneGeometry(20, 20, 20);
  const material = new three.MeshBasicMaterial({
    color: 0x0000ff,
    side: three.DoubleSide,
  });
  const mesh = new three.Mesh(geometry, material);
  scene.add(mesh);
};

const createCube = (): three.Mesh => {
  const geometry, material;
  geometry = new three.BoxGeometry(1, 1, 1);
  material = new three.MeshBasicMaterial({
    color: 0x00ff00,
    side: three.DoubleSide,
  });
  const cube = new three.Mesh(geometry, material);
  return cube;
};

const animate = (): void => {
  requestAnimationFrame(animate);
  renderer.render(scene, camera);
};

setupScene();
createCubeArr();
createWall();
animate();

๋งŒ์กฑ์Šค๋Ÿฝ์ง€ ์•Š์€ ํƒœ๊ทธ ์ถœ๋ ฅ :


src/index.ts,134
let scene: three.Scene,scene3,33
const cubeArr = new three.Group();cubeArr6,125
const setupScene = (): void => {setupScene9,183

์˜ˆ์ƒ ํƒœ๊ทธ :

๋‹ค๋ฅธ ๋ชจ๋“  const ๋Š” ๊ฐ์ง€๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

ctags์˜ ๋ฒ„์ „ :

$ ctags --version
Universal Ctags 0.0.0(6dd6c735), Copyright (C) 2015 Universal Ctags Team
Universal Ctags is derived from Exuberant Ctags.
Exuberant Ctags 5.8, Copyright (C) 1996-2009 Darren Hiebert
  Compiled: Apr  4 2020, 01:05:26
  URL: https://ctags.io/
  Optional compiled features: +wildcards, +regex, +iconv, +option-directory, +xpath, +case-insensitive-filenames, +packcc

ctags ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์–ด๋–ป๊ฒŒ ์–ป์Šต๋‹ˆ๊นŒ?

Universal-ctags / homebrew-universal-ctags ํ”„๋กœ์ ํŠธ์—์„œ ๊ฐ€์ ธ์˜จ ๋ฐ”์ด๋„ˆ๋ฆฌ

Parser buenhancement

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์‹ ๊ณ  ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์‚ดํŽด ๋ณผ๊ฒŒ์š”.

๋ชจ๋“  3 ๋Œ“๊ธ€

์‹ ๊ณ  ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์‚ดํŽด ๋ณผ๊ฒŒ์š”.

@ksamborski , ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค, @ksamborski @masatake.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰