edit.txt 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. //////////////////////////////////////////////////////////////////////////////
  2. //
  3. // To Do
  4. //
  5. //////////////////////////////////////////////////////////////////////////////
  6. - work items
  7. - bugs
  8. - handle the rendering case where start is above top
  9. - virtual spaces
  10. - overwrite mode
  11. - undo/redo
  12. - cut/copy/paste
  13. - scroll window to keep cursor on screen
  14. - F2 to switch between files
  15. - F8 to close an open file
  16. - argument entry
  17. - ctrl-o to open a file
  18. - ctrl-F typing a search argument
  19. - search and replace
  20. - ctrl+y
  21. - tab, shift-tab (indent)
  22. - box selection
  23. - ctrl+n insert spaces
  24. - low priority
  25. - blinking cursor
  26. - integrated command line
  27. - F7 to build
  28. - F6 find next error
  29. - F5 to run app
  30. - what about not using C++ as the internal language
  31. - provide a C++ importer
  32. - provide a C++ exporter
  33. - don't edit in C++ syntax
  34. - how to store
  35. - comments
  36. - types
  37. //////////////////////////////////////////////////////////////////////////////
  38. //
  39. // Features
  40. //
  41. //////////////////////////////////////////////////////////////////////////////
  42. - features
  43. - sections
  44. - proportional font text editor for text files, code with syntax errors
  45. - auto-word wrap for comments, lists
  46. - auto-formated source code
  47. - projects
  48. - contains all of the files in an entire c++ project
  49. - user just edits the project and not the files
  50. - file list
  51. - integrated command line
  52. - macros bound to arbitrary keys
  53. - multiple views into same file
  54. - run build from within editor, find next error
  55. - integration with help
  56. - commands
  57. - character up, down, left, right, page up, page down
  58. - scroll up, down, left, right, page up, page down
  59. - begining/end of file
  60. - begining/end of line
  61. - start selection
  62. - start box selection
  63. - search forward/back
  64. - search and replace
  65. - save file
  66. - open file
  67. - new file
  68. - delete, cut, copy, paste
  69. - cut line
  70. - undo, redo (local & global)
  71. - join lines
  72. - insert spaces
  73. - indent, unindent
  74. - architecture
  75. -
  76. //////////////////////////////////////////////////////////////////////////////
  77. //
  78. // Grammer
  79. //
  80. //////////////////////////////////////////////////////////////////////////////
  81. File:
  82. List of FileObject;
  83. FileObject:
  84. DeclarationStatement
  85. ClassSymbol:
  86. $name [:: ClassSymbol]
  87. Class:
  88. class $(name) [: List of ClassParent,] [{ List of ClassStatement } [List of ObjectDefinition,]] ;
  89. ClassParent:
  90. [public|private] ClassSymbol
  91. ClassStatement:
  92. private:
  93. protected:
  94. public:
  95. DeclarationStatement;
  96. DeclarationStatement:
  97. Class
  98. Typedef
  99. FunctionDeclaration
  100. Definition
  101. FunctionDefinition
  102. Typedef:
  103. typedef Type $(name)
  104. Type:
  105. ClassSymbol
  106. Type*
  107. Type&
  108. (Type)
  109. FunctionDeclaration:
  110. Type $(name) (List of Declaration,)
  111. Declaration:
  112. Type $(name)
  113. Definition:
  114. Type ObjectDefinition
  115. ObjectDefinition:
  116. $name [= Expression]
  117. FunctionDefinition:
  118. FunctionDeclaration Block
  119. Block:
  120. FunctionStatement
  121. { List of FunctionStatement }
  122. FunctionStatement:
  123. break:
  124. continue:
  125. DeclarationStatement;
  126. Expression;
  127. if ( Expression ) Block [ else Block ]
  128. while ( Expression ) Block;
  129. do Block while (Expression)
  130. return Expression;
  131. Expression: