-
Notifications
You must be signed in to change notification settings - Fork 74
/
TODO.txt
197 lines (176 loc) · 5.64 KB
/
TODO.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
SharpLua TODO
http://lua-users.org/wiki/LuaFiveTwo
- Documentation
- Simple library extension
- compression library (separate project), using IExtendFramework
X set "..." to command line args in _G
- Lists
- new icon
X set - set (table, key, value)
X table.removeitem - removes an item from a table
? Implicit 'self' arg
- ++, --
- Change LASM library to be a wrapper for the LuaAssemblyTools library
Parser/Lexer
X option to continue parsing after a parse error (add to error list)
- allow embedded LASM (would require the new compiler)
- Link tokens together? (Next/Previous)
Modify Parser to handle [,] differently, so it can be ExactReconstructed
X Modify exact reconstructor to check comments/ws before reconstructing
! then work exact reconstructor comment/ws logic into the other reconstructors
! - not in the LuaCompat
X Port LuaAssemblyTools to c# and use in #lua (SharpLua.LASM)
(some of the following is for an SD/VS/Standalone ide thing, other stuff isn't. its not sorted well)
Supported files:
LASM, #Lua, Lua, MetaLua, [S]Luac (LASM Editor?)
- Show Variables based on scope
- Virtual Project
- saves files into <projectname>.vpdata as XML[1]
? Property option for file type, so extensions aren't necessary
- options to convert to/from a VP
- .lvpproj ? Or just .luaproj with VPProj option... Or automatic detection and loading of VPProj data files in any project type...
- automatic git version control, all changes to files are logged and you can revert to a previous or future (if reverted) version painlessly.
Directory structure:
.git
<git repo>
.MAIN
<files>
[when a file is added, changed, removed, etc. automatically update git]
[1] - XML with binary data? Hmm... Might need a different or custom format. A zip with actual files inside? Maybe.
Supported Compilers/Debuggers
- Standard SharpLua compiler
- SharpLua interpreter
- MetaLua compiler
- Lua compiler
- Lua interpreter
- custom (specify file path and command line)
- KopiLua compiler/interpreter
- ManagedLua interpreter
- Lamn compiler/interpreter
- AluminumLua
- SilverLua (Lua for XBox)
- Java Lua compilers/interpreters
- IronLua compiler/interpreter
- Yeuliang compiler
- LuLu vm interpreter
- LBI interpreter
- Kahlua
- ModMaker.Lua
- Other random Lua compilers/interpreters
? bundle MetaLua with SDAddIn
X Rename variables/functions (options for in comments/strings also)
- do a regex check to see if it worked. If it didn't, prompt user to send report data.
X Find unused variables
X Find misspelled variables(only used once, similar to other var names)
X Goto Definition
- Find eternal loops
X Optimize simple functions to inline functions
- Find functions with only some return paths
- Find code that will never be run
- Find All References (to a variable)
X Change line breaks (\n, \r, \r\n) (In FormattingOptions)
- Comment documentation/intellisense
- LuaDoc
- LDoc
- ExpLua
- SharpLua comment (XML/.net style)
- Indentation/formatting
- minified
- beautified
- tabs to spaces
- Convert
- SharpLua to C#
- Lua to SharpLua
- Rbx.Lua to SharpLua
- MetaLua to SharpLua
- C# to #Lua
- WinForms/Wpf designer
- Asp/Web integration
- MSBuild task to build luac/dependencies
- Build release module
- compile to luac
- copy dependencies to output folder
- minify/beautify/create Lua compatible output Lua files
- XFuscate output
? generate exe
- generate luarocks file
- Have .net file dependencies
- Watch window/variables window
- Comment/String spell checker
- Comment/Uncomment selection/line
- if one line, use --, if multiple lines use --[[
- Fold blocks
? Live building
- Live coding window while program is running
- LuaPad #Lua interactive
- LuaPad LASM interactive
- String Pattern Editor
- View file outline
- Highlight selected word
- LASM editor
- edit actual LASM
- edit constant table
- edit local's names
- edit/remove other debugging info
- view/edit LASM of running Lua project
- Rip Scripts/LocalScripts from rbxm/rbxl files
X XFUSCATOR
- Zip/Rar/7z/Tar.Gz project
- compare files
- exclude white space (for reconstruction/beautifying debugging purposes)
- line by line comparison
- exclude comments
- compare Ast's
- "Smart sort" file extensions in dialogs
- Surround with
- surround selection, block, line
- Documentation files
- Sample projects (#lua sln)
- templates
- Lua
- Hello World
- Empty File
- Sample Module
- #Lua
- Hello World
- Empty File
- Sample Module/library
- Empty Class
- Sample Clr Integration
- Sample Web Page
- Sample "sandbox" (using the github one I found)
- LASM
- hello world sample
- empty file
- #Lua Projects
- Basic Project
- Empty project
- WinForms project
- Wpf project
- Web Site project
- LASM Project
Code Snippets
- if/then, if/then/elseif, if/then/else
- do/end
- while/do
- repeat/until
- nfor (numeric for)
- gfor (generic for)
- function (anonymous, inline, std)
-
- require
- class
Class:
local? <name> = {
new = function(self, ...)
local n = { }
setmetatable(n, self)
return n
end,
}
setmetatable(<name>, { __index = <super/base class> })
--[[
Example usage:
local c = Class:new()
print(c:DoSomething())
]]