심심해서 한동안 손놨던 NezyIDE(가칭) 를 좀 끄적끄적 만들었다.
위키에 정리하다 말다하고 있다.;;
http://nezy.net/wiki/wiki.php/NezyIDE
펼쳐보기
요번 구현에서 주안점을 둔건 save 기능!
하아.. 말하고 보니 별게 아니지만 사실 save 하는 정책 결정하는게 제일 힘들었다. local file 이야 그냥 save 하면 되지만 remote 에 있는 파일(scp 로 가져온 것)을 ctrl + s 누를 때마다 remote 에 저장한다는건 웬지 비효율적인 것 같았다. 그래서 단계를 나누었는데(그래봐야 3단계지만;) 이름하야 신호등!! (재상이가 아이디어를 냈다. 재상이 천재~ 만세~)
일단 modify 하지 않은 remote file 은 일단 에디터 창에서 '녹색' 상태이다. modify 가 시작된 remote file 은 '적색' 상태로 바뀐다. 요기까진 일반 local file 과 같다. 그러나 editing 을 마치고 ctrl + s 를 누르면 remote file 의 경우는 '노란색' 상태로 바뀐다. 신호등의 중간단계인 셈이다. 이는 remote file 의 바뀐 점이 local 에 캐쉬된 파일에만 적용되었음을 나타낸다. editing 과 save 를 계속 번갈아하다 필요한 경우(작업을 끝냈을 때나, 안전을 기하고 싶은 생각이 들었을 때) ctrl + shift + s 를 누르면 remote 에 저장해준다. remote file 은 이 때 '녹색' 상태로 복구되는 것이다.
색깔로 상태를 나타내주고, 더구나 평소 친밀한 색깔이니 그렇게 헷갈리지 않을 것 같다. 좋다. ^-^
remote 에서 파일 갖고 오는 형식이 더 추가될 수 있으니 에디터 종료시에 깔끔하게 하려면 file 의 save 상태를 따로 class 로 빼주는 게 좋을듯하다.(오바?) 지금은 대충 flag 로 해서 지저분;;
에.. 그리고 지금은 단축키로만 되니(-_-;;;) 얼른 메뉴 부분의 보강이 필요하다;; 이거 또 합칠려면 고생 좀 하겠네. 소스가 지저분해서;
vi keybinding 은 내가 쓰는건 거의 다 붙인 듯하다. 근데 editor class 에 임베딩 되버렸으니 따로 떼어내는 작업을 해야 할듯.. 헤헤.. 이제 이걸로 개발해야지 =ㅇ=;;
debug 모듈은 아직 테스트 중이다. gdbserver 와 gdb protocol 을 이용해서 깔끔하게 구현할까도 잠시 생각했지만, 그냥 원래 계획했던 대로 가기로 했다.(emacs 도 그렇게 하니깐!) gdbserver 가 끼어들면 더 복잡해지고 사용자도 귀찮아진다. default 가 최고다;
class browsing 을 아직 제대로 못하고 있으나(DParser 테스트만 하고.. -.-;) 불편한점은 없다. 워낙 폴딩이 잘되서; 전체 폴딩하는거나 레벨따라 폴딩하는 기능만 있어도 class browsing 이 따로 필요 없을 듯하다.(현재 전체 폴딩하는 소스에는 버그가 있다 -_-;) 다만 code auto complete 이 안되고 있으니 아쉬우나마 vi 에서처럼 무식하게 file 내에서의 패턴매칭만 해줄까한다.
font 라든가 하이라이트 색이라든가.. 그런 것들은 모두 내가 임의로 지정해둔걸 사용하고 있다. config 로 일단 빼두긴 했는데 사용자가 바꿀 수 있는 UI 를 입혀야 겠다. config 방식은 생각중인데 아마도 ini 방식이 되지 않을까;
아이콘 까지 내가 그릴려니까 힘들다. 나에게 디자이너를 달라 'o'/
그나저나 wxPython 은 문서 보강이 절실하다. wxWindows 의 chm 문서를 봐도 나오지 않는 컨트롤들이 어찌나 많은지 -.-; 지금은 ASPN 과 구글링에 걸리는 메일링에 의존하고 있다.
맘에 들게까지 나오려면 아직 멀었다. 그래도 한번쯤 릴리즈 해야 하지 않을까 '';
p.s
효정형 노트북 좋군 -ㅇ-;; 나도 Q30 사야징;;
사실 요 글도 지금 학교 도서관에서 괜히 노트북 갖고 할 일 없어서 쓴것;; |