Visual Studio Code에서 엿보기
Visual Studio Code에서 Ctrl 클릭 'peek'기능을 기능을 사용하는 방법이 있습니까? 이상적으로는 Ctrl 키를 사용하는 채로 새 탭에서 정의가 포함 된 파일을 보내고 싶습니다.
편집 : 적어도 혼란을 덜기 위해 문제 를 제출 했습니다 . 내 용어가 약간 잘못되었습니다.
두 가지 조치가 있습니다.
- 오른쪽 클릭-> 정의보기
- 마우스 오른쪽 버튼 클릭-> 정의로 이동 (ctrl 클릭에 바인딩 됨)
결혼식 행동은 다음과 가변적입니다.
- PD, 단일 정의
- 정의를 인라인 인터페이스를 제공합니다.
PD, 다중 정의
- 정의를 인라인 인터페이스를 제공합니다.
GtD, 단일 정의
- 정의가 포함 된 파일을 정렬 다.
- GtD, 다중 정의
- 어떤 정의 중 하나를 선택 하고 해당 파일을 모든 정의를 표시하는 인라인 인터페이스를 다 .
마지막을 제외하고 모두 괜찮습니다. 두 가지 작업을 모두 수행하면 다음과 같이 UI가 매우 혼란 스러웠습니다.
다음 동작 중 하나를 수있는 방법이 있어야합니다.
- 어느 하나를 선택하고 해당 파일을 다.
또는 :
- 모든 정의를 오픈 인라인 인터페이스 ( 현재 파일에서 )
이 https://github.com/Microsoft/vscode/pull/68023 을 수정하기 풀 요청을 만들었지 만 위해 그때 VSCode 설치 파일을 패치하는 임시 수정이 있습니다. 모든 업데이트를 다시 적용해야합니다.
편집 : 수정 사항이 vscode에 병합되었습니다. 이후 버전이어야합니다.
이 수정으로 Ctrl + Click은 다음을 수행합니다.
- 정의가 여러 개인 경우 peek 사용
- peek를 사용할 때 편집기에서 가장 일치하는 항목으로 이동하지 않아 자리를 잃게됩니다.
- 정의가 하나만있는 경우 가장 일치하는 항목으로 이동하고 엿보기를 열지 않습니다.
패치가 필요한 기능이 어떻게 생겼는지 알아 내십시오. 방법은
DefinitionAction.prototype._onResult(editorService, editor, model)
VSCode 설치 디렉터리로 이동합니다.
%LocalAppData%\Programs\Microsoft VS Code
VSCode의 검색 기능을 사용하여 모든 파일에서 텍스트를 검색 할 수 있도록 VSCode에서 디렉토리를 마우스 오른쪽 버튼으로 클릭하고 엽니 다._onResult
모든 결과를 검색 하고 평가하여 서명과 본문이 1 단계에서 본 함수에서 기대하는 것과 일치하는지 확인합니다.- 1 단계부터는 기능
_openReference
이 근처에 있음을 알고 있습니다. 이를 사용하여 검색 범위를 좁 힙니다. workbench.main.js
줄 에서 찾았습니다2454
. 대괄호 일치를 사용하여 끝을 찾거나 바로 전에 끝나는 지 확인하십시오.t.prototype._openReference
형식화되었을 때의 함수는 다음과 같습니다 (비동기 func는 statemachine으로 컴파일되므로 소스 유형 스크립트와 같지 않습니다).
t.prototype._onResult = function (e, t, r) { return i(this, void 0, void 0, function () { var i, s, a; return n(this, function (n) { switch (n.label) { case 0: return i = r.getAriaMessage(), o.alert(i), this._configuration.openInPeek ? (this._openInPeek(e, t, r), [3, 3]) : [3, 1]; case 1: return s = r.nearestReference(t.getModel().uri, t.getPosition()), [4, this._openReference(t, e, s, this._configuration.openToSide)]; case 2: (a = n.sent()) && r.references.length > 1 ? this._openInPeek(e, a, r) : r.dispose(), n.label = 3; case 3: return [2] } }) }) }
- 1 단계부터는 기능
함수를 다음 (동일한 버전을 사용하는 경우)으로 바꾸거나 형식을 지정하고이 예제와 유사한 것으로 확인 된 함수를 편집하십시오. 메모
o
변수가 글로벌 \ 윈도우 객체 변경 될 수 있습니다.t.prototype._onResult = function (e, t, r) { return i(this, void 0, void 0, function () { return n(this, function (n) { switch (n.label) { case 0: return r.getAriaMessage(), o.alert(r.getAriaMessage()), this._configuration.openInPeek || r.references.length > 1 ? (this._openInPeek(e, t, r), [3, 3]) : [3, 1]; case 1: return [4, this._openReference(t, e, r.nearestReference(t.getModel().uri, t.getPosition()), this._configuration.openToSide)]; case 2: r.dispose(), n.label = 3; case 3: return [2] } }) }) }
VSCode를 시작합니다. 당신은
Your Code installation appears to be corrupt. Please reinstall
. 톱니 바퀴 아이콘을 누르고Don't Show Again.
이것은 최신 버전에서 수정 된 것 같습니다. 이제 마우스를 FOO
안으로 가져 가면 foo.cpp
일반 툴팁이 표시 #define FOO 2
됩니다. Ctrl을 누르면 메시지가 확장되어 "2 개의 정의를 표시하려면 클릭"이라는 텍스트를 추가하고 Ctrl을 누른 상태에서 클릭하면 요청한대로 미리보기 창이 나타납니다.
CMD+ Click to go to implementation 의 동작을 변경하는 해결 방법을 찾으려고 했지만 아직 솔루션이없는 것 같습니다.
VSCode 문서는 기본적으로 수정 방법없이 정의로 이동하는 집합을 보여줍니다. https://code.visualstudio.com/docs/editor/editingevolved
내 컴퓨터 (Mac)에서 CMD+ 클릭 또는 F12메서드를 참조 정의에 대한 Peek보기로 연결 참조 CMD+ F12는보기없이 구현으로 연결됩니다.
참고 URL : https://stackoverflow.com/questions/41460845/disable-peek-in-visual-studio-code
'ProgramingTip' 카테고리의 다른 글
AvalonEdit : 계단식 HighlightingColorizers (0) | 2020.11.12 |
---|---|
BcdDivide 함수는 Delphi XE 및 XE2에서 다르게 작동합니다. (0) | 2020.11.12 |
사용자 자격 증명을위한 Android 키 체인 (0) | 2020.11.12 |
Sun JDK의 소스 코드는 어디에서 볼 수 있습니까? (0) | 2020.11.11 |
printf를 사용하여 size_t를 인쇄하는 올바른 방법은 무엇입니까? (0) | 2020.11.11 |