-
Notifications
You must be signed in to change notification settings - Fork 4
/
notebook.json
411 lines (403 loc) · 12.7 KB
/
notebook.json
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
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
v2
{
"cells": [
{
"m_language": "Markdown",
"m_text_out": "",
"m_cell_id": 0,
"m_has_any_error": 0,
"m_completion_time": [
2016,
1,
11,
22,
42,
45,
5
],
"m_button_name": "TODO LIST",
"in_m_current_wrap_width": 512,
"in_m_enable_wrapping": 0,
"out_m_current_wrap_width": 512,
"out_m_enable_wrapping": 0,
"m_is_help_page_preview": false
},
{
"m_language": "Windows BAT",
"m_text_out": "s7res.c\r\n Creating library ./bin/win64/qpad.lib and object ./bin/win64/qpad.exp\r\ncreating FBO: 1920 1017\r\n",
"m_cell_id": 1,
"m_completion_time": [
2017,
0,
6,
0,
12,
50,
6
],
"m_has_any_error": 0,
"m_current_path": "c:/tp/qpad",
"m_button_name": "Debug",
"m_unknown_progress": 0.2935235776647969,
"m_t_unknown_progress": 15708140497,
"in_m_current_wrap_width": 512,
"in_m_enable_wrapping": 0,
"out_m_current_wrap_width": 512,
"out_m_enable_wrapping": 0,
"m_in_budget_ratio": 0.46850590934463726,
"m_project_hotkey": "F5"
},
{
"m_language": "Windows BAT",
"m_text_out": "s7main.c\r\ndmp.c\r\npipe_waiter.c\r\nspaprt_portable.c\r\ns7res.c\r\n Creating library ./bin/win64_release/qpad.lib and object ./bin/win64_release/qpad.exp\r\ns7main.c\r\ndmp.c\r\npipe_waiter.c\r\ns7res.c\r\n Creating library ./bin/win32_release/qpad.lib and object ./bin/win32_release/qpad.exp\r\n\r\n7-Zip [64] 15.14 : Copyright (c) 1999-2015 Igor Pavlov : 2015-12-31\r\n\r\nScanning the drive:\r\n1 file, 4897792 bytes (4783 KiB)\r\n\r\nCreating archive: qpad3beta_32.7z\r\n\r\nItems to compress: 1\r\n\r\n\r\nFiles read from disk: 1\r\nArchive size: 1640843 bytes (1603 KiB)\r\nEverything is Ok\r\n\r\n7-Zip [64] 15.14 : Copyright (c) 1999-2015 Igor Pavlov : 2015-12-31\r\n\r\nScanning the drive:\r\n1 file, 5204992 bytes (5083 KiB)\r\n\r\nCreating archive: qpad3beta_64.7z\r\n\r\nItems to compress: 1\r\n\r\n\r\nFiles read from disk: 1\r\nArchive size: 1734304 bytes (1694 KiB)\r\nEverything is Ok\r\n 1 file(s) copied.\r\n",
"m_cell_id": 2,
"m_has_any_error": 0,
"m_current_path": "c:/tp/qpad",
"m_completion_time": [
2017,
0,
6,
0,
16,
8,
6
],
"m_button_name": "Release",
"m_unknown_progress": 0.27189300115874526,
"m_t_unknown_progress": 16171352666,
"in_m_current_wrap_width": 512,
"in_m_enable_wrapping": 0,
"out_m_current_wrap_width": 512,
"out_m_enable_wrapping": 0
},
{
"m_language": "Unix Shell Script",
"m_text_out": "",
"m_cell_id": 3,
"m_has_any_error": 0,
"m_current_path": "c:/tp/qpad",
"m_completion_time": [
2016,
8,
13,
17,
34,
56,
3
],
"m_button_name": "Translate",
"m_unknown_progress": 0.2270804463794893,
"m_t_unknown_progress": 10629925925,
"in_m_current_wrap_width": 512,
"in_m_enable_wrapping": 0,
"out_m_current_wrap_width": 512,
"out_m_enable_wrapping": 0,
"m_hotkey": "CTRL+ALT+2"
},
{
"m_language": "Unix Shell Script",
"m_cell_id": 4,
"m_button_name": "Update debug",
"m_hotkey": "CTRL+ALT+3",
"in_m_current_wrap_width": 512,
"in_m_enable_wrapping": 0
},
{
"m_language": "Unix Shell Script",
"m_cell_id": 5,
"m_button_name": "Make update (dev)",
"in_m_current_wrap_width": 512,
"in_m_enable_wrapping": 0
},
{
"m_language": "Windows BAT",
"m_cell_id": 6,
"m_button_name": "Upload update",
"in_m_current_wrap_width": 512,
"in_m_enable_wrapping": 0
},
{
"m_language": "Windows BAT",
"m_cell_id": 7,
"m_button_name": "dev -> stable",
"in_m_current_wrap_width": 512,
"in_m_enable_wrapping": 0
},
{
"m_language": "Markdown",
"m_cell_id": 8,
"in_m_current_wrap_width": 512,
"in_m_enable_wrapping": 0,
"m_button_name": "• Search result"
}
],
"m_last_focus_cell_id": 0
}
=====������=====
# TODO LIST
switch to the ConPTY API for terminal emulation once available
ctrl+f without search string: show F2 locations
GPD:
implement the sticky key help
SSH server move up / move down: don't close the menu
more hints for replace UI - put the buttons next to the top-right bar?
hidden notebook hotkey
RegisterApplicationRestart
press home key in markdown list
shared variables between multiple cells - multi-file notebook
infinite history console
compact into string with state metachar when a line gets scrolled out
console - view alternate buffer
close tabs to the right
try, then integrate with WSL
update mac / site, again
weird bookmark display in tophint
bad tophint y0 - the hiding mode has changed!
move to node.js
V8 version of javascript.jc
event loop integration
--
enables embedded sshfs, ssh client, update download, ...
vm-dev: isolate projects in containers, editor / file browser over ssh
per-container backup (snapshot)
per-container devtools
--
move one component at a time
text buffer
renderer
============
dragging subwindows: top-level buttons
virtual cursor:
drag empty lines to the current indent
notebook rendering failure
need to find out the trigger
sticker desync
close / reopen while unsaved... won't be able to replay from those ranges only
alternative method for range enforcing?
update: stable channel
regexp search in terminals
check/uncheck boxes in a sticker wall... or md in general
could use that specific unicode char
\u2610
or - / *
only in notes / stickers
markdown - / * completion
drag failure on gaming machine
sticker code:
edge + go-along-edge hotkey
shift-sell
connecting the same name in different stickers
manually provide add-templates as local comments? co-call by name then co-replace params
could even allow scripts
C struct -> JSON construction, etc.
better provided as separate nodes?
or local editing buttons
auto-deduce is kinda hard
could store code template / code generator as sticker scripts
code templates? not sticker's job...
tool that parses and extracts example code / ... from web documentation?
help consolidation engine
keyword-based example code
doxygen-like param comments
baked help database
memory leak
file view class list
searchable classes
style enforcement
potentially per-project
or per-file with a default
space rules enforcement
let the parser decide
maybe also enforce it in the find bar
iOS bluetooth keyboard support
- keyCommands
stop / clear buttons in notebook v2
notebook - define per-cell hotkey, hotkey indicator on button
touch: scrolling, touch detection, ac modes, mouse over, typos
touch-awareness
tab switch
to previously edited file?
navigate backward - but it isn't reliable for this
an option
release on github, again
linux buildable source .tar.gz
build-it-yourself release
remove the help system?
links in help
code beautifier
AC plugins
clang
tex ref
bash
js member name in certain strings
--
multi-source combination
some candidates may smash a context
put this in as a property of the candidates
HTML tag properties, CSS
providing explanation in AC sources
put plugins in ~/.qpad
make top hint / notification dodge MouseOver / cursor
swap ctrl+shift+v and ctrl+v?
binary editor reloading?
rendering
true AA for roundrect
tex
port more of deferred.qpadscript
enabling/disabling plugins in menu
CJK PPM:
work in conjunction with IME?
could have blind prediction...
iphone prediction isn't that useful
--
or LSTM
binary editor
duk buffer size limit
notebook cell ops undo/redo
nested directory in the file browser
`#pragma region` folding
a few built-in themes
~/.qpad_debug/theme_dark1.json
mac
zoom hotkey
system menu
Unicode-aware case handling
we don't want to screw up the case insensitive performance
for non-familiar users:
more concise system for translation / hotkey scripts
[ new window ] and [ button: ... ] in help
peek definition:
CEO and hide cannot overlap
drag-out support
SDL mouse support is garbage, disable it for now
propagate unique_id on split
window-awareness in SetFocus and stuff
actually dragging things *out*
upgrading <layout> from old metadata
flashing / activating the right window
on-boarding:
Maya-like "highlight new" in menus
explicit diff visualization
autoedit stuff + diffupdate
[interactive] in windows bat
fails on Qin Hao's machine
auto-resize tab terminals
it's possible to auto-identify repetitive patterns
DP state: the set of matched frontiers
DP goal: maximize weighted area
DP transition: add a new token after the 0th frontier. The token is chosen from the original code
=====������=====
@echo off
rem [interactive]
rem build script for the project
rem [button: Debug]
chcp 65001 >NUL
rem set LANG=zh_CN.utf8
jc --readable_c_code -awin64 qpad.jc --run
=====������=====
@echo off
rem build script for 'qpad.jc'
rem [button: Release]
chcp 65001 > NUL
rem git diff-index --quiet HEAD || ( echo Please commit your changes first && exit )
git log --pretty=format:%%H -n 1 > res/misc/commit.txt
jc -brelease -awin64 qpad.jc
jc -brelease -awin32 qpad.jc
rem jc -brelease -amac qpad.jc
cd bin\win32_release
del qpad3beta_32.7z
7z a qpad3beta_32.7z qpad.exe
cd /d c:\tp\qpad
cd bin\win64_release
del qpad3beta_64.7z
7z a qpad3beta_64.7z qpad.exe
del c:\software\cmder\bin\qpad_old.exe
ren c:\software\cmder\bin\qpad.exe qpad_old.exe
copy qpad.exe c:\software\cmder\bin\qpad.exe
=====������=====
#!/bin/sh
#[button: Translate]
#[hotkey: CTRL+ALT+2]
# After this is done, re-run qpad to generate 'translation.json'
cd /c/tp/qpad/res
grep -ERoh text:\(\([\"][^\"]+[\"]\)\|\([\'][^\']+[\']\)\) * > ../build/translation.txt
grep -ERoh UI\._\\\(\(\([\"][^\"]+[\"]\)\|\([\'][^\']+[\']\)\)\\\) * >> ../build/translation.txt
grep -ERoh UI\.Format\\\(\(\([\"][^\"]+[\"]\)\|\([\'][^\']+[\']\)\), * >> ../build/translation.txt
grep -ERoh tooltip:\(\([\"][^\"]+[\"]\)\|\([\'][^\']+[\']\)\) * >> ../build/translation.txt
grep -ERoh ,name:\(\([\"][^\"]+[\"]\)\|\([\'][^\']+[\']\)\) * >> ../build/translation.txt
=====������=====
#!/bin/sh
#[interactive]
#[button: Update debug]
#[hotkey: CTRL+ALT+3]
VERSION_CODE=`egrep -m 1 "g_core_version" res/main.js | egrep -o "[0-9][0-9.a-zA-Z]*"`
VERSION_NOTES=`egrep -m 1 "Version ([0-9.a-zA-Z]+)" build/update.qpad_notebook | egrep -o "[0-9][0-9.a-zA-Z]*"`
if [ "${VERSION_CODE}" != "${VERSION_NOTES}" ]; then
printf "Error: version mismatch\n VERSION_CODE = ${VERSION_CODE}\n VERSION_NOTES = ${VERSION_NOTES}\n"
exit
fi
echo '=== Buiding qpad'
jc --readable_c_code -awin64 qpad.jc || exit
UPLOAD_NAME="qpad_${VERSION_CODE}_win64.xz"
if [ "bin/win64/qpad.exe" -nt "update_server/public/${UPLOAD_NAME}" ]; then
echo '=== Compressing package'
xz -c bin/win64/qpad.exe > "update_server/public/${UPLOAD_NAME}"
fi
MAIN_PACKAGE_HASH=`sha512sum update_server/public/${UPLOAD_NAME} | cut -d ' ' -f 1`
echo "=== Updating test server"
cat build/update.qpad_notebook | sed "s/__HASH__/${MAIN_PACKAGE_HASH}/" | gzip > update_signing/u_unsigned.gz
node update_signing/signit.js update_signing/u_unsigned.gz update_server/public/u_dev
cp update_server/public/u_dev update_server/public/u_stable
rsync -rtzzuvq update_server/* [email protected]:~/update_server/
ssh -n -f [email protected] 'killall server.js; cd update_server; chmod +x server.js;nohup ./server.js > /dev/null 2>&1 &'
rm ~/.qpad_debug/update*
echo "=== Done"
=====������=====
#!/bin/sh
#[interactive]
#[button: Make update (dev)]
#####################
VERSION_CODE=`egrep -m 1 "g_core_version" res/main.js | egrep -o "[0-9][0-9.a-zA-Z]*"`
VERSION_NOTES=`egrep -m 1 "Version ([0-9.a-zA-Z]+)" build/update.qpad_notebook | egrep -o "[0-9][0-9.a-zA-Z]*"`
if [ "${VERSION_CODE}" != "${VERSION_NOTES}" ]; then
printf "Error: version mismatch\n VERSION_CODE = ${VERSION_CODE}\n VERSION_NOTES = ${VERSION_NOTES}\n"
exit
fi
GIT_RESULT=`git diff-index HEAD | grep -v notebook.json`
if [ "${GIT_RESULT}" != "" ]; then
printf "Please commit your changes first\n"
exit
fi
git log --pretty=format:%H -n 1 > res/misc/commit.txt
####################
echo '=== Buiding qpad'
jc -brelease -awin64 qpad.jc
UPLOAD_NAME="qpad_${VERSION_CODE}_win64.xz"
#UPLOAD_DIR="update_server/public"
UPLOAD_DIR="../qpadsite/update"
if [ "bin/win64_release/qpad.exe" -nt "${UPLOAD_DIR}/${UPLOAD_NAME}" ]; then
echo '=== Compressing package'
xz -c bin/win64_release/qpad.exe > "${UPLOAD_DIR}/${UPLOAD_NAME}"
fi
MAIN_PACKAGE_HASH=`sha512sum ${UPLOAD_DIR}/${UPLOAD_NAME} | cut -d ' ' -f 1`
echo "=== Updating ${UPLOAD_DIR}"
cat build/update.qpad_notebook | sed "s/__HASH__/${MAIN_PACKAGE_HASH}/" | gzip > update_signing/u_unsigned.gz
node update_signing/signit.js update_signing/u_unsigned.gz "${UPLOAD_DIR}/u_dev"
echo "=== Done"
=====������=====
@echo off
rem [interactive]
rem [button: Upload update]
cd ..\qpadsite
git add update/*
git commit -a -m "update release"
rsync -rtzzuvq update/* [email protected]:~/qpad_update/public/
git push origin gh-pages
=====������=====
@echo off
rem [interactive]
rem [button: dev -> stable]
cd ..\qpadsite\update
copy u_dev u_stable
=====������=====
Search result