2010-03-06 2 views
4

직장에서 COBOL/BASIC IDE로 작업하기 시작했습니다. 현재는 메모장과 약간의 단계가 있습니다. 그것은 C#에서 만들거야. 관리팀은 실제로 Visual Studio 유형 기능을 구현하는 데 관심이 있으며 큰 것은 코드 접기입니다. MSDN을 살펴 보았지만 선을 접거나 확장/축소 단추를 추가하는 좋은 방법은 없었습니다.C#에서 코드 폴딩을 구현하는 방법

텍스트 영역이 RichTextBox 여야한다고 가정합니다. 내가 여기서 추적하고 있니? 나는 그것이 일종의 수정 된 TreeView로 할 수 있다고 생각하지만, 그것은 나에게 약간 잘못된 것 같다. 이 일을하는 몇 가지 방법이 있습니까?

+3

Eclipse COBOL 플러그인을 사용하지 않는 이유는 무엇입니까? –

+0

(편집 : 여기에 의견을 올렸습니다.) 불행히도 우리 회사는 새로운 것에 대해 매우 편집 적이며, 사용 승인 된 외부 소프트웨어를 얻으려고 시도하는 것은 사실상 불가능합니다. 또한 독점적 인 버전 제어 시스템과 통합해야합니다. 본질적으로 사내에서 제작 한 것이 아니라면 익숙하지 않습니다. 우리는 C++과 MFC의 편차가 너무 많이 변경된 것으로 간주하기 때문에 상위 관리에서 C#을 사용한다는 사실을 숨길 필요조차 있습니다. 이 프로젝트의 승인을받은 것이 기적입니다. – ctoneal

+1

@ctoneal : 귀사는 현재 Visual Studio를 사용하고 있습니까? 그것은 당신의 버전 관리와 통합됩니까? 그렇지 않다면 버전 컨트롤과 통합되는 것을 사용하고 있습니까? –

답변

2

완전한 IDE를 작성하는 것은 큰 작업입니다. 기존의 오픈 소스 IDE에 적응 시키거나 원하는 것을 가지고있는 기존의 것을 찾으려고하는 것이 좋습니다.

질문에 답변 : Visual Studio IDE에서는 리치 텍스트 컨트롤이 아닌 처음부터 작성된 사용자 지정 컨트롤을 사용합니다.

11

기존 IDE를 사용하고 확장하지 않는 이유는 무엇입니까? 처음부터 하나 작성하는 것은 거대한 사업으로 (파서, 렉서, 구문 형광펜 등이 필요합니다.) 여러 언어 (COBOL 및 기본을 언급 함)를 지원해야하는 경우 더욱 복잡합니다.

Notepad++에는 구문 색 지정이 있고 하나는 언어를 추가 할 수 있습니다. COBOL은 기본적으로 설치되는 언어 중 하나입니다. 코드 폴딩을 지원하며 많은 플러그인을 제공합니다 (사용자가 직접 작성할 수 있으므로 필요에 맞게 작성할 수 있습니다).

편집 : Eclipse 비슷한 지원을하고 또 다른 훌륭한 IDE, 그리고 코멘트에 언급 된 바와 같이 COBOL 플러그인을 가지고있다.

+2

@ctoneal - 귀하의 제약에 대해 듣고 죄송합니다. Visual Studio 코드 접기는 맞춤식입니다. 일부 오픈 소스 IDE 코드 (Notepad ++, Eclipe, SharpDevelop, MonoDevelop)를 살펴보고 구현 된 방법을 살펴 보겠습니다. 그것은 당신에게 아이디어를 줄 것입니다. – Oded

6

SharpDevelop을 살펴 보시기 바랍니다. Visual Studio는 이미 내장 된 기능과 매우 흡사합니다. C#으로 작성되었으며 여러 언어로 된 구문 강조 기능을 통해 코드 폴딩을 완벽하게 지원합니다. 또한 LGPL 라이센스하에 오픈 소스입니다. 따라서 SharpDevelop에 기반하지 않으려면 코드 에디터 나 윈도우 툴킷과 같은 컨트롤을 재사용 할 수 있습니다.

처음부터 시작하는 대신 SharpDevelop에 COBOL 언어를 추가하는 것을 고려해야합니다. 이렇게 할 수 없다면 SharpDevelop 코드를 사용하여 좋은 IDE를 만드는 방법에 대한 훌륭한 참고 자료로 사용할 수 있습니다.

+1

와우, 3 가지 의견 모두 내 대답을 입력 할 수있는 것보다 짧은 시간에 "IDE를 다시 발명하지 마십시오"라고 말했습니다 ... –

4

Eclipse 또는 완전한 편집기를 포함하는 것이 적절하지 않은 경우가 있습니다. 과잉 또는 과체중이거나 다른 이유로 잘못되었습니다. 나는 에 다른 포스트에서 건의되는 첫번째 성향을 여기에서를 다시 발명하지 않는 감사한다, 그러나 어떤 경우에는 작은 발명품은 필요한 무슨이다. 예를 들어 스택 오버플로 게시물을 만드는 데 사용되는 텍스트 상자는 Eclipse 또는 포함 된 Visual Studio가 아닙니다. 왜 그런지 궁금해?

질문 - 을 작성하거나 구매하는 것이 중요합니다. - 가끔 정답은 IT를 구축하는 것입니다.


XPathVisualizer이를 RichTextBox에 C#으로 구현하고, 기반 코드 접는 텍스트 편집기의 간단한 예를 제공합니다. VB는 아니지만 XML 편집기입니다. 그러나 일반적인 원칙이 적용됩니다.

다음은 살펴 봅니다.사용자 유형, 그것은 별도의 백그라운드 스레드를 사용하는 반면

alt text http://i29.tinypic.com/1zwp5ix.jpg

는 동적으로 XML 구문 색상 지정을 구현합니다. 그 이유와 이유 중 일부는 in a separate answer on Stack Overflow으로 설명됩니다.

당신은 COBOL/VB와 비슷한 것을 할 수 있습니다. XPathVisualizer는 MS-PL 라이선스가있는 오픈 소스이므로 찾아 보거나 빌릴 수 있습니다.

+0

전체 IDE에 대해 투표하지 않았습니다. 강조 표시, 중괄호 일치 및 코드 축소), 전체 SDK가 포함 된 고품질 IDE 이외의 것을 시작하는 데는 완전히 시간을 낭비합니다. –

+0

upvoted (9 문자) –

+0

@ 280Z28, 나중에 동의합니다. 전 기능 IDE를 구축하는 데 수백만 달러가 들지만 RichTextBBox로 시작하면 그 작업은 바보가됩니다. 그러나 때때로 "IDE"는 "Visual Studio와 동등한 IDE"를 의미하지는 않습니다. 필자가 편집자와 함께 도구를 제작 한 내 직업에서는 제한된 범위 였고 범위가 제한적이었습니다. 기본적으로 메모장 플러스 코드 접기. 기본 기능을 사용하기 위해 Eclipse 또는 VS를 번들로 제공 할 가치가 없습니다. – Cheeso

3

"Visual Studio 기능"에 익숙하다면 Visual Studio를 사무실에서 사용한다고 가정합니다. 다음과 같은 이유로 비주얼 스튜디오에 당신의 IDE

  • 자료, :
    • 를 사용하여 비주얼 스튜디오 2010 가능하면 여기 내 제안입니다. SDK는 입니다.은 2008/이전 버전입니다.
    • 그렇지 않으면 Visual Studio 2008/2005을 사용하십시오. 현재 상용 IDE 제품은 모두 2005/2008 만 지원합니다.
    • 팀에서 Visual Studio를 사용하는 경우 Eclipse를 싫어할 것입니다. 이 경우 을 고려하지 않아도됩니다.기존 Eclipse 플러그인을 사용하지 않으면 새 IDE를 만들 시간이 절약됩니다. 팀이 비주얼 스튜디오 2010을 사용하지 않는 경우
  • , 당신은 비주얼 스튜디오 무료 통합 모드 2010 셸 (격리 모드 당신이 원하는 것을하지입니다)를 사용할 수 있습니다. 이제는 IDE 용 Visual Studio 2010을 사용할 수 있습니다. 팀이 나중에 Visual Studio 2010 정식 버전 중 하나로 업그레이드하면 해당 언어 용 IDE가 정식 버전에 완전히 통합됩니다. 편집 : Visual Studio Shell은 기본적으로 특정 언어 (C#, C++, VB 등)가없는 Visual Studio의 핵심입니다. Microsoft는이 코어를 무료로 제공하며 특히 자신의 언어 지원을 만드는 데 관심이있는 사람들에게 유용한 옵션입니다.

다음과 같은 두 가지 질문에 내 대답을 읽어

+0

@ 280Z28 : 좋은 답변입니다. Visual Studio Shell에 대한 설명과 Visual Studio가 이미 Shell + Extensions라는 사실이 더 좋습니다. VSX에 익숙하지 않은 독자는 이것이 가능하다고 믿을 수 없습니다. –

+0

조금 뒤돌아 보면 Visual Studio Shell을 사용하고 언어 지원으로 확장하는 것이 의미가 있다고 보입니다 (관리가 승인할지 여부는 또 다른 이야기입니다). 왜 분리 모드가 필요하지 않습니까? 차이점에 대해서는 분명하지 않습니다. 미래 VS에 다시 통합 할 수있는 능력을 전적으로 기반으로합니까? – ctoneal

+0

@ctoneal : Visual Studio 2005를 확장하면 새로운 소프트웨어를 도입 할 필요가 없습니다 (새 셸을 승인하지 않아야 함). 격리 된 모드는 * 전체 * 환경 (모든 메뉴, 대화 상자 등)을 다시 브랜드화/사용자 정의하려는 경우 사용자 정의하기가 더 쉽습니다. 대부분의 경우 추가 오버 헤드 일뿐 아니라 통합 모드 *는 향후 VS로 다시 통합하기가 더 쉽습니다 (격리 모드는 VS로 다시 통합하지 않으려는 사람들을위한 것입니다). –

관련 문제