Compare commits
213 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
653d9b52ca | ||
|
|
d74711580b | ||
|
|
2a164bee4e | ||
|
|
70f51b7ba7 | ||
|
|
74a37fb2c1 | ||
|
|
f6f4797483 | ||
|
|
4ace576eb2 | ||
|
|
0b3084964c | ||
|
|
d3b6ab00a3 | ||
|
|
f4527705aa | ||
|
|
ae4c4a1f02 | ||
|
|
b5fa3955dd | ||
|
|
f7e3b71b94 | ||
|
|
ebd5557620 | ||
|
|
84c2846033 | ||
|
|
29e8fbfda8 | ||
|
|
9dc00aa39b | ||
|
|
cd7692cdc1 | ||
|
|
0d604bfd1d | ||
|
|
10257c5034 | ||
|
|
1b3cd9a11b | ||
|
|
125850f150 | ||
|
|
e6ab186571 | ||
|
|
c5e6c9608c | ||
|
|
576da864fb | ||
|
|
7606d014e2 | ||
|
|
0f37b84027 | ||
|
|
845f5863f9 | ||
|
|
fe6b57811c | ||
|
|
a583431a03 | ||
|
|
c4ad99c913 | ||
|
|
8e06c1de5c | ||
|
|
45c38ab3ec | ||
|
|
9005b25723 | ||
|
|
aece6108aa | ||
|
|
d2e7a8908a | ||
|
|
9287326291 | ||
|
|
a4ef4f64b3 | ||
|
|
c6bf32b0d2 | ||
|
|
578fcb1518 | ||
|
|
8a455a0077 | ||
|
|
e2331637af | ||
|
|
2de0f88d10 | ||
|
|
a1e7d262fd | ||
|
|
75056fa9c2 | ||
|
|
e5d7341e43 | ||
|
|
a8cede0052 | ||
|
|
036cf0b745 | ||
|
|
41964c458e | ||
|
|
a7ae8713d8 | ||
|
|
e80118de1e | ||
|
|
aa32586f94 | ||
|
|
c3dafa0af8 | ||
|
|
2078608012 | ||
|
|
5e4e1962bd | ||
|
|
95ecc1876d | ||
|
|
8dc07e2282 | ||
|
|
b9ac6ce4c4 | ||
|
|
7541b830ea | ||
|
|
1f83927462 | ||
|
|
14d55bdfe3 | ||
|
|
26f0a6bd4c | ||
|
|
5a1b42330f | ||
|
|
413a6b611f | ||
|
|
34276cf9ff | ||
|
|
45a4924686 | ||
|
|
cc085d4fb4 | ||
|
|
dbf6098e84 | ||
|
|
752b30166c | ||
|
|
443903b528 | ||
|
|
fc408c794c | ||
|
|
ddd5e41659 | ||
|
|
f63b140c14 | ||
|
|
f84424da44 | ||
|
|
21a4e9862a | ||
|
|
fc9bc61d9c | ||
|
|
90fd18f8a0 | ||
|
|
49335e62cf | ||
|
|
fd31261ec4 | ||
|
|
8c00238409 | ||
|
|
52389e9897 | ||
|
|
23322f4e47 | ||
|
|
f22918b494 | ||
|
|
3ff35270fc | ||
|
|
45bb80e92e | ||
|
|
582c63b042 | ||
|
|
53e2bfa06a | ||
|
|
46e103dea3 | ||
|
|
fb06395bf9 | ||
|
|
110264beb8 | ||
|
|
579005ae2e | ||
|
|
bd208273bc | ||
|
|
a587857b2c | ||
|
|
6b94ce24de | ||
|
|
bbb7f6a423 | ||
|
|
cc83b80022 | ||
|
|
069e9def30 | ||
|
|
6790cc4190 | ||
|
|
5171a20852 | ||
|
|
153a2d162b | ||
|
|
cc35ca76ff | ||
|
|
7f7aa6383e | ||
|
|
54ffda99c5 | ||
|
|
d0a1e792d6 | ||
|
|
cdc464b6cf | ||
|
|
62118654f7 | ||
|
|
a17080bde7 | ||
|
|
85e186bdd5 | ||
|
|
e6495beec7 | ||
|
|
69c4415452 | ||
|
|
076d08afc8 | ||
|
|
785af96859 | ||
|
|
46b02faac7 | ||
|
|
da8aed3f25 | ||
|
|
fa79f3b501 | ||
|
|
008c040171 | ||
|
|
eb73e209b4 | ||
|
|
1ecb99420c | ||
|
|
ef82d423b6 | ||
|
|
69e9807990 | ||
|
|
abd6560faf | ||
|
|
74eecb999e | ||
|
|
789078f86e | ||
|
|
09f7a56fdd | ||
|
|
3ffc6d1354 | ||
|
|
69d2788bfd | ||
|
|
b4656ca0f6 | ||
|
|
813c8de968 | ||
|
|
f5077b89a2 | ||
|
|
aa40d7f7c3 | ||
|
|
97e4d11dd2 | ||
|
|
3816be8336 | ||
|
|
353c99a182 | ||
|
|
b8ab9968f8 | ||
|
|
1d8663942e | ||
|
|
1b8dd87843 | ||
|
|
0ce1700dfc | ||
|
|
8167c67f35 | ||
|
|
6e0a168230 | ||
|
|
91fcca962d | ||
|
|
3e0d507a2a | ||
|
|
a864d5c889 | ||
|
|
dc0064ad70 | ||
|
|
8e893e3b9e | ||
|
|
d7def66cf3 | ||
|
|
5adc17d7bb | ||
|
|
bf82fd23e2 | ||
|
|
41d29c3bc0 | ||
|
|
1bd10f98c8 | ||
|
|
d302c35221 | ||
|
|
d460b380c1 | ||
|
|
9a2d98f7ca | ||
|
|
e5fa2afe3c | ||
|
|
5144e92e89 | ||
|
|
234f9b4aaa | ||
|
|
6b06d0a190 | ||
|
|
04d2ef8127 | ||
|
|
3829792e68 | ||
|
|
3eeebd274b | ||
|
|
1f2b5d0bf2 | ||
|
|
d53463f14e | ||
|
|
edfab46685 | ||
|
|
0050c7fedd | ||
|
|
eff9150f24 | ||
|
|
807ad0f957 | ||
|
|
6142843f4b | ||
|
|
b4d1019e71 | ||
|
|
cc1f36af2f | ||
|
|
790493b6d1 | ||
|
|
38c6cd28fa | ||
|
|
18d471be2c | ||
|
|
feb7f53e2c | ||
|
|
b7cd8aa30f | ||
|
|
1d02e3131d | ||
|
|
adcdb71894 | ||
|
|
2ee84a0c47 | ||
|
|
44219f008e | ||
|
|
0ef9c297cb | ||
|
|
b256912dee | ||
|
|
47c9f0a88f | ||
|
|
164341bedf | ||
|
|
dcf9ed7d26 | ||
|
|
fa248c5be1 | ||
|
|
fe5b1d8bf6 | ||
|
|
e6ed7d7cc4 | ||
|
|
c839beac25 | ||
|
|
67af8bb65f | ||
|
|
8350d3c609 | ||
|
|
a8c6f3a0dc | ||
|
|
ead5a9d46a | ||
|
|
0eadfdab00 | ||
|
|
b2deb54012 | ||
|
|
6bf310daae | ||
|
|
267fd50f24 | ||
|
|
d3c668f046 | ||
|
|
5a149166f8 | ||
|
|
6fe0f3a32c | ||
|
|
33a129a416 | ||
|
|
bbaab90515 | ||
|
|
c172289354 | ||
|
|
418631ee69 | ||
|
|
7aa89ed23b | ||
|
|
87c4f5f89a | ||
|
|
48e8d33c1f | ||
|
|
fd3f86a54b | ||
|
|
7de970fd69 | ||
|
|
e5d4045860 | ||
|
|
bcc81716ca | ||
|
|
a61c9e26be | ||
|
|
346a5326a6 | ||
|
|
b136a79bf3 | ||
|
|
7a8027e827 | ||
|
|
5c63257572 |
215
CHANGELOG.md
215
CHANGELOG.md
@@ -1,5 +1,220 @@
|
||||
# ZeroBrane Studio Changelog
|
||||
|
||||
## v1.20 (Oct 08 2015)
|
||||
|
||||
### Highlights
|
||||
- Added symbol indexing of project files for project-wide search.
|
||||
- Added support for `file@symbol` fuzzy search (#385).
|
||||
- Added processing of `ini` setting relative to the IDE location (#483).
|
||||
- Improved memory handling for large files.
|
||||
- Improved application performance and memory usage.
|
||||
- Improved auto-complete order of results and suggestions for case-sensitive matches.
|
||||
- Updated Windows launcher to add dpi awareness for high dpi monitors.
|
||||
- Upgraded Lua 5.3 interpreter to 5.3.1.
|
||||
- Fixed a memory leak after a search panel is opened.
|
||||
- Fixed an occasional crash from the filetree on Linux (#425, #464).
|
||||
- Fixed recursive file traversal to skip directories when mask is specified.
|
||||
|
||||
### Special thanks
|
||||
- To [riidom](https://github.com/riidom) for German translation update.
|
||||
- To [Yonaba](https://github.com/Yonaba/) for French translation update.
|
||||
- To [Leo Bartoloni](https://github.com/bartoleo) for Italian translation update.
|
||||
- To [Christoph Kubisch](https://github.com/pixeljetstream) for glslc updates.
|
||||
- To Brigham Toskin for auto-complete improvements.
|
||||
- To Joergen von Bargen for optimized UTF8 validation.
|
||||
- To Nick Smith for Marmalade interpreter updates.
|
||||
|
||||
### Improvements
|
||||
- Added handling of translation messages that require pluralization (#70).
|
||||
- Added check for non-zero file size before reporting load progress (#530).
|
||||
- Added switching interpreters by clicking on the interpreter label in the status bar.
|
||||
- Added handling of editor commands (Copy/Paste/SelectAll/Undo/Redo) in search panel controls.
|
||||
- Added position to the end-of-file lexer token (closes #529).
|
||||
- Added reporting when a file can't be removed from a project tree.
|
||||
- Added explicit initialization for `editor.autoactivate` default setting.
|
||||
- Added allowing `editor.saveallonrun` with `infervalue` static analyzer (closes #524).
|
||||
- Added support for `include` command in config files.
|
||||
- Added document `Close` method (#166).
|
||||
- Added descriptions for new Lua 5.3 `math.*` and `coroutine.*` functions.
|
||||
- Added functions new to Lua 5.3 to the list of keywords.
|
||||
- Added reporting of deserialization failures for saved package data.
|
||||
- Added collapsing white spaces from names shown in the Outline.
|
||||
- Added workaround for a memory leak in wxlua after a search panel is opened.
|
||||
- Added jumping to the current function in the outline (#515).
|
||||
- Added highlighting current functions for better visibility (#515).
|
||||
- Added skipping unneded fields from the symbol index to reduce memory usage (#515).
|
||||
- Added showing position of the current function in the Outline (closes #515).
|
||||
- Added explicit editor destroy during find and replace to conserve memory.
|
||||
- Added explicit editor destroy during symbol indexing to conserve memory.
|
||||
- Added turning jitting on when running under LuaJIT.
|
||||
- Added `Run to Cursor` to the popup menu in the editor (#413).
|
||||
- Added showing memory usage stats in the status bar configured by `showmemoryusage`.
|
||||
- Added skipping opening a file from symbol search when nothing is matched.
|
||||
- Added skipping directories during directory traversal (#499).
|
||||
- Added `SetStatusFor` package method to set temporary status (#166).
|
||||
- Added forcing immediate refresh of symbol index when requested from the menu (#499).
|
||||
- Added `onMenuOutput` event (#166).
|
||||
- Added `onMenuWatch` event (#166).
|
||||
- Added disabling symbol indexing for directories/projects (#499).
|
||||
- Added refreshing of symbol index to the project menu (#499).
|
||||
- Added reporting of the number of files queued for indexing (#499).
|
||||
- Added reporting when indexing is completed (#499).
|
||||
- Added `GetOutline` package method (#166, #499).
|
||||
- Added exclusion to not report `arg` as global in static analysis (closes #503).
|
||||
- Added `commandbar.width` to set the width of command bar.
|
||||
- Added skipping symbol index queue when symbol inactivity is not set (#499).
|
||||
- Added setting different types of indentation guides.
|
||||
- Added optimization with prefiltering for short patterns (#31, #499).
|
||||
- Added status message during index update (#499).
|
||||
- Added purging of outdated cache for symbol indexing (#499).
|
||||
- Added symbol processing of tabs that are not saved yet (#499).
|
||||
- Added indexing of project files (#499).
|
||||
- Added `commandbar.maxitems` configuration setting (#499).
|
||||
- Added caching of symbols for open files (#499).
|
||||
- Added support for `file.lua@symbol` fuzzy search (#385).
|
||||
- Added symbol search in all open files (#385).
|
||||
- Added check to avoid loops in type assignment during auto-complete (#498).
|
||||
- Added primitive handling of `require` in type assignments for known APIs (fixes #498).
|
||||
- Added support for aborting file reading callback (#491).
|
||||
- Added progress display when loading large files (#491).
|
||||
- Added status methods: `GetStatus`, `PushStatus`, and `PopStatus` (#166).
|
||||
- Added `onMenuOutline` callback (#166, #337).
|
||||
- Added ability to toggle outline sorting from the local menu (#337, #494).
|
||||
- Added activating Output panel after compilation errors.
|
||||
- Added package `SetStatus` method (#166).
|
||||
- Added `Ctrl/Cmd-Enter`/`Ctrl/Cmd-Shift-Enter` to add line after/before the current one (#334).
|
||||
- Added ignoring current selection in auto-complete with `Shift-Enter` (closes #494).
|
||||
- Added hiding auto-complete after typing one of the offered options (#494).
|
||||
- Added activating Output notebook to show search results if it's hidden (#416).
|
||||
- Added reporting of errors when unable to open file for static analysis.
|
||||
- Added collapsing whitespaces in function parameters in the outline (#337).
|
||||
- Added emphasis for the preference type in the config file template.
|
||||
- Added `FileSize` method as the default one returns non-zero result for non-existing files.
|
||||
- Added reporting of `FileWrite` failing to write the entire content.
|
||||
- Added package methods `AddIndicator`, `GetIndicator`, and `RemoveIndicator` (#166).
|
||||
- Added missing `Detach Process` id to keymap (pkulchenko/MobDebug#19).
|
||||
- Added a check for `ini` setting pointing to a path with a writeable directory (#483).
|
||||
- Added a check for `ini` setting pointing to a directory (#483).
|
||||
- Added processing of `ini` setting relative to the IDE location (closes #483).
|
||||
- Added Watch view refresh after switching focus when needed.
|
||||
- Added Stack view refresh after switching focus when needed.
|
||||
- Added forced `Refresh`/`Update` to improve redrawing of commandbar on Windows 8.
|
||||
- Added a check for a window to be shown to avoid callback recursion on OSX (fixes #473).
|
||||
- Added package `IsWindowShown` method (#166).
|
||||
- Added package `onEditorPreClose` event (#166, closes #461).
|
||||
- Added deleting the rest of the word on auto-complete (`acandtip.droprest`).
|
||||
- Added closing editor tab when renaming to an open file from the project tree.
|
||||
- Added refresh of the target file after renaming from the project tree.
|
||||
- Added a check for object with a focus (occasionally triggered on Linux).
|
||||
- Added workaround to fix crash on Linux from the project tree (#425, #464).
|
||||
- Added `DoWhenIdle` package method (#166).
|
||||
- Disabled unhiding one of wxwidgets windows that is only used for message passing (Windows).
|
||||
- Disabled initial highlight when showing current function disabled in the outline (#515).
|
||||
- Disabled dragging out search results tab to avoid unexpected results (#416).
|
||||
- Enabled compilation during running/debugging (closes #479).
|
||||
- Enabled static analysis during running/debugging (#479).
|
||||
- Integrate ZeroBrane with Marmalade's Hub GUI
|
||||
- Improved auto-complete suggestions for case-sensitive matches.
|
||||
- Improved compactness of saved package settings (#166, #499).
|
||||
- Improved performance of saving symbol index data (#499).
|
||||
- Improved memory usage when closing large files (#491).
|
||||
- Improved handling of large files (#491).
|
||||
- Improved the order of results in auto-complete (closes #469).
|
||||
- glslc tool: add menu option for pre-process mode
|
||||
- Optimized saving package settings (#166, #499).
|
||||
- Optimized UTF8 validation (thanks to Joergen von Bargen).
|
||||
- Optimized handling of multi-line changes in the editor (closes #477).
|
||||
- Removed forced garbage collection as it led to crashes on Linux (#425, closes #464).
|
||||
- Revised: auto-complete results (amends #469, w/@pkulchenko patch)
|
||||
- Switched to the bottom location for the search results by default (#416).
|
||||
- Updated italian translations (thanks to Leo Bartoloni)
|
||||
- Updated Russian translation (#70).
|
||||
- Update de.lua (thanks to riidom)
|
||||
- Updated french translation as of commit (thanks to Yonaba)
|
||||
- Updated translation files for new messages (#70).
|
||||
- Updated translation logic to accept empty tables for pluralization values (#70).
|
||||
- Updated build scripts to use the most recent releases of LuaJIT and Lua 5.2.
|
||||
- Updated OSX launcher to keep `DYLD_LIBRARY_PATH` if already set.
|
||||
- Updated build scripts to use the most recent releases of LuaJIT and Lua 5.2.
|
||||
- Update marmalade API definition to 7.9
|
||||
- Updated static analyzer (luainspect) to take globals in 'required' files into account (#520).
|
||||
- Updated static analyzer to refresh cache of 'required' modules (#520).
|
||||
- Updated C/cpp spec to skip `if(...)` from the list of functions.
|
||||
- Updated C/cpp spec to properly handle functions at the beginning of a file.
|
||||
- Updated package data serialization to use simpler dumper for faster processing.
|
||||
- Updated saving symbol index to be called less frequently (#499).
|
||||
- Updated list of fields to skip from saved symbol index (#499).
|
||||
- Updated Run/Debug to not force saving new tabs when `Start` file is set.
|
||||
- Updated interpreter handling to allow setting of default value in the config (closes #518).
|
||||
- Updated highlighting of the current function in the Outline to select one item (#515).
|
||||
- Updated auto-complete to close when one of the options matches the current input.
|
||||
- Updated applying limit to the commandbar results to allow them to be resorted.
|
||||
- Updated status messages for better visibility on OSX during index refresh (#499).
|
||||
- Updated tracking of editor updates to skip unneeded notifications on OSX (#499).
|
||||
- Updated symbol refresh to do processing as soon as the path is known (#499).
|
||||
- Updated symbol index to skip unused elements in serialization (#499).
|
||||
- Updated prefiltering to limit prefix to avoid penalty for long `s.*s.*s...` (#31).
|
||||
- Updated package `SetSettings` method to allow passing of additional parameters (#166).
|
||||
- Updated status of files indexing for symbol search (#499).
|
||||
- Updated `DoWhenIdle` handling to gracefully handle a long queue.
|
||||
- Updated `Go To Symbol` to refresh files loaded in the preview (#499, #385).
|
||||
- Updated symbol search to only refresh outline when it's not populated (#385).
|
||||
- Updated search logic to avoid showing search results in recent files (#416).
|
||||
- Updated line number handling to adjust for large files (#491).
|
||||
- Updated `busted` interpreter to check for proper extension on Windows (closes #495).
|
||||
- Updated handling of binary and utf8 validness checks for large files (#491).
|
||||
- Updated build scripts for Lua 5.3 to use 5.3.1.
|
||||
- Updated toolbar to show large icons by default on large screens.
|
||||
- Updated outline to only retrieve entry text when there are tokens to process (#337).
|
||||
- Updated getting text length without requesting editor content.
|
||||
- Updated showing function indicator handling to allow for easier enabling.
|
||||
- Updated indicator processing to use new API.
|
||||
- Updated ID references in toolbar to use the new access method.
|
||||
- Updated ID references in keymap to use the new access method.
|
||||
- Updated `Detach Process` to allow access to it while the process is running.
|
||||
- Updated metalua/static analyzer to accept long integer and imaginary numbers (closes #482).
|
||||
- Updated internal parser to accept long integer, imaginary, and floating point hex numbers (#482).
|
||||
- Updated internal parser to accept numbers that start with a period (#482).
|
||||
- Updated compilation and static analysis to keep output when running/debugging (#479).
|
||||
- Updated indentation after strings with brackets and escaped quotes (#324).
|
||||
- Updated `AnalyzeString` to add filename parameter (closes #463).
|
||||
- Updated Windows launcher to add dpi awareness for high dpi monitors.
|
||||
- Upgraded Lua 5.3 interpreter to 5.3.1 on Linux (x86 and x64).
|
||||
- Upgraded Lua 5.3 interpreter to 5.3.1 on OSX.
|
||||
- Upgraded Lua 5.3 interpreter to 5.3.1 on Windows (closes #453, closes #460).
|
||||
- Upgraded Mobdebug (0.628) to include `keyignore` serializer option.
|
||||
- Upgraded Mobdebug (0.627) to improve debugging of code with overloaded `string` methods.
|
||||
- Upgraded Mobdebug (0.624) to make `DONE` async and to add `__tostring` protection (closes #446).
|
||||
|
||||
### Fixes
|
||||
- Fixed text search and fuzzy symbol search in symlinks (#458, #530).
|
||||
- Fixed opening only one tab for external debugging of dynamic code on Linux (closes #526).
|
||||
- Fix live picking up debug vs release binaries (Marmalade)
|
||||
- Fixed highlighting for those specs that don't have information on where functions end (#515).
|
||||
- Fixed highlighting the current function when anonymous functions are hidden (#515).
|
||||
- Fixed styling of comments that include markup inside markup (fixes #514).
|
||||
- Fixed updating symbols in new files that haven't been indexed yet (#499).
|
||||
- Fixed opening empty files (fixes #510).
|
||||
- Fixed autocomplete for words that may include underscores in suggestions.
|
||||
- Fixed crash on OSX during symbol indexing when filetree menu is open (#499).
|
||||
- Fixed crash on Linux during symbol indexing when filetree menu is open (fixes #507).
|
||||
- Fixed duplicates between variables and dynamic words in auto-complete.
|
||||
- Fixed uncommenting of the last line in the selection to keep un/comment reversible (fixes #509).
|
||||
- Fixed assignment parsing when the type value is re-assigned (#498).
|
||||
- Fixed mouse selection in auto-complete on OSX (fixes #496).
|
||||
- Fixed fuzzy file search to not double open already opened files (#31).
|
||||
- Fixed indentation of lines that end with partial long strings with opening brackets (#324).
|
||||
- Fixed indentation of lines with long strings that include opening brackets (#324).
|
||||
- Fixed indicators on table fields after variables that look like multiple assignments (#492).
|
||||
- Fixed indicators on table fields after variables (fixes #492).
|
||||
- Fixed variable usage based on static analysis.
|
||||
- Fixed initial select-and-find search.
|
||||
- Fixed returning focus to the editor after find-in-files followed by page search (#416).
|
||||
- Fixed performance of initial fuzzy search for line numbers (closes #476).
|
||||
- Fixed Output tab name when debugging aborted after run-time error.
|
||||
- Fixed recursive file traversal to skip directories when mask is specified.
|
||||
- Fixed crash in `collectgarbage` from the filetree on Linux (#425, #464).
|
||||
|
||||
## v1.10 (May 13 2015)
|
||||
|
||||
### Highlights
|
||||
|
||||
@@ -243,6 +243,12 @@ return {
|
||||
args = "(...)",
|
||||
returns = "()",
|
||||
},
|
||||
isyieldable = {
|
||||
type = "function",
|
||||
description = "Returns true when the running coroutine can yield. A running coroutine is yieldable if it is not the main thread and it is not inside a non-yieldable C function.\nFUNCTION ADDED IN Lua 5.3.",
|
||||
args = "()",
|
||||
returns = "(boolean)",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
@@ -617,6 +623,14 @@ return {
|
||||
type = "value",
|
||||
description = "The value of pi.",
|
||||
},
|
||||
mininteger = {
|
||||
type = "value",
|
||||
description = "An integer with the minimum value for an integer.\nVALUE ADDED IN Lua 5.3.",
|
||||
},
|
||||
maxinteger = {
|
||||
type = "value",
|
||||
description = "An integer with the maximum value for an integer.\nVALUE ADDED IN Lua 5.3.",
|
||||
},
|
||||
pow = {
|
||||
type = "function",
|
||||
description = "Returns x^y.\n(You can also use the expression x^y to compute this value.)",
|
||||
@@ -671,6 +685,24 @@ return {
|
||||
args = "(x: number)",
|
||||
returns = "(number)",
|
||||
},
|
||||
type = {
|
||||
type = "function",
|
||||
description = [[Returns "integer" if x is an integer, "float" if it is a float, or nil if x is not a number.\nFUNCTION ADDED IN Lua 5.3.]],
|
||||
args = "(x: number)",
|
||||
returns = "(string)",
|
||||
},
|
||||
tointeger = {
|
||||
type = "function",
|
||||
description = "If the value x is convertible to an integer, returns that integer. Otherwise, returns nil.\nFUNCTION ADDED IN Lua 5.3.",
|
||||
args = "(x: number)",
|
||||
returns = "(number)",
|
||||
},
|
||||
ult = {
|
||||
type = "function",
|
||||
description = "Returns a boolean, true if integer m is below integer n when they are compared as unsigned integers.\nFUNCTION ADDED IN Lua 5.3.",
|
||||
args = "(m: number, n: number)",
|
||||
returns = "(boolean)",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
bin/lua53.dll
BIN
bin/lua53.dll
Binary file not shown.
BIN
bin/lua53.exe
BIN
bin/lua53.exe
Binary file not shown.
@@ -125,7 +125,7 @@ LUA_BASENAME="lua-5.1.5"
|
||||
if [ $BUILD_52 ]; then
|
||||
LUAV="52"
|
||||
LUAS=$LUAV
|
||||
LUA_BASENAME="lua-5.2.2"
|
||||
LUA_BASENAME="lua-5.2.4"
|
||||
fi
|
||||
|
||||
LUA_FILENAME="$LUA_BASENAME.tar.gz"
|
||||
@@ -134,13 +134,13 @@ LUA_URL="http://www.lua.org/ftp/$LUA_FILENAME"
|
||||
if [ $BUILD_53 ]; then
|
||||
LUAV="53"
|
||||
LUAS=$LUAV
|
||||
LUA_BASENAME="lua-5.3.0"
|
||||
LUA_BASENAME="lua-5.3.1"
|
||||
LUA_FILENAME="$LUA_BASENAME.tar.gz"
|
||||
LUA_URL="http://www.lua.org/ftp/$LUA_FILENAME"
|
||||
fi
|
||||
|
||||
if [ $BUILD_JIT ]; then
|
||||
LUA_BASENAME="LuaJIT-2.0.2"
|
||||
LUA_BASENAME="LuaJIT-2.0.4"
|
||||
LUA_FILENAME="$LUA_BASENAME.tar.gz"
|
||||
LUA_URL="http://luajit.org/download/$LUA_FILENAME"
|
||||
fi
|
||||
|
||||
@@ -120,7 +120,7 @@ LUA_BASENAME="lua-5.1.5"
|
||||
if [ $BUILD_52 ]; then
|
||||
LUAV="52"
|
||||
LUAS=$LUAV
|
||||
LUA_BASENAME="lua-5.2.2"
|
||||
LUA_BASENAME="lua-5.2.4"
|
||||
fi
|
||||
|
||||
LUA_FILENAME="$LUA_BASENAME.tar.gz"
|
||||
@@ -129,13 +129,13 @@ LUA_URL="http://www.lua.org/ftp/$LUA_FILENAME"
|
||||
if [ $BUILD_53 ]; then
|
||||
LUAV="53"
|
||||
LUAS=$LUAV
|
||||
LUA_BASENAME="lua-5.3.0"
|
||||
LUA_BASENAME="lua-5.3.1"
|
||||
LUA_FILENAME="$LUA_BASENAME.tar.gz"
|
||||
LUA_URL="http://www.lua.org/ftp/$LUA_FILENAME"
|
||||
fi
|
||||
|
||||
if [ $BUILD_JIT ]; then
|
||||
LUA_BASENAME="LuaJIT-2.0.2"
|
||||
LUA_BASENAME="LuaJIT-2.0.4"
|
||||
LUA_FILENAME="$LUA_BASENAME.tar.gz"
|
||||
LUA_URL="http://luajit.org/download/$LUA_FILENAME"
|
||||
fi
|
||||
|
||||
@@ -23,11 +23,11 @@ LUASOCKET_BASENAME="luasocket-3.0-rc1"
|
||||
LUASOCKET_FILENAME="v3.0-rc1.zip"
|
||||
LUASOCKET_URL="https://github.com/diegonehab/luasocket/archive/$LUASOCKET_FILENAME"
|
||||
|
||||
OPENSSL_BASENAME="openssl-1.0.1e"
|
||||
OPENSSL_BASENAME="openssl-1.0.2a"
|
||||
OPENSSL_FILENAME="$OPENSSL_BASENAME.tar.gz"
|
||||
OPENSSL_URL="http://www.openssl.org/source/$OPENSSL_FILENAME"
|
||||
|
||||
LUASEC_BASENAME="luasec-0.4.1"
|
||||
LUASEC_BASENAME="luasec-0.5"
|
||||
LUASEC_FILENAME="$LUASEC_BASENAME.zip"
|
||||
LUASEC_URL="https://github.com/brunoos/luasec/archive/$LUASEC_FILENAME"
|
||||
|
||||
@@ -132,13 +132,15 @@ fi
|
||||
mkdir -p "$INSTALL_DIR" || { echo "Error: cannot create directory $INSTALL_DIR"; exit 1; }
|
||||
|
||||
LUAV="51"
|
||||
LUAD="5.1"
|
||||
LUAS=""
|
||||
LUA_BASENAME="lua-5.1.5"
|
||||
|
||||
if [ $BUILD_52 ]; then
|
||||
LUAV="52"
|
||||
LUAD="5.2"
|
||||
LUAS=$LUAV
|
||||
LUA_BASENAME="lua-5.2.2"
|
||||
LUA_BASENAME="lua-5.2.4"
|
||||
fi
|
||||
|
||||
LUA_FILENAME="$LUA_BASENAME.tar.gz"
|
||||
@@ -146,14 +148,15 @@ LUA_URL="http://www.lua.org/ftp/$LUA_FILENAME"
|
||||
|
||||
if [ $BUILD_53 ]; then
|
||||
LUAV="53"
|
||||
LUAD="5.3"
|
||||
LUAS=$LUAV
|
||||
LUA_BASENAME="lua-5.3.0"
|
||||
LUA_BASENAME="lua-5.3.1"
|
||||
LUA_FILENAME="$LUA_BASENAME.tar.gz"
|
||||
LUA_URL="http://www.lua.org/ftp/$LUA_FILENAME"
|
||||
fi
|
||||
|
||||
if [ $BUILD_JIT ]; then
|
||||
LUA_BASENAME="LuaJIT-2.0.2"
|
||||
LUA_BASENAME="LuaJIT-2.0.4"
|
||||
LUA_FILENAME="$LUA_BASENAME.tar.gz"
|
||||
LUA_URL="http://luajit.org/download/$LUA_FILENAME"
|
||||
fi
|
||||
@@ -186,6 +189,16 @@ if [ $BUILD_LUA ]; then
|
||||
# move luajit to lua as it's expected by luasocket and other components
|
||||
cp "$INSTALL_DIR"/include/luajit*/* "$INSTALL_DIR/include/"
|
||||
else
|
||||
# need to patch Lua io to support large (>2GB) files on Windows:
|
||||
# http://lua-users.org/lists/lua-l/2015-05/msg00370.html
|
||||
cat <<EOF >>src/luaconf.h
|
||||
#if defined(liolib_c) && defined(__MINGW32__)
|
||||
#include <sys/types.h>
|
||||
#define l_fseek(f,o,w) fseeko64(f,o,w)
|
||||
#define l_ftell(f) ftello64(f)
|
||||
#define l_seeknum off64_t
|
||||
#endif
|
||||
EOF
|
||||
make mingw || { echo "Error: failed to build Lua"; exit 1; }
|
||||
make install INSTALL_TOP="$INSTALL_DIR"
|
||||
fi
|
||||
@@ -238,17 +251,17 @@ if [ $BUILD_LUASOCKET ]; then
|
||||
wget --no-check-certificate -c "$LUASOCKET_URL" -O "$LUASOCKET_FILENAME" || { echo "Error: failed to download LuaSocket"; exit 1; }
|
||||
unzip "$LUASOCKET_FILENAME"
|
||||
cd "$LUASOCKET_BASENAME"
|
||||
mkdir -p "$INSTALL_DIR/lib/lua/$LUAV/"{mime,socket}
|
||||
gcc $BUILD_FLAGS -o "$INSTALL_DIR/lib/lua/$LUAV/mime/core.dll" src/mime.c -llua$LUAV \
|
||||
mkdir -p "$INSTALL_DIR/lib/lua/$LUAD/"{mime,socket}
|
||||
gcc $BUILD_FLAGS -o "$INSTALL_DIR/lib/lua/$LUAD/mime/core.dll" src/mime.c -llua$LUAV \
|
||||
|| { echo "Error: failed to build LuaSocket"; exit 1; }
|
||||
gcc $BUILD_FLAGS -DLUASOCKET_INET_PTON -D_WIN32_WINNT=0x0501 -o "$INSTALL_DIR/lib/lua/$LUAV/socket/core.dll" \
|
||||
gcc $BUILD_FLAGS -DLUASOCKET_INET_PTON -D_WIN32_WINNT=0x0501 -o "$INSTALL_DIR/lib/lua/$LUAD/socket/core.dll" \
|
||||
src/{auxiliar.c,buffer.c,except.c,inet.c,io.c,luasocket.c,options.c,select.c,tcp.c,timeout.c,udp.c,wsocket.c} -lwsock32 -lws2_32 -llua$LUAV \
|
||||
|| { echo "Error: failed to build LuaSocket"; exit 1; }
|
||||
mkdir -p "$INSTALL_DIR/share/lua/$LUAV/socket"
|
||||
cp src/{ftp.lua,http.lua,smtp.lua,tp.lua,url.lua} "$INSTALL_DIR/share/lua/$LUAV/socket"
|
||||
cp src/{ltn12.lua,mime.lua,socket.lua} "$INSTALL_DIR/share/lua/$LUAV"
|
||||
[ -f "$INSTALL_DIR/lib/lua/$LUAV/mime/core.dll" ] || { echo "Error: mime/core.dll isn't found"; exit 1; }
|
||||
[ -f "$INSTALL_DIR/lib/lua/$LUAV/socket/core.dll" ] || { echo "Error: socket/core.dll isn't found"; exit 1; }
|
||||
mkdir -p "$INSTALL_DIR/share/lua/$LUAD/socket"
|
||||
cp src/{ftp.lua,http.lua,smtp.lua,tp.lua,url.lua} "$INSTALL_DIR/share/lua/$LUAD/socket"
|
||||
cp src/{ltn12.lua,mime.lua,socket.lua} "$INSTALL_DIR/share/lua/$LUAD"
|
||||
[ -f "$INSTALL_DIR/lib/lua/$LUAD/mime/core.dll" ] || { echo "Error: mime/core.dll isn't found"; exit 1; }
|
||||
[ -f "$INSTALL_DIR/lib/lua/$LUAD/socket/core.dll" ] || { echo "Error: socket/core.dll isn't found"; exit 1; }
|
||||
cd ..
|
||||
rm -rf "$LUASOCKET_FILENAME" "$LUASOCKET_BASENAME"
|
||||
fi
|
||||
@@ -271,11 +284,13 @@ if [ $BUILD_LUASEC ]; then
|
||||
# the folder in the archive is "luasec-luasec-....", so need to fix
|
||||
mv "luasec-$LUASEC_BASENAME" $LUASEC_BASENAME
|
||||
cd "$LUASEC_BASENAME"
|
||||
gcc $BUILD_FLAGS -o "$INSTALL_DIR/lib/lua/5.1/ssl.dll" \
|
||||
src/{timeout.c,buffer.c,io.c,context.c,ssl.c,wsocket.c} -lssl -lcrypto -lws2_32 -lgdi32 -llua51 \
|
||||
gcc $BUILD_FLAGS -o "$INSTALL_DIR/lib/lua/$LUAD/ssl.dll" \
|
||||
src/luasocket/{timeout.c,buffer.c,io.c,wsocket.c} src/{context.c,x509.c,ssl.c} -Isrc -lssl -lcrypto -lws2_32 -lgdi32 -llua$LUAV \
|
||||
|| { echo "Error: failed to build LuaSec"; exit 1; }
|
||||
cp src/{ssl.lua,https.lua} "$INSTALL_DIR/share/lua/5.1"
|
||||
[ -f "$INSTALL_DIR/lib/lua/5.1/ssl.dll" ] || { echo "Error: luasec.dll isn't found"; exit 1; }
|
||||
cp src/ssl.lua "$INSTALL_DIR/share/lua/$LUAD"
|
||||
mkdir -p "$INSTALL_DIR/share/lua/$LUAD/ssl"
|
||||
cp src/https.lua "$INSTALL_DIR/share/lua/$LUAD/ssl"
|
||||
[ -f "$INSTALL_DIR/lib/lua/$LUAD/ssl.dll" ] || { echo "Error: luasec.dll isn't found"; exit 1; }
|
||||
cd ..
|
||||
rm -rf "$LUASEC_FILENAME" "$LUASEC_BASENAME"
|
||||
fi
|
||||
@@ -284,9 +299,9 @@ fi
|
||||
if [ $BUILD_WINAPI ]; then
|
||||
git clone "$WINAPI_URL" "$WINAPI_BASENAME"
|
||||
cd "$WINAPI_BASENAME"
|
||||
gcc $BUILD_FLAGS -DPSAPI_VERSION=1 -o "$INSTALL_DIR/lib/lua/5.1/winapi.dll" winapi.c wutils.c -lpsapi -lmpr -llua51 \
|
||||
gcc $BUILD_FLAGS -DPSAPI_VERSION=1 -o "$INSTALL_DIR/lib/lua/$LUAD/winapi.dll" winapi.c wutils.c -lpsapi -lmpr -llua$LUAV \
|
||||
|| { echo "Error: failed to build winapi"; exit 1; }
|
||||
[ -f "$INSTALL_DIR/lib/lua/5.1/winapi.dll" ] || { echo "Error: winapi.dll isn't found"; exit 1; }
|
||||
[ -f "$INSTALL_DIR/lib/lua/$LUAD/winapi.dll" ] || { echo "Error: winapi.dll isn't found"; exit 1; }
|
||||
cd ..
|
||||
rm -rf "$WINAPI_BASENAME"
|
||||
fi
|
||||
@@ -304,13 +319,13 @@ mkdir -p "$BIN_DIR" || { echo "Error: cannot create directory $BIN_DIR"; exit 1;
|
||||
|
||||
[ $BUILD_LUA ] && cp "$INSTALL_DIR/bin/lua$LUAS.exe" "$INSTALL_DIR/lib/lua$LUAV.dll" "$BIN_DIR"
|
||||
[ $BUILD_WXLUA ] && cp "$INSTALL_DIR/bin/libwx.dll" "$BIN_DIR/wx.dll"
|
||||
[ $BUILD_WINAPI ] && cp "$INSTALL_DIR/lib/lua/5.1/winapi.dll" "$BIN_DIR"
|
||||
[ $BUILD_LUASEC ] && cp "$INSTALL_DIR/lib/lua/5.1/ssl.dll" "$BIN_DIR"
|
||||
[ $BUILD_WINAPI ] && cp "$INSTALL_DIR/lib/lua/$LUAD/winapi.dll" "$BIN_DIR/clibs$LUAS"
|
||||
[ $BUILD_LUASEC ] && cp "$INSTALL_DIR/lib/lua/$LUAD/ssl.dll" "$BIN_DIR/clibs$LUAS"
|
||||
|
||||
if [ $BUILD_LUASOCKET ]; then
|
||||
mkdir -p "$BIN_DIR/clibs$LUAS/"{mime,socket}
|
||||
cp "$INSTALL_DIR/lib/lua/$LUAV/mime/core.dll" "$BIN_DIR/clibs$LUAS/mime"
|
||||
cp "$INSTALL_DIR/lib/lua/$LUAV/socket/core.dll" "$BIN_DIR/clibs$LUAS/socket"
|
||||
cp "$INSTALL_DIR/lib/lua/$LUAD/mime/core.dll" "$BIN_DIR/clibs$LUAS/mime"
|
||||
cp "$INSTALL_DIR/lib/lua/$LUAD/socket/core.dll" "$BIN_DIR/clibs$LUAS/socket"
|
||||
fi
|
||||
|
||||
# To build lua5.1.dll proxy:
|
||||
|
||||
@@ -54,7 +54,7 @@ end
|
||||
|
||||
local file = ... -- pass an existing file name as a parameter
|
||||
local messages = {}
|
||||
for _, mask in ipairs({"zbstudio/*.lua", "src/main.lua", "src/editor/*.lua"}) do
|
||||
for _, mask in ipairs({"src/main.lua", "src/editor/*.lua"}) do
|
||||
for _, file in ipairs(FileSysGet(mask, wx.wxFILE)) do
|
||||
local content = FileRead(file)
|
||||
for msg in content:gmatch("[^%w]TR(%b())") do
|
||||
@@ -83,9 +83,12 @@ end
|
||||
local plural = existing[0] and (" [0] = "..existing[0].."\n") or ""
|
||||
existing[0] = nil
|
||||
|
||||
local en = loadfile("cfg/i18n/en.lua")() -- load 'en' with translations that require pluralization
|
||||
|
||||
local msgs = {}
|
||||
for m, files in pairs(messages) do
|
||||
local str = " ["..m.."] = "..(existing[m] or 'nil, --')
|
||||
local str = " ["..m.."] = "
|
||||
..(existing[m] or (en[m:gsub([=[^['"]]=],''):gsub([=[['"]$]=],'')] and '{}, --' or 'nil, --'))
|
||||
str = str:gsub(" %-%-.*$", "").." -- "
|
||||
for f in pairs(files) do str = str .. f .. ", " end
|
||||
msgs[#msgs+1] = str:gsub(", $", "")
|
||||
|
||||
@@ -154,14 +154,20 @@ int main (int argc, char *argv[])
|
||||
MB_OK|MB_ICONERROR);
|
||||
return 0;
|
||||
}
|
||||
if (file!=NULL)
|
||||
*file = 0; // finish the string, I don't need the appname
|
||||
//int i;
|
||||
//for (i=0;i<argc; i++)
|
||||
// printf("%d %s\n",i,argv[i]);
|
||||
if (file!=NULL) *file = 0; // finish the string, don't need the appname
|
||||
|
||||
SetCurrentDirectory(buffer);
|
||||
|
||||
// set the application as DPI aware
|
||||
typedef enum _Process_DPI_Awareness {
|
||||
Process_DPI_Unaware = 0,
|
||||
Process_System_DPI_Aware = 1,
|
||||
Process_Per_Monitor_DPI_Aware = 2
|
||||
} Process_DPI_Awareness;
|
||||
typedef BOOL (WINAPI *SetProcessDPIAwareness_t)(Process_DPI_Awareness);
|
||||
SetProcessDPIAwareness_t pfnSetProcessDPIAwareness = (SetProcessDPIAwareness_t)
|
||||
GetProcAddress(GetModuleHandle(TEXT("user32.dll")), "SetProcessDPIAware");
|
||||
if (NULL != pfnSetProcessDPIAwareness) pfnSetProcessDPIAwareness(Process_System_DPI_Aware);
|
||||
|
||||
SetDllDirectory(".\\bin\\");
|
||||
hinstLib = LoadLibrary("lua51.dll");
|
||||
|
||||
125
cfg/i18n/cn.lua
125
cfg/i18n/cn.lua
@@ -1,25 +1,23 @@
|
||||
return {
|
||||
["%d instance"] = "%d 个体", -- src\editor\findreplace.lua
|
||||
["%s event failed: %s"] = nil, -- src\editor\package.lua
|
||||
["%s%% loaded..."] = nil, -- src\editor\commands.lua
|
||||
["&About"] = "关于(&A)", -- src\editor\menu_help.lua
|
||||
["&Add Watch"] = "添加监视(&A)", -- src\editor\debugger.lua
|
||||
["&Break"] = "中断", -- src\editor\menu_project.lua
|
||||
["&Close Page"] = "关闭页面", -- src\editor\gui.lua, src\editor\menu_file.lua
|
||||
["&Community"] = nil, -- src\editor\menu_help.lua
|
||||
["&Compile"] = "编译", -- src\editor\menu_project.lua
|
||||
["&Copy Value"] = nil, -- src\editor\debugger.lua
|
||||
["&Copy"] = "复制", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["&Default Layout"] = "布局", -- src\editor\menu_view.lua
|
||||
["&Delete Watch"] = "删除监视", -- src\editor\debugger.lua
|
||||
["&Delete"] = nil, -- src\editor\filetree.lua
|
||||
["&Documentation"] = nil, -- src\editor\menu_help.lua
|
||||
["&Down"] = "往下", -- src\editor\findreplace.lua
|
||||
["&Edit Project Directory"] = nil, -- src\editor\filetree.lua
|
||||
["&Edit Value"] = nil, -- src\editor\debugger.lua
|
||||
["&Edit Watch"] = "编辑监视", -- src\editor\debugger.lua
|
||||
["&Edit"] = "编辑", -- src\editor\menu_edit.lua
|
||||
["&File"] = "文件", -- src\editor\menu_file.lua
|
||||
["&Find All"] = "查找全部", -- src\editor\findreplace.lua
|
||||
["&Find Next"] = "查找下一个", -- src\editor\findreplace.lua
|
||||
["&Find"] = "查找", -- src\editor\menu_search.lua
|
||||
["&Fold/Unfold All"] = "全 折叠/展开", -- src\editor\menu_edit.lua
|
||||
["&Frequently Asked Questions"] = nil, -- src\editor\menu_help.lua
|
||||
@@ -34,8 +32,7 @@ return {
|
||||
["&Project"] = "项目", -- src\editor\menu_project.lua
|
||||
["&Redo"] = "重做", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["&Rename"] = nil, -- src\editor\filetree.lua
|
||||
["&Replace All"] = "全替换", -- src\editor\findreplace.lua
|
||||
["&Replace"] = "替换", -- src\editor\findreplace.lua, src\editor\menu_search.lua
|
||||
["&Replace"] = "替换", -- src\editor\menu_search.lua
|
||||
["&Run"] = "执行", -- src\editor\menu_project.lua
|
||||
["&Save"] = "保存", -- src\editor\gui.lua, src\editor\menu_file.lua
|
||||
["&Search"] = "搜索", -- src\editor\menu_search.lua
|
||||
@@ -43,14 +40,11 @@ return {
|
||||
["&Stack Window"] = "叠视窗/堆栈视窗", -- src\editor\menu_view.lua
|
||||
["&Start Debugger Server"] = "开启除错器伺服机", -- src\editor\menu_project.lua
|
||||
["&Status Bar"] = nil, -- src\editor\menu_view.lua
|
||||
["&Subdirectories"] = "子文件夹", -- src\editor\findreplace.lua
|
||||
["&Tool Bar"] = nil, -- src\editor\menu_view.lua
|
||||
["&Tutorials"] = nil, -- src\editor\menu_help.lua
|
||||
["&Undo"] = "撤消", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["&Up"] = "往上", -- src\editor\findreplace.lua
|
||||
["&View"] = "视图", -- src\editor\menu_view.lua
|
||||
["&Watch Window"] = "监视视窗", -- src\editor\menu_view.lua
|
||||
[".bak on replace"] = nil, -- src\editor\findreplace.lua
|
||||
["About %s"] = "关于 %s", -- src\editor\menu_help.lua
|
||||
["Add To Scratchpad"] = nil, -- src\editor\editor.lua
|
||||
["Add Watch Expression"] = "添加监视表达式", -- src\editor\editor.lua
|
||||
@@ -60,25 +54,27 @@ return {
|
||||
["Analyze"] = "分析", -- src\editor\inspect.lua
|
||||
["Auto Complete Identifiers"] = "自动补全标识符", -- src\editor\menu_edit.lua
|
||||
["Auto complete while typing"] = "当输入时自动补全", -- src\editor\menu_edit.lua
|
||||
["Binary file is shown as read-only as it is only partially loaded."] = nil, -- src\editor\commands.lua
|
||||
["Bookmark"] = nil, -- src\editor\menu_edit.lua
|
||||
["Break execution at the next executed line of code"] = "执行下一语句之后中断执行", -- src\editor\menu_project.lua
|
||||
["Break execution at the next executed line of code"] = "执行下一语句之后中断执行", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["C&lear Output Window"] = "清除输出视窗", -- src\editor\gui.lua, src\editor\menu_project.lua
|
||||
["C&omment/Uncomment"] = "注释/消除注释", -- src\editor\menu_edit.lua
|
||||
["Can't debug the script in the active editor window."] = "不能在现行编辑视窗对脚本进行除错", -- src\editor\debugger.lua
|
||||
["Can't evaluate the expression while the application is running."] = nil, -- src\editor\debugger.lua
|
||||
["Can't find file '%s' in the current project to activate for debugging. Update the project or open the file in the editor before debugging."] = "在当前项目中寻找不到文件 '%s' 以进行激活然后除错, 更新项目或是在编辑器里开启文件后再除错", -- src\editor\debugger.lua
|
||||
["Can't open file '%s': %s"] = nil, -- src\editor\singleinstance.lua
|
||||
["Can't open file '%s': %s"] = nil, -- src\editor\findreplace.lua, src\editor\singleinstance.lua, src\editor\inspect.lua, src\editor\outline.lua
|
||||
["Can't process auto-recovery record; invalid format: %s."] = "不能处理自动恢复存档: %s", -- src\editor\commands.lua
|
||||
["Can't replace in read-only text."] = nil, -- src\editor\findreplace.lua
|
||||
["Can't run the entry point script ('%s')."] = "不能执行entry point脚本 ('%s')", -- src\editor\debugger.lua
|
||||
["Can't start debugger server at %s:%d: %s."] = nil, -- src\editor\debugger.lua
|
||||
["Can't start debugging for '%s'."] = nil, -- src\editor\debugger.lua
|
||||
["Can't start debugging session due to internal error '%s'."] = "除错动作失败 '%s'.", -- src\editor\debugger.lua
|
||||
["Can't start debugging without an opened file or with the current file not being saved ('%s')."] = "不能启动除错,没有文档被开启或当前更改过的文档还没保存('%s')", -- src\editor\debugger.lua
|
||||
["Can't stop debugger server as it is not started."] = nil, -- src\editor\debugger.lua
|
||||
["Cancel"] = "取消", -- src\editor\findreplace.lua
|
||||
["Cancelled by the user."] = nil, -- src\editor\findreplace.lua
|
||||
["Choose a project directory"] = "选择项目文件夹", -- src\editor\findreplace.lua, src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Choose..."] = "请选...", -- src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Clear Items"] = nil, -- src\editor\menu_file.lua
|
||||
["Choose a directory to map"] = nil, -- src\editor\filetree.lua
|
||||
["Choose a project directory"] = "选择项目文件夹", -- src\editor\toolbar.lua, src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Choose a search directory"] = nil, -- src\editor\findreplace.lua
|
||||
["Choose..."] = "请选...", -- src\editor\findreplace.lua, src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Clear Items"] = nil, -- src\editor\findreplace.lua, src\editor\menu_file.lua
|
||||
["Clear items from this list"] = nil, -- src\editor\menu_file.lua
|
||||
["Clear the output window before compiling or debugging"] = "编译或除错前清除输出视窗", -- src\editor\menu_project.lua
|
||||
["Close &Other Pages"] = "关闭其他页面", -- src\editor\gui.lua
|
||||
@@ -99,7 +95,7 @@ return {
|
||||
["Copy selected text to clipboard"] = "复制被选的text到clipboard", -- src\editor\menu_edit.lua
|
||||
["Correct &Indentation"] = nil, -- src\editor\menu_edit.lua
|
||||
["Couldn't activate file '%s' for debugging; continuing without it."] = "不能激活 '%s' 以除错; 省略后继续进行", -- src\editor\debugger.lua
|
||||
["Create an empty document"] = "新建空文档", -- src\editor\menu_file.lua
|
||||
["Create an empty document"] = "新建空文档", -- src\editor\toolbar.lua, src\editor\menu_file.lua
|
||||
["Cu&t"] = "剪切", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["Cut selected text to clipboard"] = "剪切被选的text到clipboard", -- src\editor\menu_edit.lua
|
||||
["Debugger server started at %s:%d."] = "除错伺服器起始于 %s:%d.", -- src\editor\debugger.lua
|
||||
@@ -108,12 +104,13 @@ return {
|
||||
["Debugging session started in '%s'."] = "除错会话于 '%s' 起始", -- src\editor\debugger.lua
|
||||
["Debugging suspended at '%s:%s' (couldn't activate the file)."] = "除错挂起于 '%s:%s' (不能激活文档).", -- src\editor\debugger.lua
|
||||
["Detach &Process"] = nil, -- src\editor\menu_project.lua
|
||||
["Directory"] = "文件夹", -- src\editor\findreplace.lua
|
||||
["Disable Indexing For '%s'"] = nil, -- src\editor\outline.lua
|
||||
["Do you want to delete '%s'?"] = nil, -- src\editor\filetree.lua
|
||||
["Do you want to overwrite it?"] = nil, -- src\editor\commands.lua
|
||||
["Do you want to reload it?"] = "需要重新导入吗?", -- src\editor\editor.lua
|
||||
["Do you want to save the changes to '%s'?"] = "需要把更改保存于 '%s'?", -- src\editor\commands.lua
|
||||
["E&xit"] = "离开", -- src\editor\menu_file.lua
|
||||
["Enable Indexing"] = nil, -- src\editor\outline.lua
|
||||
["Enter Lua code and press Enter to run it."] = "输入Lua代码然后按 <Enter> 以执行", -- src\editor\shellbox.lua
|
||||
["Enter command line parameters (use Cancel to clear)"] = nil, -- src\editor\menu_project.lua
|
||||
["Enter replacement text"] = nil, -- src\editor\editor.lua
|
||||
@@ -124,31 +121,30 @@ return {
|
||||
["Error"] = "错误", -- src\editor\commands.lua
|
||||
["Evaluate In Console"] = nil, -- src\editor\editor.lua
|
||||
["Execute the current project/file and keep updating the code to see immediate results"] = "执行当前项目/文档和更新代码以便得到执行结果", -- src\editor\menu_project.lua
|
||||
["Execute the current project/file"] = "执行当前项目/文档", -- src\editor\menu_project.lua
|
||||
["Execute the current project/file"] = "执行当前项目/文档", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Execution error"] = "执行出错误", -- src\editor\debugger.lua
|
||||
["Exit program"] = "离开程式", -- src\editor\menu_file.lua
|
||||
["File '%s' has been modified on disk."] = "磁碟上的文档 '%s' 已被更改", -- src\editor\editor.lua
|
||||
["File '%s' has more recent timestamp than restored '%s'; please review before saving."] = "文档 '%s' 的时间戳比 '%s' 更新近; 请检验后再保存", -- src\editor\commands.lua
|
||||
["File '%s' is missing and can't be recovered."] = nil, -- src\editor\commands.lua
|
||||
["File '%s' no longer exists."] = "文档 '%s' 已不存在", -- src\editor\menu_file.lua, src\editor\editor.lua
|
||||
["File Type"] = "文档类", -- src\editor\findreplace.lua
|
||||
["File already exists."] = nil, -- src\editor\commands.lua
|
||||
["File history"] = "文档历史", -- src\editor\menu_file.lua
|
||||
["Find &In Files"] = "在文档中查找", -- src\editor\menu_search.lua
|
||||
["Find &Next"] = "查找下一个", -- src\editor\menu_search.lua
|
||||
["Find &Previous"] = "查找上一个", -- src\editor\menu_search.lua
|
||||
["Find in files"] = "在文档中查找", -- src\editor\findreplace.lua
|
||||
["Find and insert library function"] = nil, -- src\editor\menu_search.lua
|
||||
["Find and replace text in files"] = "在文档中查找text然后更换", -- src\editor\menu_search.lua
|
||||
["Find and replace text"] = "查找text然后更换", -- src\editor\menu_search.lua
|
||||
["Find and replace text"] = "查找text然后更换", -- src\editor\toolbar.lua, src\editor\menu_search.lua
|
||||
["Find in files"] = "在文档中查找", -- src\editor\toolbar.lua
|
||||
["Find text in files"] = "在文档中查找text", -- src\editor\menu_search.lua
|
||||
["Find text"] = "查找text", -- src\editor\menu_search.lua
|
||||
["Find text"] = "查找text", -- src\editor\toolbar.lua, src\editor\menu_search.lua
|
||||
["Find the earlier text occurence"] = "查找之前出现的text", -- src\editor\menu_search.lua
|
||||
["Find the next text occurrence"] = "查找之後将出现的text", -- src\editor\menu_search.lua
|
||||
["Find"] = "查找", -- src\editor\findreplace.lua
|
||||
["Find"] = "查找", -- src\editor\toolbar.lua
|
||||
["Fold or unfold all code folds"] = "折叠/展开所有代码折叠", -- src\editor\menu_edit.lua
|
||||
["Found %d instance."] = {}, -- src\editor\findreplace.lua
|
||||
["Found auto-recovery record and restored saved session."] = "找到自动恢复存档和恢复已存对话", -- src\editor\commands.lua
|
||||
["Found"] = "找到", -- src\editor\findreplace.lua
|
||||
["Full &Screen"] = "全屏", -- src\editor\menu_view.lua
|
||||
["Go To Definition"] = nil, -- src\editor\editor.lua
|
||||
["Go To File..."] = nil, -- src\editor\menu_search.lua
|
||||
@@ -161,24 +157,26 @@ return {
|
||||
["Go to symbol"] = nil, -- src\editor\menu_search.lua
|
||||
["Hide '.%s' Files"] = nil, -- src\editor\filetree.lua
|
||||
["INS"] = "INS", -- src\editor\editor.lua
|
||||
["Ignore and don't index symbols from files in the selected directory"] = nil, -- src\editor\outline.lua
|
||||
["Ignored error in debugger initialization code: %s."] = nil, -- src\editor\debugger.lua
|
||||
["In Files"] = "在档案里", -- src\editor\findreplace.lua
|
||||
["Indexing %d files: '%s'..."] = nil, -- src\editor\outline.lua
|
||||
["Indexing completed."] = nil, -- src\editor\outline.lua
|
||||
["Insert Library Function..."] = nil, -- src\editor\menu_search.lua
|
||||
["Known Files"] = "所知的文档", -- src\editor\commands.lua
|
||||
["Ln: %d"] = "行: %d", -- src\editor\editor.lua
|
||||
["Local console"] = "本地主控台", -- src\editor\gui.lua, src\editor\shellbox.lua
|
||||
["Lua &Interpreter"] = "Lua 解释器", -- src\editor\menu_project.lua
|
||||
["Map Directory..."] = nil, -- src\editor\filetree.lua
|
||||
["Mapped remote request for '%s' to '%s'."] = "映射远程请求 '%s' 至 '%s'", -- src\editor\debugger.lua
|
||||
["Match case"] = "case匹配", -- src\editor\findreplace.lua
|
||||
["Match whole word"] = "全句匹配", -- src\editor\findreplace.lua
|
||||
["Match case"] = "case匹配", -- src\editor\toolbar.lua
|
||||
["Match whole word"] = "全句匹配", -- src\editor\toolbar.lua
|
||||
["Mixed end-of-line encodings detected."] = "发现混杂的EOL编码", -- src\editor\commands.lua
|
||||
["Navigate"] = nil, -- src\editor\menu_search.lua
|
||||
["New &File"] = nil, -- src\editor\filetree.lua
|
||||
["OVR"] = "OVR", -- src\editor\editor.lua
|
||||
["Open With Default Program"] = nil, -- src\editor\filetree.lua
|
||||
["Open an existing document"] = "打开现存文档", -- src\editor\menu_file.lua
|
||||
["Open an existing document"] = "打开现存文档", -- src\editor\toolbar.lua, src\editor\menu_file.lua
|
||||
["Open file"] = "打开文档", -- src\editor\commands.lua
|
||||
["Options"] = "选项", -- src\editor\findreplace.lua
|
||||
["Outline Window"] = nil, -- src\editor\menu_view.lua
|
||||
["Outline"] = nil, -- src\editor\outline.lua
|
||||
["Output (running)"] = "输出 (进行中)", -- src\editor\debugger.lua, src\editor\output.lua
|
||||
@@ -200,50 +198,59 @@ return {
|
||||
["Project"] = "项目", -- src\editor\filetree.lua
|
||||
["Project/&FileTree Window"] = "项目/文档树 视窗", -- src\editor\menu_view.lua
|
||||
["Provide command line parameters"] = nil, -- src\editor\menu_project.lua
|
||||
["Queued %d files to index."] = nil, -- src\editor\menu_search.lua
|
||||
["R/O"] = "唯读", -- src\editor\editor.lua
|
||||
["R/W"] = "读写", -- src\editor\editor.lua
|
||||
["Re&place In Files"] = "在文档中替换", -- src\editor\menu_search.lua
|
||||
["Re-indent selected lines"] = nil, -- src\editor\menu_edit.lua
|
||||
["Reached end of text and wrapped around."] = nil, -- src\editor\findreplace.lua
|
||||
["Recent &Projects"] = nil, -- src\editor\menu_file.lua
|
||||
["Recent Files"] = "最近的文档", -- src\editor\menu_file.lua
|
||||
["Redo last edit undone"] = "重做最后被取消的编辑", -- src\editor\menu_edit.lua
|
||||
["Refresh Index"] = nil, -- src\editor\outline.lua
|
||||
["Refresh indexed symbols from files in the selected directory"] = nil, -- src\editor\outline.lua
|
||||
["Refresh"] = "刷新", -- src\editor\filetree.lua
|
||||
["Refused a request to start a new debugging session as there is one in progress already."] = "因为有另一个除错在进行,拒绝开启新的除错对话", -- src\editor\debugger.lua
|
||||
["Regular expression"] = "正则表达式", -- src\editor\findreplace.lua
|
||||
["Regular expression"] = "正则表达式", -- src\editor\toolbar.lua
|
||||
["Remote console"] = "远程主控台", -- src\editor\shellbox.lua
|
||||
["Rename All Instances"] = nil, -- src\editor\editor.lua
|
||||
["Replace all"] = "更换全部", -- src\editor\findreplace.lua
|
||||
["Replace All Selections"] = nil, -- src\editor\editor.lua
|
||||
["Replace"] = "更换", -- src\editor\findreplace.lua
|
||||
["Replace all"] = "更换全部", -- src\editor\toolbar.lua
|
||||
["Replace next instance"] = nil, -- src\editor\toolbar.lua
|
||||
["Replaced %d instance."] = {}, -- src\editor\findreplace.lua
|
||||
["Replaced an invalid UTF8 character with %s."] = "以%s更换无效的UTF8字元", -- src\editor\commands.lua
|
||||
["Replaced"] = "更换", -- src\editor\findreplace.lua
|
||||
["Replacing"] = "更换中", -- src\editor\findreplace.lua
|
||||
["Reset to default layout"] = "重置缺省布局", -- src\editor\menu_view.lua
|
||||
["Run As Scratchpad"] = "以Scratchpad执行", -- src\editor\menu_project.lua
|
||||
["Run as Scratchpad"] = "以Scratchpad执行", -- src\editor\menu_project.lua
|
||||
["Run To Cursor"] = nil, -- src\editor\menu_project.lua, src\editor\editor.lua
|
||||
["Run as Scratchpad"] = "以Scratchpad执行", -- src\editor\toolbar.lua
|
||||
["Run to cursor"] = nil, -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["S&top Debugging"] = "停止除错", -- src\editor\menu_project.lua
|
||||
["S&top Process"] = "停止进程", -- src\editor\menu_project.lua
|
||||
["Save &As..."] = "另存为...", -- src\editor\gui.lua, src\editor\menu_file.lua
|
||||
["Save A&ll"] = "全部存档", -- src\editor\menu_file.lua
|
||||
["Save Changes?"] = "存档更新?", -- src\editor\commands.lua
|
||||
["Save all open documents"] = "保存所有开启的文档", -- src\editor\menu_file.lua
|
||||
["Save all open documents"] = "保存所有开启的文档", -- src\editor\toolbar.lua, src\editor\menu_file.lua
|
||||
["Save file as"] = "文档另存为", -- src\editor\commands.lua
|
||||
["Save file?"] = "保存文档?", -- src\editor\commands.lua
|
||||
["Save the current document to a file with a new name"] = "用新档案名称保存当前文档", -- src\editor\menu_file.lua
|
||||
["Save the current document"] = "保存当前文档", -- src\editor\menu_file.lua
|
||||
["Save the current document"] = "保存当前文档", -- src\editor\toolbar.lua, src\editor\menu_file.lua
|
||||
["Saved auto-recover at %s."] = "在 %s 存档自动恢复", -- src\editor\commands.lua
|
||||
["Scope"] = "范围", -- src\editor\findreplace.lua
|
||||
["Scratchpad error"] = "暂存器错误", -- src\editor\debugger.lua
|
||||
["Searching for"] = "搜索", -- src\editor\findreplace.lua
|
||||
["Search direction"] = nil, -- src\editor\toolbar.lua
|
||||
["Search in subdirectories"] = nil, -- src\editor\toolbar.lua
|
||||
["Searching for '%s'."] = nil, -- src\editor\findreplace.lua
|
||||
["Sel: %d/%d"] = nil, -- src\editor\editor.lua
|
||||
["Select &All"] = "选全部", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["Select all text in the editor"] = "选编辑器内的所有text", -- src\editor\menu_edit.lua
|
||||
["Select And Find Next"] = nil, -- src\editor\menu_search.lua
|
||||
["Select And Find Previous"] = nil, -- src\editor\menu_search.lua
|
||||
["Select all text in the editor"] = "选编辑器内的所有text", -- src\editor\menu_edit.lua
|
||||
["Select the word under cursor and find its next occurrence"] = nil, -- src\editor\menu_search.lua
|
||||
["Select the word under cursor and find its previous occurrence"] = nil, -- src\editor\menu_search.lua
|
||||
["Set As Start File"] = nil, -- src\editor\filetree.lua
|
||||
["Set From Current File"] = "从当前文档设置", -- src\editor\menu_project.lua
|
||||
["Set project directory from current file"] = "从当前文档设置项目文件夹", -- src\editor\menu_project.lua
|
||||
["Set To Project Directory"] = nil, -- src\editor\findreplace.lua
|
||||
["Set project directory from current file"] = "从当前文档设置项目文件夹", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Set search directory"] = nil, -- src\editor\toolbar.lua
|
||||
["Set the interpreter to be used"] = "设置解释器", -- src\editor\menu_project.lua
|
||||
["Set the project directory to be used"] = "设置项目文件夹", -- src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Settings: System"] = "设置: 系统", -- src\editor\menu_edit.lua
|
||||
@@ -253,40 +260,50 @@ return {
|
||||
["Show Hidden Files"] = nil, -- src\editor\filetree.lua
|
||||
["Show Location"] = nil, -- src\editor\gui.lua, src\editor\filetree.lua
|
||||
["Show all files"] = nil, -- src\editor\filetree.lua
|
||||
["Show context"] = nil, -- src\editor\toolbar.lua
|
||||
["Show files previously hidden"] = nil, -- src\editor\filetree.lua
|
||||
["Show multiple result windows"] = nil, -- src\editor\toolbar.lua
|
||||
["Show tooltip for current position; place cursor after opening bracket of function"] = "在当前的位置展现tooltip; 把游标放置于函数的开括号之后", -- src\editor\menu_edit.lua
|
||||
["Show/Hide the status bar"] = nil, -- src\editor\menu_view.lua
|
||||
["Show/Hide the toolbar"] = nil, -- src\editor\menu_view.lua
|
||||
["Sort By Name"] = nil, -- src\editor\outline.lua
|
||||
["Sort selected lines"] = "对被选的行进行排列", -- src\editor\menu_edit.lua
|
||||
["Source"] = nil, -- src\editor\menu_edit.lua
|
||||
["Stack"] = "堆栈", -- src\editor\debugger.lua
|
||||
["Start &Debugging"] = "开始除错", -- src\editor\menu_project.lua
|
||||
["Start or continue debugging"] = nil, -- src\editor\menu_project.lua
|
||||
["Start or continue debugging"] = nil, -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Step &Into"] = "除错运行 进入子程序/函数", -- src\editor\menu_project.lua
|
||||
["Step &Over"] = "除错运行 掠过子程序/函数", -- src\editor\menu_project.lua
|
||||
["Step O&ut"] = "除错运行 离开子程序/函数", -- src\editor\menu_project.lua
|
||||
["Step into"] = "除错运行 进入子程序/函数", -- src\editor\menu_project.lua
|
||||
["Step out of the current function"] = "除错运行 离开当前的函数", -- src\editor\menu_project.lua
|
||||
["Step over"] = "除错运行 掠过子程序/函数", -- src\editor\menu_project.lua
|
||||
["Stop debugging and continue running the process"] = nil, -- src\editor\menu_project.lua
|
||||
["Stop the currently running process"] = "终止目前进行着的进程", -- src\editor\menu_project.lua
|
||||
["Step into"] = "除错运行 进入子程序/函数", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Step out of the current function"] = "除错运行 离开当前的函数", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Step over"] = "除错运行 掠过子程序/函数", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Stop debugging and continue running the process"] = nil, -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Stop the currently running process"] = "终止目前进行着的进程", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Switch to or from full screen mode"] = "切换全屏模式", -- src\editor\menu_view.lua
|
||||
["Symbol Index"] = nil, -- src\editor\outline.lua
|
||||
["Text not found."] = "寻找不到text", -- src\editor\findreplace.lua
|
||||
["The API file must be located in a subdirectory of the API directory."] = "API file必须存放在API文件夹中的子文件夹", -- src\editor\autocomplete.lua
|
||||
["Toggle Bookmark"] = nil, -- src\editor\menu_edit.lua
|
||||
["Toggle Break&point"] = "切换中断点", -- src\editor\menu_project.lua
|
||||
["Toggle bookmark"] = nil, -- src\editor\menu_edit.lua
|
||||
["Toggle breakpoint"] = "切换中断点", -- src\editor\menu_project.lua
|
||||
["Toggle bookmark"] = nil, -- src\editor\toolbar.lua, src\editor\menu_edit.lua
|
||||
["Toggle breakpoint"] = "切换中断点", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Tr&ace"] = "追踪", -- src\editor\menu_project.lua
|
||||
["Trace execution showing each executed line"] = "执行追踪展示每一执行过的语句", -- src\editor\menu_project.lua
|
||||
["Unable to create directory '%s'."] = nil, -- src\editor\filetree.lua
|
||||
["Unable to create file '%s'."] = nil, -- src\editor\filetree.lua
|
||||
["Unable to delete directory '%s': %s"] = nil, -- src\editor\filetree.lua
|
||||
["Unable to delete file '%s': %s"] = nil, -- src\editor\filetree.lua
|
||||
["Unable to load file '%s'."] = "导出文件失败 '%s'.", -- src\editor\commands.lua
|
||||
["Unable to rename file '%s'."] = nil, -- src\editor\filetree.lua
|
||||
["Unable to save file '%s': %s"] = "保存文件失败 '%s': %s", -- src\editor\commands.lua
|
||||
["Unable to stop program (pid: %d), code %d."] = "停止程序失败 (pid: %d), 代码 %d.", -- src\editor\debugger.lua
|
||||
["Undo last edit"] = "清除前编辑动作", -- src\editor\menu_edit.lua
|
||||
["Unmap Directory"] = nil, -- src\editor\filetree.lua
|
||||
["Unset '%s' As Start File"] = nil, -- src\editor\filetree.lua
|
||||
["Updated %d file."] = {}, -- src\editor\findreplace.lua
|
||||
["Updating symbol index and settings..."] = nil, -- src\editor\outline.lua
|
||||
["Use %s to close."] = nil, -- src\editor\findreplace.lua
|
||||
["Use '%s' to see full description."] = "用 '%s' 来看全解析", -- src\editor\editor.lua
|
||||
["Use '%s' to show line endings and '%s' to convert them."] = "用 '%s' 来显示语句的终结和 '%s' 来进行转换", -- src\editor\commands.lua
|
||||
["Use 'clear' to clear the shell output and the history."] = "用 'clear' 来清除shell的输出和历史", -- src\editor\shellbox.lua
|
||||
@@ -294,11 +311,11 @@ return {
|
||||
["View the outline window"] = nil, -- src\editor\menu_view.lua
|
||||
["View the output/console window"] = "查看输出/主控台视窗", -- src\editor\menu_view.lua
|
||||
["View the project/filetree window"] = "查看项目/文件树视窗", -- src\editor\menu_view.lua
|
||||
["View the stack window"] = "查看堆栈视窗", -- src\editor\menu_view.lua
|
||||
["View the watch window"] = "查看监视视窗", -- src\editor\menu_view.lua
|
||||
["View the stack window"] = "查看堆栈视窗", -- src\editor\toolbar.lua, src\editor\menu_view.lua
|
||||
["View the watch window"] = "查看监视视窗", -- src\editor\toolbar.lua, src\editor\menu_view.lua
|
||||
["Watch"] = "监视", -- src\editor\debugger.lua
|
||||
["Welcome to the interactive Lua interpreter."] = "欢迎来到互动 Lua interpreter.", -- src\editor\shellbox.lua
|
||||
["Wrap around"] = "卷绕", -- src\editor\findreplace.lua
|
||||
["Wrap around"] = "卷绕", -- src\editor\toolbar.lua
|
||||
["You must save the program first."] = "必须先保存程序", -- src\editor\commands.lua
|
||||
["Zoom In"] = nil, -- src\editor\menu_view.lua
|
||||
["Zoom Out"] = nil, -- src\editor\menu_view.lua
|
||||
|
||||
127
cfg/i18n/de.lua
127
cfg/i18n/de.lua
@@ -1,26 +1,24 @@
|
||||
return {
|
||||
[0] = function(c) return c == 1 and 1 or 2 end, -- plural
|
||||
["%d instance"] = {"%d Instanz", "%d Instanzen"}, -- src\editor\findreplace.lua
|
||||
["%s event failed: %s"] = "Ereignis fehlgeschlagen : %s", -- src\editor\package.lua
|
||||
["%s%% loaded..."] = "%s%% geladen...", -- src\editor\commands.lua
|
||||
["&About"] = "&Über", -- src\editor\menu_help.lua
|
||||
["&Add Watch"] = "&Beobachtungspunkt hinzufügen", -- src\editor\debugger.lua
|
||||
["&Break"] = "&Unterbrechung", -- src\editor\menu_project.lua
|
||||
["&Close Page"] = "S&eite schließen", -- src\editor\gui.lua, src\editor\menu_file.lua
|
||||
["&Community"] = "&Community", -- src\editor\menu_help.lua
|
||||
["&Compile"] = "&Compiler", -- src\editor\menu_project.lua
|
||||
["&Copy Value"] = "Wert kopieren", -- src\editor\debugger.lua
|
||||
["&Copy"] = "&Kopieren", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["&Default Layout"] = "Standard-&Layout", -- src\editor\menu_view.lua
|
||||
["&Delete Watch"] = "&Beobachtungspunkt entfernen", -- src\editor\debugger.lua
|
||||
["&Delete"] = "&Entfernen", -- src\editor\filetree.lua
|
||||
["&Documentation"] = "&Dokumentation", -- src\editor\menu_help.lua
|
||||
["&Down"] = "&Runter", -- src\editor\findreplace.lua
|
||||
["&Edit Project Directory"] = "Projektverzeichnis ändern", -- src\editor\filetree.lua
|
||||
["&Edit Value"] = "Wert editieren", -- src\editor\debugger.lua
|
||||
["&Edit Watch"] = "&Beobachtungspunkt bearbeiten", -- src\editor\debugger.lua
|
||||
["&Edit"] = "&Bearbeiten", -- src\editor\menu_edit.lua
|
||||
["&File"] = "&Datei", -- src\editor\menu_file.lua
|
||||
["&Find All"] = "&Alle finden", -- src\editor\findreplace.lua
|
||||
["&Find Next"] = "&Nächsten finden", -- src\editor\findreplace.lua
|
||||
["&Find"] = "&Finden", -- src\editor\menu_search.lua
|
||||
["&Fold/Unfold All"] = "A&lles ein-/ausklappen", -- src\editor\menu_edit.lua
|
||||
["&Frequently Asked Questions"] = "&FAQ", -- src\editor\menu_help.lua
|
||||
@@ -35,8 +33,7 @@ return {
|
||||
["&Project"] = "&Projekt", -- src\editor\menu_project.lua
|
||||
["&Redo"] = "&Wiederholen", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["&Rename"] = "&Umbenennen", -- src\editor\filetree.lua
|
||||
["&Replace All"] = "&Alles ersetzen", -- src\editor\findreplace.lua
|
||||
["&Replace"] = "&Ersetzen", -- src\editor\findreplace.lua, src\editor\menu_search.lua
|
||||
["&Replace"] = "&Ersetzen", -- src\editor\menu_search.lua
|
||||
["&Run"] = "&Starten", -- src\editor\menu_project.lua
|
||||
["&Save"] = "&Speichern", -- src\editor\gui.lua, src\editor\menu_file.lua
|
||||
["&Search"] = "&Suchen", -- src\editor\menu_search.lua
|
||||
@@ -44,14 +41,11 @@ return {
|
||||
["&Stack Window"] = "&Stapel/Stack", -- src\editor\menu_view.lua
|
||||
["&Start Debugger Server"] = "De&bugserver starten", -- src\editor\menu_project.lua
|
||||
["&Status Bar"] = "S&tatuszeile", -- src\editor\menu_view.lua
|
||||
["&Subdirectories"] = "&Unterverzeichnisse", -- src\editor\findreplace.lua
|
||||
["&Tool Bar"] = "&Werkzeugleiste", -- src\editor\menu_view.lua
|
||||
["&Tutorials"] = "&Tutorien", -- src\editor\menu_help.lua
|
||||
["&Undo"] = "&Rückgängig", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["&Up"] = "&Hoch", -- src\editor\findreplace.lua
|
||||
["&View"] = "&Ansicht", -- src\editor\menu_view.lua
|
||||
["&Watch Window"] = "&Beobachtungspunkte", -- src\editor\menu_view.lua
|
||||
[".bak on replace"] = ".bak bei Ersetzen", -- src\editor\findreplace.lua
|
||||
["About %s"] = "Über %s", -- src\editor\menu_help.lua
|
||||
["Add To Scratchpad"] = "Zu Entwurf hinzufügen", -- src\editor\editor.lua
|
||||
["Add Watch Expression"] = "Beobachtungspunkt hinzufügen", -- src\editor\editor.lua
|
||||
@@ -61,25 +55,27 @@ return {
|
||||
["Analyze"] = "&Analyseroutine", -- src\editor\inspect.lua
|
||||
["Auto Complete Identifiers"] = "Auto-Vervollständigen von Bezeichnern", -- src\editor\menu_edit.lua
|
||||
["Auto complete while typing"] = "Auto-Vervollständigen beim Tippen", -- src\editor\menu_edit.lua
|
||||
["Binary file is shown as read-only as it is only partially loaded."] = "Binärdatei ist als schreibgeschützt angezeigt, da sie nur teilweise geladen wurde.", -- src\editor\commands.lua
|
||||
["Bookmark"] = "Lese&zeichen", -- src\editor\menu_edit.lua
|
||||
["Break execution at the next executed line of code"] = "Programmausführung bei der nächsten ausgeführten Zeile stoppen", -- src\editor\menu_project.lua
|
||||
["Break execution at the next executed line of code"] = "Programmausführung bei der nächsten ausgeführten Zeile stoppen", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["C&lear Output Window"] = "Ausgabefenster l&öschen", -- src\editor\gui.lua, src\editor\menu_project.lua
|
||||
["C&omment/Uncomment"] = "(Aus-)/K&ommentieren", -- src\editor\menu_edit.lua
|
||||
["Can't debug the script in the active editor window."] = "Script kann im aktiven Editorfenster nicht gedebuggt werden.", -- src\editor\debugger.lua
|
||||
["Can't evaluate the expression while the application is running."] = "Kann den Ausdruck nicht auswerten solange die Anwendung läuft.", -- src\editor\debugger.lua
|
||||
["Can't find file '%s' in the current project to activate for debugging. Update the project or open the file in the editor before debugging."] = "Kann Datei '%s' zwecks Debugging im aktuellen Projekt nicht finden. Bitte Projekt aktualisieren oder Datei in den Editor laden.", -- src\editor\debugger.lua
|
||||
["Can't open file '%s': %s"] = "Kann Datei '%s' nicht öffnen: %s", -- src\editor\singleinstance.lua
|
||||
["Can't open file '%s': %s"] = "Kann Datei '%s' nicht öffnen: %s", -- src\editor\findreplace.lua, src\editor\singleinstance.lua, src\editor\inspect.lua, src\editor\outline.lua
|
||||
["Can't process auto-recovery record; invalid format: %s."] = "Auto-Wiederherstellen nicht möglich; ungültiges Format: %s.", -- src\editor\commands.lua
|
||||
["Can't replace in read-only text."] = "Ersetzen in schreibgeschütztem Text nicht möglich.", -- src\editor\findreplace.lua
|
||||
["Can't run the entry point script ('%s')."] = "Kann Script für Einsprungspunkt ('%s') nicht ausführen.", -- src\editor\debugger.lua
|
||||
["Can't start debugger server at %s:%d: %s."] = "Kann Debugserver nicht starten (%s:%d): %s.", -- src\editor\debugger.lua
|
||||
["Can't start debugging for '%s'."] = "Kann Debuggen nicht starten für '%s'.", -- src\editor\debugger.lua
|
||||
["Can't start debugging session due to internal error '%s'."] = "Debugging kann nicht gestartet werden wegen internem Fehler '%s'.", -- src\editor\debugger.lua
|
||||
["Can't start debugging without an opened file or with the current file not being saved ('%s')."] = "Debugging kann ohne geöffnete Datei nicht gestartet werden oder wenn die aktuelle Datei nicht gespeichert ist ('%s').", -- src\editor\debugger.lua
|
||||
["Can't stop debugger server as it is not started."] = "Kann Debugserver nicht stoppen wenn er vorher nicht gestartet wurde.", -- src\editor\debugger.lua
|
||||
["Cancel"] = "Abbrechen", -- src\editor\findreplace.lua
|
||||
["Cancelled by the user."] = "Durch Benutzer abgebrochen.", -- src\editor\findreplace.lua
|
||||
["Choose a project directory"] = "Projektverzeichnis auswählen", -- src\editor\findreplace.lua, src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Choose..."] = "Wählen...", -- src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Clear Items"] = "Liste &löschen", -- src\editor\menu_file.lua
|
||||
["Choose a directory to map"] = "Bitte Verzeichnis wählen zum virtuellen Einbinden", -- src\editor\filetree.lua
|
||||
["Choose a project directory"] = "Projektverzeichnis auswählen", -- src\editor\toolbar.lua, src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Choose a search directory"] = "Bitte Verzeichnis zum Durchsuchen auswählen.", -- src\editor\findreplace.lua
|
||||
["Choose..."] = "Wählen...", -- src\editor\findreplace.lua, src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Clear Items"] = "Liste &löschen", -- src\editor\findreplace.lua, src\editor\menu_file.lua
|
||||
["Clear items from this list"] = "Diese Liste löschen", -- src\editor\menu_file.lua
|
||||
["Clear the output window before compiling or debugging"] = "Vor Kompilieren oder Debuggen das Ausgabefenster löschen", -- src\editor\menu_project.lua
|
||||
["Close &Other Pages"] = "A&ndere Seiten schließen", -- src\editor\gui.lua
|
||||
@@ -100,7 +96,7 @@ return {
|
||||
["Copy selected text to clipboard"] = "Text in Zwischenablage kopieren", -- src\editor\menu_edit.lua
|
||||
["Correct &Indentation"] = "E&inzug korrigieren", -- src\editor\menu_edit.lua
|
||||
["Couldn't activate file '%s' for debugging; continuing without it."] = "Konnte Datei '%s' zwecks nicht Debugging aktivieren; fahre ohne die Datei fort.", -- src\editor\debugger.lua
|
||||
["Create an empty document"] = "Leeres Dokument anlegen", -- src\editor\menu_file.lua
|
||||
["Create an empty document"] = "Leeres Dokument anlegen", -- src\editor\toolbar.lua, src\editor\menu_file.lua
|
||||
["Cu&t"] = "A&usschneiden", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["Cut selected text to clipboard"] = "Schneide ausgewählten Text in die Zwischenablage hinein", -- src\editor\menu_edit.lua
|
||||
["Debugger server started at %s:%d."] = "Debugserver gestartet als %s:%d.", -- src\editor\debugger.lua
|
||||
@@ -109,12 +105,13 @@ return {
|
||||
["Debugging session started in '%s'."] = "Debugging Session gestartet '%s'.", -- src\editor\debugger.lua
|
||||
["Debugging suspended at '%s:%s' (couldn't activate the file)."] = "Debugging angehalten bei '%s:%s' (konnte Datei nicht aktivieren).", -- src\editor\debugger.lua
|
||||
["Detach &Process"] = "Prozeß abkoppeln", -- src\editor\menu_project.lua
|
||||
["Directory"] = "Verzeichnis", -- src\editor\findreplace.lua
|
||||
["Disable Indexing For '%s'"] = "Indizieren ausschalten für '%s'", -- src\editor\outline.lua
|
||||
["Do you want to delete '%s'?"] = "Soll '%s' gelöscht werden?", -- src\editor\filetree.lua
|
||||
["Do you want to overwrite it?"] = "Überschreiben?", -- src\editor\commands.lua
|
||||
["Do you want to reload it?"] = "Neu laden?", -- src\editor\editor.lua
|
||||
["Do you want to save the changes to '%s'?"] = "Änderungen an '%s' speichern?", -- src\editor\commands.lua
|
||||
["E&xit"] = "&Beenden", -- src\editor\menu_file.lua
|
||||
["Enable Indexing"] = "Indizieren aktivieren", -- src\editor\outline.lua
|
||||
["Enter Lua code and press Enter to run it."] = "Lua-Code eingeben und Enter drücken zum Ausführen.", -- src\editor\shellbox.lua
|
||||
["Enter command line parameters (use Cancel to clear)"] = "Kommandozeilenparameter eingeben (Cancel zum löschen)", -- src\editor\menu_project.lua
|
||||
["Enter replacement text"] = "Neuen Text eingeben", -- src\editor\editor.lua
|
||||
@@ -125,31 +122,30 @@ return {
|
||||
["Error"] = "Fehler", -- src\editor\commands.lua
|
||||
["Evaluate In Console"] = "In Konsole auswerten", -- src\editor\editor.lua
|
||||
["Execute the current project/file and keep updating the code to see immediate results"] = "Aktuelles Projekt/ aktuelle Datei ausführen und Quellcode ändern, um Ergebnisse in Echtzeit zu sehen", -- src\editor\menu_project.lua
|
||||
["Execute the current project/file"] = "Aktuelles Projekt/ aktuelle Datei ausführen", -- src\editor\menu_project.lua
|
||||
["Execute the current project/file"] = "Aktuelles Projekt/ aktuelle Datei ausführen", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Execution error"] = "Fehler bei Ausführung", -- src\editor\debugger.lua
|
||||
["Exit program"] = "Programm beenden", -- src\editor\menu_file.lua
|
||||
["File '%s' has been modified on disk."] = "Datei '%s' wurde auf der Festplatte geändert.", -- src\editor\editor.lua
|
||||
["File '%s' has more recent timestamp than restored '%s'; please review before saving."] = "Datei '%s' hat neueren Zeitstempel als wiederhergestellte Datei '%s'; bitte vor dem Speichern kontrollieren.", -- src\editor\commands.lua
|
||||
["File '%s' is missing and can't be recovered."] = "Datei '%s' fehlt und kann nicht wiederhergestellt werden.", -- src\editor\commands.lua
|
||||
["File '%s' no longer exists."] = "Datei '%s' existiert nicht mehr.", -- src\editor\menu_file.lua, src\editor\editor.lua
|
||||
["File Type"] = "Dateityp", -- src\editor\findreplace.lua
|
||||
["File already exists."] = "Datei existiert bereits.", -- src\editor\commands.lua
|
||||
["File history"] = "Dateiverlauf", -- src\editor\menu_file.lua
|
||||
["Find &In Files"] = "Finde &in Dateien", -- src\editor\menu_search.lua
|
||||
["Find &Next"] = "Finde &Nächste", -- src\editor\menu_search.lua
|
||||
["Find &Previous"] = "Finde &Vorherige", -- src\editor\menu_search.lua
|
||||
["Find in files"] = "Finde in dateien", -- src\editor\findreplace.lua
|
||||
["Find and insert library function"] = "Suchen und Einfügen von Funktion aus Bibliothek", -- src\editor\menu_search.lua
|
||||
["Find and replace text in files"] = "Finde und ersetze Text in Dateien", -- src\editor\menu_search.lua
|
||||
["Find and replace text"] = "Finde und ersetze Text", -- src\editor\menu_search.lua
|
||||
["Find and replace text"] = "Finde und ersetze Text", -- src\editor\toolbar.lua, src\editor\menu_search.lua
|
||||
["Find in files"] = "Finde in dateien", -- src\editor\toolbar.lua
|
||||
["Find text in files"] = "Finde Text in Dateien", -- src\editor\menu_search.lua
|
||||
["Find text"] = "Finde Text", -- src\editor\menu_search.lua
|
||||
["Find text"] = "Finde Text", -- src\editor\toolbar.lua, src\editor\menu_search.lua
|
||||
["Find the earlier text occurence"] = "Finde vorheriges Auftreten des Textes", -- src\editor\menu_search.lua
|
||||
["Find the next text occurrence"] = "Finde nächstes Auftreten des Textes", -- src\editor\menu_search.lua
|
||||
["Find"] = "Finden", -- src\editor\findreplace.lua
|
||||
["Find"] = "Finden", -- src\editor\toolbar.lua
|
||||
["Fold or unfold all code folds"] = "Alle Stellen im Code ein-/ausklappen ", -- src\editor\menu_edit.lua
|
||||
["Found %d instance."] = {"Eine Instanz gefunden", "%d Instanzen gefunden."}, -- src\editor\findreplace.lua
|
||||
["Found auto-recovery record and restored saved session."] = "Autowiederherstellen-Aufzeichnung gefunden und vorherige Sitzung wiederhergestellt.", -- src\editor\commands.lua
|
||||
["Found"] = "Gefunden", -- src\editor\findreplace.lua
|
||||
["Full &Screen"] = "&Vollbild", -- src\editor\menu_view.lua
|
||||
["Go To Definition"] = "Gehe zu Definition", -- src\editor\editor.lua
|
||||
["Go To File..."] = "Gehe zu Datei...", -- src\editor\menu_search.lua
|
||||
@@ -162,24 +158,26 @@ return {
|
||||
["Go to symbol"] = "Gehe zu Symbol", -- src\editor\menu_search.lua
|
||||
["Hide '.%s' Files"] = "Verstecke '.%s' Dateien", -- src\editor\filetree.lua
|
||||
["INS"] = "INS", -- src\editor\editor.lua
|
||||
["Ignore and don't index symbols from files in the selected directory"] = "Dateien im ausgewählten Verzeichnis ignorieren und keine Symbole indizieren.", -- src\editor\outline.lua
|
||||
["Ignored error in debugger initialization code: %s."] = "Ignorierter Fehler im Debugger-Init-Code: %s.", -- src\editor\debugger.lua
|
||||
["In Files"] = "In Dateien", -- src\editor\findreplace.lua
|
||||
["Indexing %d files: '%s'..."] = "%d Dateien indizieren: '%s'...", -- src\editor\outline.lua
|
||||
["Indexing completed."] = "Indizierung abgeschlossen.", -- src\editor\outline.lua
|
||||
["Insert Library Function..."] = "Füge Funktion aus Bibliothek ein", -- src\editor\menu_search.lua
|
||||
["Known Files"] = "Bekannte Dateien", -- src\editor\commands.lua
|
||||
["Ln: %d"] = "Zeile: %d", -- src\editor\editor.lua
|
||||
["Local console"] = "Lokale Konsole", -- src\editor\gui.lua, src\editor\shellbox.lua
|
||||
["Lua &Interpreter"] = "&Lua Interpreter", -- src\editor\menu_project.lua
|
||||
["Map Directory..."] = "Verzeichnis virtuell einbinden...", -- src\editor\filetree.lua
|
||||
["Mapped remote request for '%s' to '%s'."] = "Fern-Aufforderung für '%s' auf '%s' abgebildet.", -- src\editor\debugger.lua
|
||||
["Match case"] = "Groß-/Kleinschreibung", -- src\editor\findreplace.lua
|
||||
["Match whole word"] = "Ganzes Wort", -- src\editor\findreplace.lua
|
||||
["Match case"] = "Groß-/Kleinschreibung", -- src\editor\toolbar.lua
|
||||
["Match whole word"] = "Ganzes Wort", -- src\editor\toolbar.lua
|
||||
["Mixed end-of-line encodings detected."] = "Gemischte End-of-Line Kodierung entdeckt.", -- src\editor\commands.lua
|
||||
["Navigate"] = "Navigieren", -- src\editor\menu_search.lua
|
||||
["New &File"] = "Neue &Datei", -- src\editor\filetree.lua
|
||||
["OVR"] = "OVR", -- src\editor\editor.lua
|
||||
["Open With Default Program"] = "Mit Standardanwendung öffnen", -- src\editor\filetree.lua
|
||||
["Open an existing document"] = "Öffne existierendes Dokument", -- src\editor\menu_file.lua
|
||||
["Open an existing document"] = "Öffne existierendes Dokument", -- src\editor\toolbar.lua, src\editor\menu_file.lua
|
||||
["Open file"] = "Öffne Datei", -- src\editor\commands.lua
|
||||
["Options"] = "Optionen", -- src\editor\findreplace.lua
|
||||
["Outline Window"] = "Übersichtsfenster", -- src\editor\menu_view.lua
|
||||
["Outline"] = "Übersicht", -- src\editor\outline.lua
|
||||
["Output (running)"] = "Ausgabe (ausgeführt)", -- src\editor\debugger.lua, src\editor\output.lua
|
||||
@@ -201,50 +199,59 @@ return {
|
||||
["Project"] = "Projekt", -- src\editor\filetree.lua
|
||||
["Project/&FileTree Window"] = "&Projekt/Datei Fenster", -- src\editor\menu_view.lua
|
||||
["Provide command line parameters"] = "Kommandozeilenparameter angeben", -- src\editor\menu_project.lua
|
||||
["Queued %d files to index."] = "%d Dateien zum Indizieren vorgemerkt.", -- src\editor\menu_search.lua
|
||||
["R/O"] = "R/O", -- src\editor\editor.lua
|
||||
["R/W"] = "R/W", -- src\editor\editor.lua
|
||||
["Re&place In Files"] = "Ersetze in &Dateien", -- src\editor\menu_search.lua
|
||||
["Re-indent selected lines"] = "Ausgewählte Zeilen neu einrücken", -- src\editor\menu_edit.lua
|
||||
["Reached end of text and wrapped around."] = "Ende des Textes erreicht, setze am Beginn fort.", -- src\editor\findreplace.lua
|
||||
["Recent &Projects"] = "Letzte &Projekte", -- src\editor\menu_file.lua
|
||||
["Recent Files"] = "Letzte Dateien", -- src\editor\menu_file.lua
|
||||
["Redo last edit undone"] = "Stelle letzte rückgängig gemachte Bearbeitung wieder her", -- src\editor\menu_edit.lua
|
||||
["Refresh Index"] = "Index erneuern", -- src\editor\outline.lua
|
||||
["Refresh indexed symbols from files in the selected directory"] = "Erneuere indizierte Symbole in Dateien des ausgewählten Verzeichnisses", -- src\editor\outline.lua
|
||||
["Refresh"] = "Aktualisieren", -- src\editor\filetree.lua
|
||||
["Refused a request to start a new debugging session as there is one in progress already."] = "Starten einer neuen Debuggingsession abgelehnt, da bereits eine läuft.", -- src\editor\debugger.lua
|
||||
["Regular expression"] = "Regulärer Ausdruck", -- src\editor\findreplace.lua
|
||||
["Regular expression"] = "Regulärer Ausdruck", -- src\editor\toolbar.lua
|
||||
["Remote console"] = "Fernsteuerungs-Konsole", -- src\editor\shellbox.lua
|
||||
["Rename All Instances"] = "Umbenennen aller Instanzen", -- src\editor\editor.lua
|
||||
["Replace all"] = "Alles ersetzen", -- src\editor\findreplace.lua
|
||||
["Replace All Selections"] = "Alle Auswahlen ersetzen", -- src\editor\editor.lua
|
||||
["Replace"] = "Ersetzen", -- src\editor\findreplace.lua
|
||||
["Replace all"] = "Alles ersetzen", -- src\editor\toolbar.lua
|
||||
["Replace next instance"] = "Nächste Instanz ersetzen", -- src\editor\toolbar.lua
|
||||
["Replaced %d instance."] = {"Eine Instanz ersetzt.", "%d Instanzen ersetzt."}, -- src\editor\findreplace.lua
|
||||
["Replaced an invalid UTF8 character with %s."] = "Unbekanntes UTF8-Symbol ersetzt mit %s.", -- src\editor\commands.lua
|
||||
["Replaced"] = "Ersetzt:", -- src\editor\findreplace.lua
|
||||
["Replacing"] = "Am Ersetzen", -- src\editor\findreplace.lua
|
||||
["Reset to default layout"] = "Standard-Layout wiederherstellen", -- src\editor\menu_view.lua
|
||||
["Run As Scratchpad"] = "Als &Entwurf starten", -- src\editor\menu_project.lua
|
||||
["Run as Scratchpad"] = "Als &Entwurf starten", -- src\editor\menu_project.lua
|
||||
["Run To Cursor"] = "Stoppe Ausführung an Cursorposition", -- src\editor\menu_project.lua, src\editor\editor.lua
|
||||
["Run as Scratchpad"] = "Als &Entwurf starten", -- src\editor\toolbar.lua
|
||||
["Run to cursor"] = "Stoppe Ausführung an Cursorposition", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["S&top Debugging"] = "Debugging a&nhalten", -- src\editor\menu_project.lua
|
||||
["S&top Process"] = "Prozeß &anhalten", -- src\editor\menu_project.lua
|
||||
["Save &As..."] = "S&peichern als...", -- src\editor\gui.lua, src\editor\menu_file.lua
|
||||
["Save A&ll"] = "&Alle Speichern", -- src\editor\menu_file.lua
|
||||
["Save Changes?"] = "Änderungen speichern?", -- src\editor\commands.lua
|
||||
["Save all open documents"] = "Alle offenen Dokumente speichern", -- src\editor\menu_file.lua
|
||||
["Save all open documents"] = "Alle offenen Dokumente speichern", -- src\editor\toolbar.lua, src\editor\menu_file.lua
|
||||
["Save file as"] = "Datei speichern als", -- src\editor\commands.lua
|
||||
["Save file?"] = "Datei speichern?", -- src\editor\commands.lua
|
||||
["Save the current document to a file with a new name"] = "Aktuelles Dokument unter neuem Namen speichern", -- src\editor\menu_file.lua
|
||||
["Save the current document"] = "Aktuelles Dokument speichern", -- src\editor\menu_file.lua
|
||||
["Save the current document"] = "Aktuelles Dokument speichern", -- src\editor\toolbar.lua, src\editor\menu_file.lua
|
||||
["Saved auto-recover at %s."] = "%s Autowiederherstellen gespeichert.", -- src\editor\commands.lua
|
||||
["Scope"] = "Richtung", -- src\editor\findreplace.lua
|
||||
["Scratchpad error"] = "Fehler im Entwurf", -- src\editor\debugger.lua
|
||||
["Searching for"] = "Suchen nach", -- src\editor\findreplace.lua
|
||||
["Search direction"] = "Suchrichtung", -- src\editor\toolbar.lua
|
||||
["Search in subdirectories"] = "Suche in Unterverzeichnissen", -- src\editor\toolbar.lua
|
||||
["Searching for '%s'."] = "Suche nach '%s'.", -- src\editor\findreplace.lua
|
||||
["Sel: %d/%d"] = "Ausgew.: %d/%d", -- src\editor\editor.lua
|
||||
["Select &All"] = "&Alles Auswählen", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["Select all text in the editor"] = "Kompletten Text im Editor auswählen", -- src\editor\menu_edit.lua
|
||||
["Select And Find Next"] = "Auswählen und nächstes finden", -- src\editor\menu_search.lua
|
||||
["Select And Find Previous"] = "Auswählen und vorheriges finden", -- src\editor\menu_search.lua
|
||||
["Select all text in the editor"] = "Kompletten Text im Editor auswählen", -- src\editor\menu_edit.lua
|
||||
["Select the word under cursor and find its next occurrence"] = "Wort unter dem Cursor auswählen und nächstes Auftauchen finden", -- src\editor\menu_search.lua
|
||||
["Select the word under cursor and find its previous occurrence"] = "Wort unter dem Cursor auswählen und vorheriges Auftauchen finden", -- src\editor\menu_search.lua
|
||||
["Set As Start File"] = "Als Startdatei definieren.", -- src\editor\filetree.lua
|
||||
["Set From Current File"] = "Anhand der aktuellen Datei festlegen", -- src\editor\menu_project.lua
|
||||
["Set project directory from current file"] = "Lege Projektverzeichnis anhand der aktuellen Datei fest", -- src\editor\menu_project.lua
|
||||
["Set To Project Directory"] = "Setze als Projektverzeichnis", -- src\editor\findreplace.lua
|
||||
["Set project directory from current file"] = "Lege Projektverzeichnis anhand der aktuellen Datei fest", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Set search directory"] = "Setze Suchverzeichnis", -- src\editor\toolbar.lua
|
||||
["Set the interpreter to be used"] = "Wähle zu benutzenden Interpreter aus", -- src\editor\menu_project.lua
|
||||
["Set the project directory to be used"] = "Lege zu benutzendes Projektverzeichnis fest", -- src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Settings: System"] = "Einstellungen: System", -- src\editor\menu_edit.lua
|
||||
@@ -254,40 +261,50 @@ return {
|
||||
["Show Hidden Files"] = "Zeige versteckte Dateien", -- src\editor\filetree.lua
|
||||
["Show Location"] = "Ordner öffnen", -- src\editor\gui.lua, src\editor\filetree.lua
|
||||
["Show all files"] = "Zeige alle Dateien", -- src\editor\filetree.lua
|
||||
["Show context"] = "Zeige Kontext", -- src\editor\toolbar.lua
|
||||
["Show files previously hidden"] = "Zeige Dateien die zuvor versteckt wurden", -- src\editor\filetree.lua
|
||||
["Show multiple result windows"] = "Zeige mehrere Ergebnisfenster", -- src\editor\toolbar.lua
|
||||
["Show tooltip for current position; place cursor after opening bracket of function"] = "Zeige Tooltip für aktuelle Position; setze Cursor hinter die öffnende Klammer der Funktion", -- src\editor\menu_edit.lua
|
||||
["Show/Hide the status bar"] = "Statuszeile zeigen/verstecken", -- src\editor\menu_view.lua
|
||||
["Show/Hide the toolbar"] = "Werkzeugleiste zeigen/verstecken", -- src\editor\menu_view.lua
|
||||
["Sort By Name"] = "Sortiere nach Namen", -- src\editor\outline.lua
|
||||
["Sort selected lines"] = "Ausgewählte Zeilen sortieren", -- src\editor\menu_edit.lua
|
||||
["Source"] = "Source", -- src\editor\menu_edit.lua
|
||||
["Stack"] = "Stack", -- src\editor\debugger.lua
|
||||
["Start &Debugging"] = "&Debugging starten", -- src\editor\menu_project.lua
|
||||
["Start or continue debugging"] = "Debuggen starten/fortsetzen", -- src\editor\menu_project.lua
|
||||
["Start or continue debugging"] = "Debuggen starten/fortsetzen", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Step &Into"] = "Schritt h&inein", -- src\editor\menu_project.lua
|
||||
["Step &Over"] = "&Überspringen", -- src\editor\menu_project.lua
|
||||
["Step O&ut"] = "Schritt &raus", -- src\editor\menu_project.lua
|
||||
["Step into"] = "Schritt hinein", -- src\editor\menu_project.lua
|
||||
["Step out of the current function"] = "Schritt aus der aktuellen Funktion heraus", -- src\editor\menu_project.lua
|
||||
["Step over"] = "Überspringen", -- src\editor\menu_project.lua
|
||||
["Stop debugging and continue running the process"] = "Beende debuggen und setze den Prozeß fort", -- src\editor\menu_project.lua
|
||||
["Stop the currently running process"] = "Aktuell laufenden Prozeß stoppen", -- src\editor\menu_project.lua
|
||||
["Step into"] = "Schritt hinein", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Step out of the current function"] = "Schritt aus der aktuellen Funktion heraus", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Step over"] = "Überspringen", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Stop debugging and continue running the process"] = "Beende debuggen und setze den Prozeß fort", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Stop the currently running process"] = "Aktuell laufenden Prozeß stoppen", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Switch to or from full screen mode"] = "Vollbild an/aus", -- src\editor\menu_view.lua
|
||||
["Symbol Index"] = "Symbolindex", -- src\editor\outline.lua
|
||||
["Text not found."] = "Text nicht gefunden.", -- src\editor\findreplace.lua
|
||||
["The API file must be located in a subdirectory of the API directory."] = "Die API-Datei muß sich in einem Unterverzeichnis des API-Vereichnisses befinden.", -- src\editor\autocomplete.lua
|
||||
["The API file must be located in a subdirectory of the API directory."] = "Die API-Datei muß sich in einem Unterverzeichnis des API-Verzeichnisses befinden.", -- src\editor\autocomplete.lua
|
||||
["Toggle Bookmark"] = "Lesezeichen setzen/löschen", -- src\editor\menu_edit.lua
|
||||
["Toggle Break&point"] = "&Haltepunkt an/aus", -- src\editor\menu_project.lua
|
||||
["Toggle bookmark"] = "Lesezeichen setzen/löschen", -- src\editor\menu_edit.lua
|
||||
["Toggle breakpoint"] = "Haltepunkt an/aus", -- src\editor\menu_project.lua
|
||||
["Toggle bookmark"] = "Lesezeichen setzen/löschen", -- src\editor\toolbar.lua, src\editor\menu_edit.lua
|
||||
["Toggle breakpoint"] = "Haltepunkt an/aus", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Tr&ace"] = "Ablauf &verfolgen", -- src\editor\menu_project.lua
|
||||
["Trace execution showing each executed line"] = "Ablaufverfolgung zeigt jede ausgeführte Zeile an", -- src\editor\menu_project.lua
|
||||
["Unable to create directory '%s'."] = "Kann kein Verzeichnis '%s' erstellen.", -- src\editor\filetree.lua
|
||||
["Unable to create file '%s'."] = "Kann Datei '%s' nicht erstellen.", -- src\editor\filetree.lua
|
||||
["Unable to delete directory '%s': %s"] = "Scheitern beim Löschen von Verzeichnis '%s': %s", -- src\editor\filetree.lua
|
||||
["Unable to delete file '%s': %s"] = "Kann Datei '%s' nicht löschen: %s", -- src\editor\filetree.lua
|
||||
["Unable to load file '%s'."] = "Scheitern beim Laden von Datei '%s'.", -- src\editor\commands.lua
|
||||
["Unable to rename file '%s'."] = "Scheitern beim umbenennen von Datei '%s'.", -- src\editor\filetree.lua
|
||||
["Unable to save file '%s': %s"] = "Scheitern beim Speichern von Datei '%s' : %s", -- src\editor\commands.lua
|
||||
["Unable to stop program (pid: %d), code %d."] = "Scheitern beim Stoppen des Prozesses (pid : %d), code %d.", -- src\editor\debugger.lua
|
||||
["Undo last edit"] = "Letzte Änderung rückgängig machen", -- src\editor\menu_edit.lua
|
||||
["Unmap Directory"] = "virtuelle Einbindung beenden", -- src\editor\filetree.lua
|
||||
["Unset '%s' As Start File"] = "'%s' ist nicht mehr Startdatei", -- src\editor\filetree.lua
|
||||
["Updated %d file."] = {"Eine Datei aktualisiert", "%d Dateien aktualisiert."}, -- src\editor\findreplace.lua
|
||||
["Updating symbol index and settings..."] = "Aktualisiere Symbolindex und Einstellungen...", -- src\editor\outline.lua
|
||||
["Use %s to close."] = "%s zum Schließen.", -- src\editor\findreplace.lua
|
||||
["Use '%s' to see full description."] = "'%s' für eine komplette Beschreibung.", -- src\editor\editor.lua
|
||||
["Use '%s' to show line endings and '%s' to convert them."] = "'%s' um Zeilenende-Codes zu sehen, und '%s' um sie zu konvertieren.", -- src\editor\commands.lua
|
||||
["Use 'clear' to clear the shell output and the history."] = "'clear' um Ausgabefenster und Verlauf zu löschen.", -- src\editor\shellbox.lua
|
||||
@@ -295,11 +312,11 @@ return {
|
||||
["View the outline window"] = "Übersichtsfenster ansehen", -- src\editor\menu_view.lua
|
||||
["View the output/console window"] = "Ausgabe-/Konsolenfenster ansehen", -- src\editor\menu_view.lua
|
||||
["View the project/filetree window"] = "Projekt-/Dateifenster ansehen", -- src\editor\menu_view.lua
|
||||
["View the stack window"] = "Stapel/Stack-Fenster ansehen", -- src\editor\menu_view.lua
|
||||
["View the watch window"] = "Fenster für Beobachtungspunkte ansehen", -- src\editor\menu_view.lua
|
||||
["View the stack window"] = "Stapel/Stack-Fenster ansehen", -- src\editor\toolbar.lua, src\editor\menu_view.lua
|
||||
["View the watch window"] = "Fenster für Beobachtungspunkte ansehen", -- src\editor\toolbar.lua, src\editor\menu_view.lua
|
||||
["Watch"] = "Beobachtungspunkte", -- src\editor\debugger.lua
|
||||
["Welcome to the interactive Lua interpreter."] = "Willkommen zum interaktiven Lua-Interpretr!", -- src\editor\shellbox.lua
|
||||
["Wrap around"] = "Am Anfang fortsetzen", -- src\editor\findreplace.lua
|
||||
["Wrap around"] = "Am Anfang fortsetzen", -- src\editor\toolbar.lua
|
||||
["You must save the program first."] = "Erst das Programm speichern.", -- src\editor\commands.lua
|
||||
["Zoom In"] = "Hineinzoomen", -- src\editor\menu_view.lua
|
||||
["Zoom Out"] = "Herauszoomen", -- src\editor\menu_view.lua
|
||||
|
||||
128
cfg/i18n/eo.lua
128
cfg/i18n/eo.lua
@@ -1,27 +1,24 @@
|
||||
-- Traduko fare de cosmotect
|
||||
return {
|
||||
[0] = function(c) return c == 1 and 1 or 2 end, -- plural
|
||||
["%d instance"] = {"%d aperaĵo", "%d aperaĵoj"}, -- src\editor\findreplace.lua
|
||||
["%s event failed: %s"] = "%s evento malplenumiĝas: %s", -- src\editor\package.lua
|
||||
["%s%% loaded..."] = nil, -- src\editor\commands.lua
|
||||
["&About"] = "&Pri", -- src\editor\menu_help.lua
|
||||
["&Add Watch"] = "&Aldoni observadaĵon", -- src\editor\debugger.lua
|
||||
["&Break"] = "&Haltigi", -- src\editor\menu_project.lua
|
||||
["&Close Page"] = "&Fermi paĝon", -- src\editor\gui.lua, src\editor\menu_file.lua
|
||||
["&Community"] = "&Komunumo", -- src\editor\menu_help.lua
|
||||
["&Compile"] = "&Kompili", -- src\editor\menu_project.lua
|
||||
["&Copy Value"] = nil, -- src\editor\debugger.lua
|
||||
["&Copy"] = "&Kopii", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["&Default Layout"] = "&Defaŭlta aranĝo", -- src\editor\menu_view.lua
|
||||
["&Delete Watch"] = "&Forigi observadaĵon", -- src\editor\debugger.lua
|
||||
["&Delete"] = "&Forigi", -- src\editor\filetree.lua
|
||||
["&Documentation"] = "&Dokumentado", -- src\editor\menu_help.lua
|
||||
["&Down"] = "&Malsupren", -- src\editor\findreplace.lua
|
||||
["&Edit Project Directory"] = "&Redakti projektan dosierujon", -- src\editor\filetree.lua
|
||||
["&Edit Value"] = "&Redakti valoron", -- src\editor\debugger.lua
|
||||
["&Edit Watch"] = "&Redakti observadaĵon", -- src\editor\debugger.lua
|
||||
["&Edit"] = "&Redakti", -- src\editor\menu_edit.lua
|
||||
["&File"] = "&Dosiero", -- src\editor\menu_file.lua
|
||||
["&Find All"] = "Tra&serĉi ĉion", -- src\editor\findreplace.lua
|
||||
["&Find Next"] = "&Pluserĉi", -- src\editor\findreplace.lua
|
||||
["&Find"] = "Tra&serĉi", -- src\editor\menu_search.lua
|
||||
["&Fold/Unfold All"] = "&Kaŝi/Malkaŝi ĉion", -- src\editor\menu_edit.lua
|
||||
["&Frequently Asked Questions"] = "&Oftaj demandoj", -- src\editor\menu_help.lua
|
||||
@@ -36,8 +33,7 @@ return {
|
||||
["&Project"] = "&Projekto", -- src\editor\menu_project.lua
|
||||
["&Redo"] = "&Refari", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["&Rename"] = "&Renomigi", -- src\editor\filetree.lua
|
||||
["&Replace All"] = "&Anstataŭi ĉion", -- src\editor\findreplace.lua
|
||||
["&Replace"] = "&Anstataŭi", -- src\editor\findreplace.lua, src\editor\menu_search.lua
|
||||
["&Replace"] = "&Anstataŭi", -- src\editor\menu_search.lua
|
||||
["&Run"] = "&Plenumi", -- src\editor\menu_project.lua
|
||||
["&Save"] = "&Konservi", -- src\editor\gui.lua, src\editor\menu_file.lua
|
||||
["&Search"] = "&Serĉi", -- src\editor\menu_search.lua
|
||||
@@ -45,14 +41,11 @@ return {
|
||||
["&Stack Window"] = "&Staka fenestro", -- src\editor\menu_view.lua
|
||||
["&Start Debugger Server"] = "&Ekfunkciigi sencimigilo-servilon", -- src\editor\menu_project.lua
|
||||
["&Status Bar"] = "&Stata breto", -- src\editor\menu_view.lua
|
||||
["&Subdirectories"] = "&Subdosierujoj", -- src\editor\findreplace.lua
|
||||
["&Tool Bar"] = "&Ilobreto", -- src\editor\menu_view.lua
|
||||
["&Tutorials"] = "&Lerniloj", -- src\editor\menu_help.lua
|
||||
["&Undo"] = "&Malfari", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["&Up"] = "&Supren", -- src\editor\findreplace.lua
|
||||
["&View"] = "&Vidi", -- src\editor\menu_view.lua
|
||||
["&Watch Window"] = "&Observada fenestro", -- src\editor\menu_view.lua
|
||||
[".bak on replace"] = ".bak post anstataŭigo", -- src\editor\findreplace.lua
|
||||
["About %s"] = "Pri %s", -- src\editor\menu_help.lua
|
||||
["Add To Scratchpad"] = "Aldoni al malnetdosiero", -- src\editor\editor.lua
|
||||
["Add Watch Expression"] = "Aldoni observadaĵan esprimon", -- src\editor\editor.lua
|
||||
@@ -62,25 +55,27 @@ return {
|
||||
["Analyze"] = "Analizi", -- src\editor\inspect.lua
|
||||
["Auto Complete Identifiers"] = "Aŭtomate kompletigi fontkodnomojn", -- src\editor\menu_edit.lua
|
||||
["Auto complete while typing"] = "Aŭtomate kompletigi dumtajpe", -- src\editor\menu_edit.lua
|
||||
["Binary file is shown as read-only as it is only partially loaded."] = nil, -- src\editor\commands.lua
|
||||
["Bookmark"] = "Legosigno", -- src\editor\menu_edit.lua
|
||||
["Break execution at the next executed line of code"] = "Haltigi plenumon ĉe la sekva plenumata linio da fontkodo", -- src\editor\menu_project.lua
|
||||
["Break execution at the next executed line of code"] = "Haltigi plenumon ĉe la sekva plenumata linio da fontkodo", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["C&lear Output Window"] = "Viŝi eligan fenestron", -- src\editor\gui.lua, src\editor\menu_project.lua
|
||||
["C&omment/Uncomment"] = "F&orkomenti/Eksforkomenti", -- src\editor\menu_edit.lua
|
||||
["Can't debug the script in the active editor window."] = "Ne povas sencimigi la skripton en la aktiva redaktila fenestro.", -- src\editor\debugger.lua
|
||||
["Can't evaluate the expression while the application is running."] = "Ne povas malkodi la esprimon dum funkciatas la aplikaĵo.", -- src\editor\debugger.lua
|
||||
["Can't find file '%s' in the current project to activate for debugging. Update the project or open the file in the editor before debugging."] = "Ne povas trovi la dosieron '%s' en la kuranta projekto por aktivi por sencimigo. Ĝisdatigu la projekton aŭ malfermu la dosieron en redaktilo antaŭ sencimigo.", -- src\editor\debugger.lua
|
||||
["Can't open file '%s': %s"] = "Ne povas malfermi la dosieron '%s': %s", -- src\editor\singleinstance.lua
|
||||
["Can't open file '%s': %s"] = "Ne povas malfermi la dosieron '%s': %s", -- src\editor\findreplace.lua, src\editor\singleinstance.lua, src\editor\inspect.lua, src\editor\outline.lua
|
||||
["Can't process auto-recovery record; invalid format: %s."] = "Ne povas analizi aŭtomatrestaŭran dosieron; neprava dosierformo: %s.", -- src\editor\commands.lua
|
||||
["Can't replace in read-only text."] = nil, -- src\editor\findreplace.lua
|
||||
["Can't run the entry point script ('%s')."] = "Ne povas plenumi la enirejan skripton", -- src\editor\debugger.lua
|
||||
["Can't start debugger server at %s:%d: %s."] = "Ne povas ekfunkciigi sencimigilo-servilon ĉe %s:%d: %s.", -- src\editor\debugger.lua
|
||||
["Can't start debugging for '%s'."] = nil, -- src\editor\debugger.lua
|
||||
["Can't start debugging session due to internal error '%s'."] = "Ne povas komenci sencimigan seancon pro interna eraro", -- src\editor\debugger.lua
|
||||
["Can't start debugging without an opened file or with the current file not being saved ('%s')."] = "Ne povas ek-sencimigon sen malfermita dosiero aŭ kun la kuranta dosiero nekonserviĝas ('%s').", -- src\editor\debugger.lua
|
||||
["Can't stop debugger server as it is not started."] = "Ne povas malfunkciigi sencimigilo-servilon, ĉar ĝi ne funkciantas", -- src\editor\debugger.lua
|
||||
["Cancel"] = "Nuligi", -- src\editor\findreplace.lua
|
||||
["Cancelled by the user."] = "Nuligita per la uzanto", -- src\editor\findreplace.lua
|
||||
["Choose a project directory"] = "Elekti projektan dosierujon", -- src\editor\findreplace.lua, src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Choose..."] = "Elekti...", -- src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Clear Items"] = "Viŝi anojn", -- src\editor\menu_file.lua
|
||||
["Choose a directory to map"] = nil, -- src\editor\filetree.lua
|
||||
["Choose a project directory"] = "Elekti projektan dosierujon", -- src\editor\toolbar.lua, src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Choose a search directory"] = nil, -- src\editor\findreplace.lua
|
||||
["Choose..."] = "Elekti...", -- src\editor\findreplace.lua, src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Clear Items"] = "Viŝi anojn", -- src\editor\findreplace.lua, src\editor\menu_file.lua
|
||||
["Clear items from this list"] = "Senlistigi tiujn ĉi anojn", -- src\editor\menu_file.lua
|
||||
["Clear the output window before compiling or debugging"] = "Viŝi la eligan fenestron antaŭ kompilado aŭ sencimigado", -- src\editor\menu_project.lua
|
||||
["Close &Other Pages"] = "Fermi &aliajn paĝojn", -- src\editor\gui.lua
|
||||
@@ -101,7 +96,7 @@ return {
|
||||
["Copy selected text to clipboard"] = "Kopii elektitan tekston al la tondejo", -- src\editor\menu_edit.lua
|
||||
["Correct &Indentation"] = "Korekti &alineon", -- src\editor\menu_edit.lua
|
||||
["Couldn't activate file '%s' for debugging; continuing without it."] = "Ne povis aktivi la dosieron '%s' por sencimigi; daŭrantas sen ĝi.", -- src\editor\debugger.lua
|
||||
["Create an empty document"] = "Krei malplenan dokumenton", -- src\editor\menu_file.lua
|
||||
["Create an empty document"] = "Krei malplenan dokumenton", -- src\editor\toolbar.lua, src\editor\menu_file.lua
|
||||
["Cu&t"] = "El&tondi", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["Cut selected text to clipboard"] = "Eltondi la elektitan tekston al la tondejo", -- src\editor\menu_edit.lua
|
||||
["Debugger server started at %s:%d."] = "Sencimigilo-servilon ekfunkciiĝis ĉe %s:%d.", -- src\editor\debugger.lua
|
||||
@@ -110,12 +105,13 @@ return {
|
||||
["Debugging session started in '%s'."] = "Sencimiga seanco komencitas en '%s'.", -- src\editor\debugger.lua
|
||||
["Debugging suspended at '%s:%s' (couldn't activate the file)."] = "La sencimigo estis finetita ĉe '%s:%s' (ne povis aktivi la dosieron).", -- src\editor\debugger.lua
|
||||
["Detach &Process"] = "Deigi &procezon", -- src\editor\menu_project.lua
|
||||
["Directory"] = "Dosierujo", -- src\editor\findreplace.lua
|
||||
["Disable Indexing For '%s'"] = nil, -- src\editor\outline.lua
|
||||
["Do you want to delete '%s'?"] = "Ĉu vi volas forigi je '%s'?", -- src\editor\filetree.lua
|
||||
["Do you want to overwrite it?"] = "Ĉu vi volas superskribi ĉi tiun?", -- src\editor\commands.lua
|
||||
["Do you want to reload it?"] = "Ĉu vi volas reŝarĝi tiun ĉi?", -- src\editor\editor.lua
|
||||
["Do you want to save the changes to '%s'?"] = "Ĉu vi volas konservi ĉiujn ŝanĝojn, kiuj enfaris je '%s'?", -- src\editor\commands.lua
|
||||
["E&xit"] = "&Eliri", -- src\editor\menu_file.lua
|
||||
["Enable Indexing"] = nil, -- src\editor\outline.lua
|
||||
["Enter Lua code and press Enter to run it."] = "Enigu fontkodon de Lua kaj premu enenklavon por plenumi ĝin.", -- src\editor\shellbox.lua
|
||||
["Enter command line parameters (use Cancel to clear)"] = "Enigu komandliniajn parametrojn (uzu nulig-butonon por viŝi)", -- src\editor\menu_project.lua
|
||||
["Enter replacement text"] = "Enigu anstataŭigan tekston", -- src\editor\editor.lua
|
||||
@@ -126,31 +122,30 @@ return {
|
||||
["Error"] = "Eraro", -- src\editor\commands.lua
|
||||
["Evaluate In Console"] = "Malkodi en la konzolo", -- src\editor\editor.lua
|
||||
["Execute the current project/file and keep updating the code to see immediate results"] = "Plenumi la kurantan projekton/dosieron, kaj ĝisdatigadi la fontkodon por vidi tujajn rezultojn", -- src\editor\menu_project.lua
|
||||
["Execute the current project/file"] = "Plenumi la kurantan projekton/dosieron", -- src\editor\menu_project.lua
|
||||
["Execute the current project/file"] = "Plenumi la kurantan projekton/dosieron", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Execution error"] = "Eraro de plenumo", -- src\editor\debugger.lua
|
||||
["Exit program"] = "Eliri programon", -- src\editor\menu_file.lua
|
||||
["File '%s' has been modified on disk."] = "La dosiero nome de '%s' ŝanĝitis en disko.", -- src\editor\editor.lua
|
||||
["File '%s' has more recent timestamp than restored '%s'; please review before saving."] = "La dosiero nome de '%s' havas pli freŝan tempindikon, ol la ripardosiero '%s'; bonvolu ekzameni ĝin antaû konservi.", -- src\editor\commands.lua
|
||||
["File '%s' is missing and can't be recovered."] = "La dosiero nome de '%s' forestas kaj ne povas esti reakirita.", -- src\editor\commands.lua
|
||||
["File '%s' no longer exists."] = "La dosiero nome de '%s' ne plu ekzistas.", -- src\editor\menu_file.lua, src\editor\editor.lua
|
||||
["File Type"] = "Dosierspeco", -- src\editor\findreplace.lua
|
||||
["File already exists."] = "Jam ekzistas tiu ĉi dosiero.", -- src\editor\commands.lua
|
||||
["File history"] = "Dosiera historio", -- src\editor\menu_file.lua
|
||||
["Find &In Files"] = "Traserĉi &en dosieroj", -- src\editor\menu_search.lua
|
||||
["Find &Next"] = "&Pluserĉi", -- src\editor\menu_search.lua
|
||||
["Find &Previous"] = "Traserĉi &antaŭanta", -- src\editor\menu_search.lua
|
||||
["Find in files"] = "Traserĉi en dosieroj", -- src\editor\findreplace.lua
|
||||
["Find and insert library function"] = nil, -- src\editor\menu_search.lua
|
||||
["Find and replace text in files"] = "Traserĉi kaj anstataŭi tekston en dosieroj", -- src\editor\menu_search.lua
|
||||
["Find and replace text"] = "Traserĉi kaj anstataŭi tekston", -- src\editor\menu_search.lua
|
||||
["Find and replace text"] = "Traserĉi kaj anstataŭi tekston", -- src\editor\toolbar.lua, src\editor\menu_search.lua
|
||||
["Find in files"] = "Traserĉi en dosieroj", -- src\editor\toolbar.lua
|
||||
["Find text in files"] = "Traserĉi tekston en dosieroj", -- src\editor\menu_search.lua
|
||||
["Find text"] = "Traserĉi tekston", -- src\editor\menu_search.lua
|
||||
["Find text"] = "Traserĉi tekston", -- src\editor\toolbar.lua, src\editor\menu_search.lua
|
||||
["Find the earlier text occurence"] = "Traserĉi la antaŭantan aperaĵon da teksto", -- src\editor\menu_search.lua
|
||||
["Find the next text occurrence"] = "Pluserĉi la aperaĵon da teksto", -- src\editor\menu_search.lua
|
||||
["Find"] = "Traserĉi", -- src\editor\findreplace.lua
|
||||
["Find"] = "Traserĉi", -- src\editor\toolbar.lua
|
||||
["Fold or unfold all code folds"] = "Kaŝi aŭ malkaŝi ĉiujn faldaĵojn da fontkodoj", -- src\editor\menu_edit.lua
|
||||
["Found %d instance."] = {}, -- src\editor\findreplace.lua
|
||||
["Found auto-recovery record and restored saved session."] = "Trovis aŭtomatrestaŭran dosieron kaj riparis konservitan seancon.", -- src\editor\commands.lua
|
||||
["Found"] = "Trovis", -- src\editor\findreplace.lua
|
||||
["Full &Screen"] = "Plenekrana &reĝimo", -- src\editor\menu_view.lua
|
||||
["Go To Definition"] = "Iri al deklaro", -- src\editor\editor.lua
|
||||
["Go To File..."] = nil, -- src\editor\menu_search.lua
|
||||
@@ -163,24 +158,26 @@ return {
|
||||
["Go to symbol"] = nil, -- src\editor\menu_search.lua
|
||||
["Hide '.%s' Files"] = nil, -- src\editor\filetree.lua
|
||||
["INS"] = "INS", -- src\editor\editor.lua
|
||||
["Ignore and don't index symbols from files in the selected directory"] = nil, -- src\editor\outline.lua
|
||||
["Ignored error in debugger initialization code: %s."] = "Ignoris eraron en pravaloriza kodo de la sencimigilo: %s.", -- src\editor\debugger.lua
|
||||
["In Files"] = "Ene de dosieroj", -- src\editor\findreplace.lua
|
||||
["Indexing %d files: '%s'..."] = nil, -- src\editor\outline.lua
|
||||
["Indexing completed."] = nil, -- src\editor\outline.lua
|
||||
["Insert Library Function..."] = nil, -- src\editor\menu_search.lua
|
||||
["Known Files"] = "Konataj dosieroj", -- src\editor\commands.lua
|
||||
["Ln: %d"] = "Ln: %d", -- src\editor\editor.lua
|
||||
["Local console"] = "Loka konzolo", -- src\editor\gui.lua, src\editor\shellbox.lua
|
||||
["Lua &Interpreter"] = "Interpretilo de Lua", -- src\editor\menu_project.lua
|
||||
["Map Directory..."] = nil, -- src\editor\filetree.lua
|
||||
["Mapped remote request for '%s' to '%s'."] = "Mapi faran peton pri '%s' al '%s'.", -- src\editor\debugger.lua
|
||||
["Match case"] = "Atenti usklecon", -- src\editor\findreplace.lua
|
||||
["Match whole word"] = "Atenti plenan vorton", -- src\editor\findreplace.lua
|
||||
["Match case"] = "Atenti usklecon", -- src\editor\toolbar.lua
|
||||
["Match whole word"] = "Atenti plenan vorton", -- src\editor\toolbar.lua
|
||||
["Mixed end-of-line encodings detected."] = "Detektis kodoprezentojn miksitajn linifinajn", -- src\editor\commands.lua
|
||||
["Navigate"] = nil, -- src\editor\menu_search.lua
|
||||
["New &File"] = "Nova &dosiero", -- src\editor\filetree.lua
|
||||
["OVR"] = "SUS", -- src\editor\editor.lua
|
||||
["Open With Default Program"] = "Malfermi per la defaŭlta programo", -- src\editor\filetree.lua
|
||||
["Open an existing document"] = "Malfermi jaman dokumenton", -- src\editor\menu_file.lua
|
||||
["Open an existing document"] = "Malfermi jaman dokumenton", -- src\editor\toolbar.lua, src\editor\menu_file.lua
|
||||
["Open file"] = "Malfermi dosieron", -- src\editor\commands.lua
|
||||
["Options"] = "Opcioj", -- src\editor\findreplace.lua
|
||||
["Outline Window"] = "Skemo-fenestro", -- src\editor\menu_view.lua
|
||||
["Outline"] = "Skemo", -- src\editor\outline.lua
|
||||
["Output (running)"] = "Eligo (funkciata)", -- src\editor\debugger.lua, src\editor\output.lua
|
||||
@@ -202,50 +199,59 @@ return {
|
||||
["Project"] = "Projekto", -- src\editor\filetree.lua
|
||||
["Project/&FileTree Window"] = "Projekta/&Dosierarba Fenestro", -- src\editor\menu_view.lua
|
||||
["Provide command line parameters"] = "Doni komandliniajn parametrojn", -- src\editor\menu_project.lua
|
||||
["Queued %d files to index."] = nil, -- src\editor\menu_search.lua
|
||||
["R/O"] = "L/A", -- src\editor\editor.lua
|
||||
["R/W"] = "L/S", -- src\editor\editor.lua
|
||||
["Re&place In Files"] = "Anstataŭi en dosieroj", -- src\editor\menu_search.lua
|
||||
["Re-indent selected lines"] = "Realinei elektitajn liniojn", -- src\editor\menu_edit.lua
|
||||
["Reached end of text and wrapped around."] = nil, -- src\editor\findreplace.lua
|
||||
["Recent &Projects"] = "Antaŭnelongaj &projektoj", -- src\editor\menu_file.lua
|
||||
["Recent Files"] = "Antaŭnelongaj dosieroj", -- src\editor\menu_file.lua
|
||||
["Redo last edit undone"] = "Refari lastan redakton", -- src\editor\menu_edit.lua
|
||||
["Refresh"] = "Refreŝigu", -- src\editor\menu_file.lua
|
||||
["Refresh Index"] = nil, -- src\editor\outline.lua
|
||||
["Refresh indexed symbols from files in the selected directory"] = nil, -- src\editor\outline.lua
|
||||
["Refresh"] = "Refreŝigu", -- src\editor\filetree.lua
|
||||
["Refused a request to start a new debugging session as there is one in progress already."] = "Peto por komenci novan sencimigan seancon malakceptis, ĉar seanco jam faratas.", -- src\editor\debugger.lua
|
||||
["Regular expression"] = "Regul&esprimo", -- src\editor\findreplace.lua
|
||||
["Regular expression"] = "Regul&esprimo", -- src\editor\toolbar.lua
|
||||
["Remote console"] = "Fora konzolo", -- src\editor\shellbox.lua
|
||||
["Rename All Instances"] = "Renomigi ĉiujn aperaĵojn", -- src\editor\editor.lua
|
||||
["Replace all"] = "Anstataŭi ĉion", -- src\editor\findreplace.lua
|
||||
["Replace All Selections"] = "Anstataŭi ĉiujn elektojn", -- src\editor\editor.lua
|
||||
["Replace"] = "Anstataŭi", -- src\editor\findreplace.lua
|
||||
["Replace all"] = "Anstataŭi ĉion", -- src\editor\toolbar.lua
|
||||
["Replace next instance"] = nil, -- src\editor\toolbar.lua
|
||||
["Replaced %d instance."] = {}, -- src\editor\findreplace.lua
|
||||
["Replaced an invalid UTF8 character with %s."] = "Anstataŭis UTF8-an signon per %s.", -- src\editor\commands.lua
|
||||
["Replaced"] = "Anstataŭita", -- src\editor\findreplace.lua
|
||||
["Replacing"] = "Anstataŭanta", -- src\editor\findreplace.lua
|
||||
["Reset to default layout"] = "Rekomenciĝi al defaŭltan aranĝon", -- src\editor\menu_view.lua
|
||||
["Run As Scratchpad"] = "Plenumi kiel malnetdosieron", -- src\editor\menu_project.lua
|
||||
["Run as Scratchpad"] = "Plenumi kiel malnetdosieron", -- src\editor\menu_project.lua
|
||||
["Run To Cursor"] = nil, -- src\editor\menu_project.lua, src\editor\editor.lua
|
||||
["Run as Scratchpad"] = "Plenumi kiel malnetdosieron", -- src\editor\toolbar.lua
|
||||
["Run to cursor"] = nil, -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["S&top Debugging"] = "&Fini sencimigo", -- src\editor\menu_project.lua
|
||||
["S&top Process"] = "&Fini procezon", -- src\editor\menu_project.lua
|
||||
["Save &As..."] = "Konservi &kiel...", -- src\editor\gui.lua, src\editor\menu_file.lua
|
||||
["Save A&ll"] = "Konservi ĉ&ion", -- src\editor\menu_file.lua
|
||||
["Save Changes?"] = "Ĉu konservi ĉiujn ŝanĝojn?", -- src\editor\commands.lua
|
||||
["Save all open documents"] = "Konservi ĉiujn malfermajn dokumentojn", -- src\editor\menu_file.lua
|
||||
["Save all open documents"] = "Konservi ĉiujn malfermajn dokumentojn", -- src\editor\toolbar.lua, src\editor\menu_file.lua
|
||||
["Save file as"] = "Konservi dosieron kiel", -- src\editor\commands.lua
|
||||
["Save file?"] = "Ĉu konservi dosieron?", -- src\editor\commands.lua
|
||||
["Save the current document to a file with a new name"] = "Konservi la kurantan dokumenton kun dosiero novanome", -- src\editor\menu_file.lua
|
||||
["Save the current document"] = "Konservi la kurantan dokumenton", -- src\editor\menu_file.lua
|
||||
["Save the current document"] = "Konservi la kurantan dokumenton", -- src\editor\toolbar.lua, src\editor\menu_file.lua
|
||||
["Saved auto-recover at %s."] = "Konservis aŭtomatrestaŭron je %s.", -- src\editor\commands.lua
|
||||
["Scope"] = "Amplekso", -- src\editor\findreplace.lua
|
||||
["Scratchpad error"] = "Eraro de malnetdosiero", -- src\editor\debugger.lua
|
||||
["Searching for"] = "Serĉanti pri", -- src\editor\findreplace.lua
|
||||
["Search direction"] = nil, -- src\editor\toolbar.lua
|
||||
["Search in subdirectories"] = nil, -- src\editor\toolbar.lua
|
||||
["Searching for '%s'."] = nil, -- src\editor\findreplace.lua
|
||||
["Sel: %d/%d"] = "Ele: %d/%d", -- src\editor\editor.lua
|
||||
["Select &All"] = "Elekti &ĉion", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["Select all text in the editor"] = "Elekti la tekston en la redaktilo", -- src\editor\menu_edit.lua
|
||||
["Select And Find Next"] = "Elekti kaj pluserĉi", -- src\editor\menu_search.lua
|
||||
["Select And Find Previous"] = "Elekti kaj traserĉi antaŭantan", -- src\editor\menu_search.lua
|
||||
["Select all text in the editor"] = "Elekti la tekston en la redaktilo", -- src\editor\menu_edit.lua
|
||||
["Select the word under cursor and find its next occurrence"] = "Elekti la vorton sub la tajpmontrilo, kaj pluserĉi", -- src\editor\menu_search.lua
|
||||
["Select the word under cursor and find its previous occurrence"] = "Elekti la vorton sub la tajpmontrilo, kaj traserĉi antaŭantan", -- src\editor\menu_search.lua
|
||||
["Set As Start File"] = nil, -- src\editor\filetree.lua
|
||||
["Set From Current File"] = "Precizigi per la kuranta dosiero", -- src\editor\menu_project.lua
|
||||
["Set project directory from current file"] = "Precizigi la projektan dosierujon per la kurantan dosieron", -- src\editor\menu_project.lua
|
||||
["Set To Project Directory"] = nil, -- src\editor\findreplace.lua
|
||||
["Set project directory from current file"] = "Precizigi la projektan dosierujon per la kurantan dosieron", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Set search directory"] = nil, -- src\editor\toolbar.lua
|
||||
["Set the interpreter to be used"] = "Precizigi la interpretiloton", -- src\editor\menu_project.lua
|
||||
["Set the project directory to be used"] = "Precizigi la projekt-dosierujoton", -- src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Settings: System"] = "Agordoj de la sistemo", -- src\editor\menu_edit.lua
|
||||
@@ -255,40 +261,50 @@ return {
|
||||
["Show Hidden Files"] = nil, -- src\editor\filetree.lua
|
||||
["Show Location"] = "Montri lokon", -- src\editor\gui.lua, src\editor\filetree.lua
|
||||
["Show all files"] = nil, -- src\editor\filetree.lua
|
||||
["Show context"] = nil, -- src\editor\toolbar.lua
|
||||
["Show files previously hidden"] = nil, -- src\editor\filetree.lua
|
||||
["Show multiple result windows"] = nil, -- src\editor\toolbar.lua
|
||||
["Show tooltip for current position; place cursor after opening bracket of function"] = "Montri ŝpruchelpilon pri la kuranta pozicio; meti la tajpmontrilon preter la ronda ekkrampo de la funkcio", -- src\editor\menu_edit.lua
|
||||
["Show/Hide the status bar"] = "Montri/Kaŝi la statan breton", -- src\editor\menu_view.lua
|
||||
["Show/Hide the toolbar"] = "Montri/Kaŝi la ilobreton", -- src\editor\menu_view.lua
|
||||
["Sort By Name"] = nil, -- src\editor\outline.lua
|
||||
["Sort selected lines"] = "Ordi la elektitajn liniojn", -- src\editor\menu_edit.lua
|
||||
["Source"] = "Fontkodo", -- src\editor\menu_edit.lua
|
||||
["Stack"] = "Stako", -- src\editor\debugger.lua
|
||||
["Start &Debugging"] = "Ek-&sencimigi", -- src\editor\menu_project.lua
|
||||
["Start or continue debugging"] = "Komenci aŭ pluigi sencimigon", -- src\editor\menu_project.lua
|
||||
["Start or continue debugging"] = "Komenci aŭ pluigi sencimigon", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Step &Into"] = "Eniri &enen", -- src\editor\menu_project.lua
|
||||
["Step &Over"] = "Trans&salti", -- src\editor\menu_project.lua
|
||||
["Step O&ut"] = "Eliri el", -- src\editor\menu_project.lua
|
||||
["Step into"] = "Eniri enen", -- src\editor\menu_project.lua
|
||||
["Step out of the current function"] = "Eliri el la kuranta funkcio", -- src\editor\menu_project.lua
|
||||
["Step over"] = "Transsalti", -- src\editor\menu_project.lua
|
||||
["Stop debugging and continue running the process"] = "Fini sencimigon kaj plenumadi la procezon", -- src\editor\menu_project.lua
|
||||
["Stop the currently running process"] = "Fini la nunfunkciatan procezon", -- src\editor\menu_project.lua
|
||||
["Step into"] = "Eniri enen", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Step out of the current function"] = "Eliri el la kuranta funkcio", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Step over"] = "Transsalti", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Stop debugging and continue running the process"] = "Fini sencimigon kaj plenumadi la procezon", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Stop the currently running process"] = "Fini la nunfunkciatan procezon", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Switch to or from full screen mode"] = "Interŝanĝi al aŭ el plenekrana reĝimo", -- src\editor\menu_view.lua
|
||||
["Symbol Index"] = nil, -- src\editor\outline.lua
|
||||
["Text not found."] = "Teksto ne trovitis", -- src\editor\findreplace.lua
|
||||
["The API file must be located in a subdirectory of the API directory."] = "La dosiero de API devas troviĝi en subdosierujo de la API-a dosierujo.", -- src\editor\autocomplete.lua
|
||||
["Toggle Bookmark"] = "Baskuli legosignon", -- src\editor\menu_edit.lua
|
||||
["Toggle Break&point"] = "Baskuli halto&punkto", -- src\editor\menu_project.lua
|
||||
["Toggle bookmark"] = "Baskuli legosignon", -- src\editor\menu_edit.lua
|
||||
["Toggle breakpoint"] = "Baskuli haltopunkto", -- src\editor\menu_project.lua
|
||||
["Toggle bookmark"] = "Baskuli legosignon", -- src\editor\toolbar.lua, src\editor\menu_edit.lua
|
||||
["Toggle breakpoint"] = "Baskuli haltopunkto", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Tr&ace"] = "Spuri", -- src\editor\menu_project.lua
|
||||
["Trace execution showing each executed line"] = "Spurili plenumon per montri ĉiun plenumitan linion", -- src\editor\menu_project.lua
|
||||
["Unable to create directory '%s'."] = "Ne kapablas krei je la dosierujo '%s'.", -- src\editor\filetree.lua
|
||||
["Unable to create file '%s'."] = "Ne kapablas krei je la dosiero '%s'.", -- src\editor\filetree.lua
|
||||
["Unable to delete directory '%s': %s"] = "Ne kapablas forigi je la dosierujo '%s': %s", -- src\editor\filetree.lua
|
||||
["Unable to delete file '%s': %s"] = nil, -- src\editor\filetree.lua
|
||||
["Unable to load file '%s'."] = "Ne kapablas ŝarĝi je la dosiero '%s'.", -- src\editor\commands.lua
|
||||
["Unable to rename file '%s'."] = "Ne kapablas renomigi je la dosiero '%s'.", -- src\editor\filetree.lua
|
||||
["Unable to save file '%s': %s"] = "Ne kapablas konservi je la dosiero '%s': %s", -- src\editor\commands.lua
|
||||
["Unable to stop program (pid: %d), code %d."] = "Ne kapablas fini la programon (pid: %d), kodo %d.", -- src\editor\debugger.lua
|
||||
["Undo last edit"] = "Malfari la antaŭan redakton", -- src\editor\menu_edit.lua
|
||||
["Unmap Directory"] = nil, -- src\editor\filetree.lua
|
||||
["Unset '%s' As Start File"] = nil, -- src\editor\filetree.lua
|
||||
["Updated %d file."] = {}, -- src\editor\findreplace.lua
|
||||
["Updating symbol index and settings..."] = nil, -- src\editor\outline.lua
|
||||
["Use %s to close."] = nil, -- src\editor\findreplace.lua
|
||||
["Use '%s' to see full description."] = "Uzu je '%s' por vidi plenan priskribon", -- src\editor\editor.lua
|
||||
["Use '%s' to show line endings and '%s' to convert them."] = "Uzu je '%s' por montri linifinojn kaj je '%s' por konverti ilin", -- src\editor\commands.lua
|
||||
["Use 'clear' to clear the shell output and the history."] = "Tajpu 'clear' por viŝi la eligon kaj historion de la ŝelo.", -- src\editor\shellbox.lua
|
||||
@@ -296,11 +312,11 @@ return {
|
||||
["View the outline window"] = "Vidi la skemo-fenestron", -- src\editor\menu_view.lua
|
||||
["View the output/console window"] = "Vidi la eligo/konzolo-fenestron", -- src\editor\menu_view.lua
|
||||
["View the project/filetree window"] = "Vidi la projekto/dosierarbo-fenestron", -- src\editor\menu_view.lua
|
||||
["View the stack window"] = "Vidi la stako-fenestron", -- src\editor\menu_view.lua
|
||||
["View the watch window"] = "Vidi la observado-fenestron", -- src\editor\menu_view.lua
|
||||
["View the stack window"] = "Vidi la stako-fenestron", -- src\editor\toolbar.lua, src\editor\menu_view.lua
|
||||
["View the watch window"] = "Vidi la observado-fenestron", -- src\editor\toolbar.lua, src\editor\menu_view.lua
|
||||
["Watch"] = "Observado", -- src\editor\debugger.lua
|
||||
["Welcome to the interactive Lua interpreter."] = "Bonvenon al la interaga interpretilo de Lua.", -- src\editor\shellbox.lua
|
||||
["Wrap around"] = "Ĉirkaŭflui", -- src\editor\findreplace.lua
|
||||
["Wrap around"] = "Ĉirkaŭflui", -- src\editor\toolbar.lua
|
||||
["You must save the program first."] = "Vi unue devas konservi la programon.", -- src\editor\commands.lua
|
||||
["Zoom In"] = "Zomi", -- src\editor\menu_view.lua
|
||||
["Zoom Out"] = "Malzomi", -- src\editor\menu_view.lua
|
||||
|
||||
126
cfg/i18n/es.lua
126
cfg/i18n/es.lua
@@ -1,27 +1,24 @@
|
||||
-- Traducción realiazada por Iñigo Sola
|
||||
return {
|
||||
[0] = function(c) return c == 1 and 1 or 2 end, -- plural
|
||||
["%d instance"] = nil, -- src\editor\findreplace.lua
|
||||
["%s event failed: %s"] = nil, -- src\editor\package.lua
|
||||
["%s%% loaded..."] = nil, -- src\editor\commands.lua
|
||||
["&About"] = "&Acerca de...", -- src\editor\menu_help.lua
|
||||
["&Add Watch"] = "Añadir observación", -- src\editor\debugger.lua
|
||||
["&Break"] = "Ruptura", -- src\editor\menu_project.lua
|
||||
["&Close Page"] = "Cerrar página", -- src\editor\gui.lua, src\editor\menu_file.lua
|
||||
["&Community"] = nil, -- src\editor\menu_help.lua
|
||||
["&Compile"] = "Compilar", -- src\editor\menu_project.lua
|
||||
["&Copy Value"] = nil, -- src\editor\debugger.lua
|
||||
["&Copy"] = "Copiar", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["&Default Layout"] = "Diseño por defecto", -- src\editor\menu_view.lua
|
||||
["&Delete Watch"] = "Eliminar observación", -- src\editor\debugger.lua
|
||||
["&Delete"] = nil, -- src\editor\filetree.lua
|
||||
["&Documentation"] = nil, -- src\editor\menu_help.lua
|
||||
["&Down"] = nil, -- src\editor\findreplace.lua
|
||||
["&Edit Project Directory"] = nil, -- src\editor\filetree.lua
|
||||
["&Edit Value"] = nil, -- src\editor\debugger.lua
|
||||
["&Edit Watch"] = "Editar observación", -- src\editor\debugger.lua
|
||||
["&Edit"] = "Editar", -- src\editor\menu_edit.lua
|
||||
["&File"] = "Archivo", -- src\editor\menu_file.lua
|
||||
["&Find All"] = nil, -- src\editor\findreplace.lua
|
||||
["&Find Next"] = nil, -- src\editor\findreplace.lua
|
||||
["&Find"] = "Buscar", -- src\editor\menu_search.lua
|
||||
["&Fold/Unfold All"] = "Plegar/desplegar todo", -- src\editor\menu_edit.lua
|
||||
["&Frequently Asked Questions"] = nil, -- src\editor\menu_help.lua
|
||||
@@ -36,8 +33,7 @@ return {
|
||||
["&Project"] = "Proyecto", -- src\editor\menu_project.lua
|
||||
["&Redo"] = "Rehacer", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["&Rename"] = nil, -- src\editor\filetree.lua
|
||||
["&Replace All"] = nil, -- src\editor\findreplace.lua
|
||||
["&Replace"] = "Remplazar", -- src\editor\findreplace.lua, src\editor\menu_search.lua
|
||||
["&Replace"] = "Remplazar", -- src\editor\menu_search.lua
|
||||
["&Run"] = "Ejecutar", -- src\editor\menu_project.lua
|
||||
["&Save"] = "Guardar", -- src\editor\gui.lua, src\editor\menu_file.lua
|
||||
["&Search"] = "Buscar", -- src\editor\menu_search.lua
|
||||
@@ -45,14 +41,11 @@ return {
|
||||
["&Stack Window"] = "Ventana de la pila de ejecución", -- src\editor\menu_view.lua
|
||||
["&Start Debugger Server"] = "Lanzar servidor de depuración", -- src\editor\menu_project.lua
|
||||
["&Status Bar"] = nil, -- src\editor\menu_view.lua
|
||||
["&Subdirectories"] = nil, -- src\editor\findreplace.lua
|
||||
["&Tool Bar"] = nil, -- src\editor\menu_view.lua
|
||||
["&Tutorials"] = nil, -- src\editor\menu_help.lua
|
||||
["&Undo"] = "Deshacer", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["&Up"] = nil, -- src\editor\findreplace.lua
|
||||
["&View"] = "Ver", -- src\editor\menu_view.lua
|
||||
["&Watch Window"] = "Ventana de observaciones", -- src\editor\menu_view.lua
|
||||
[".bak on replace"] = nil, -- src\editor\findreplace.lua
|
||||
["About %s"] = "Acerca de %s", -- src\editor\menu_help.lua
|
||||
["Add To Scratchpad"] = "Añadir al borrador", -- src\editor\editor.lua
|
||||
["Add Watch Expression"] = "Añadir expresión de observación", -- src\editor\editor.lua
|
||||
@@ -62,25 +55,27 @@ return {
|
||||
["Analyze"] = "Analizar", -- src\editor\inspect.lua
|
||||
["Auto Complete Identifiers"] = "Autocompletar identificadores", -- src\editor\menu_edit.lua
|
||||
["Auto complete while typing"] = "Autocompletar mientras se escribe", -- src\editor\menu_edit.lua
|
||||
["Binary file is shown as read-only as it is only partially loaded."] = nil, -- src\editor\commands.lua
|
||||
["Bookmark"] = nil, -- src\editor\menu_edit.lua
|
||||
["Break execution at the next executed line of code"] = "Parar ejecución en la siguiente línea de código", -- src\editor\menu_project.lua
|
||||
["Break execution at the next executed line of code"] = "Parar ejecución en la siguiente línea de código", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["C&lear Output Window"] = "Limpiar ventana de Salida", -- src\editor\gui.lua, src\editor\menu_project.lua
|
||||
["C&omment/Uncomment"] = "Comentar/descomentar", -- src\editor\menu_edit.lua
|
||||
["Can't debug the script in the active editor window."] = "No se puede depurar el script en la ventana activa del editor", -- src\editor\debugger.lua
|
||||
["Can't evaluate the expression while the application is running."] = nil, -- src\editor\debugger.lua
|
||||
["Can't find file '%s' in the current project to activate for debugging. Update the project or open the file in the editor before debugging."] = "No se puede encontrar el archivo '%s' en el proyecto actual para activar la depuración. Actualiza el proyecto o abre el archivo en el editor antes de depurar.", -- src\editor\debugger.lua
|
||||
["Can't open file '%s': %s"] = nil, -- src\editor\singleinstance.lua
|
||||
["Can't open file '%s': %s"] = nil, -- src\editor\findreplace.lua, src\editor\singleinstance.lua, src\editor\inspect.lua, src\editor\outline.lua
|
||||
["Can't process auto-recovery record; invalid format: %s."] = "No se puede procesar la autorrecuperación; formato inválido: %s.", -- src\editor\commands.lua
|
||||
["Can't replace in read-only text."] = nil, -- src\editor\findreplace.lua
|
||||
["Can't run the entry point script ('%s')."] = "No se pude ejecutar el punto de entrada del script (%s).", -- src\editor\debugger.lua
|
||||
["Can't start debugger server at %s:%d: %s."] = nil, -- src\editor\debugger.lua
|
||||
["Can't start debugging for '%s'."] = nil, -- src\editor\debugger.lua
|
||||
["Can't start debugging session due to internal error '%s'."] = "No se puede iniciar la sesión de depuración debido a un error interno '%s'.'", -- src\editor\debugger.lua
|
||||
["Can't start debugging without an opened file or with the current file not being saved ('%s')."] = "No se puede iniciar la depuración sin abrir un archivo o si no ha sido guardado ('%s').", -- src\editor\debugger.lua
|
||||
["Can't stop debugger server as it is not started."] = nil, -- src\editor\debugger.lua
|
||||
["Cancel"] = nil, -- src\editor\findreplace.lua
|
||||
["Cancelled by the user."] = nil, -- src\editor\findreplace.lua
|
||||
["Choose a project directory"] = "Elegir el directorio del proyecto", -- src\editor\findreplace.lua, src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Choose..."] = nil, -- src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Clear Items"] = nil, -- src\editor\menu_file.lua
|
||||
["Choose a directory to map"] = nil, -- src\editor\filetree.lua
|
||||
["Choose a project directory"] = "Elegir el directorio del proyecto", -- src\editor\toolbar.lua, src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Choose a search directory"] = nil, -- src\editor\findreplace.lua
|
||||
["Choose..."] = nil, -- src\editor\findreplace.lua, src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Clear Items"] = nil, -- src\editor\findreplace.lua, src\editor\menu_file.lua
|
||||
["Clear items from this list"] = nil, -- src\editor\menu_file.lua
|
||||
["Clear the output window before compiling or debugging"] = "Limpiar la ventana de salida antes de compilar o depurar", -- src\editor\menu_project.lua
|
||||
["Close &Other Pages"] = nil, -- src\editor\gui.lua
|
||||
@@ -101,7 +96,7 @@ return {
|
||||
["Copy selected text to clipboard"] = "Copiar el texto seleccionado al portapapeles", -- src\editor\menu_edit.lua
|
||||
["Correct &Indentation"] = nil, -- src\editor\menu_edit.lua
|
||||
["Couldn't activate file '%s' for debugging; continuing without it."] = "No se pudo activar el archivo '%s' para la depuración; continuar sin él.", -- src\editor\debugger.lua
|
||||
["Create an empty document"] = "Crear un documento en blanco", -- src\editor\menu_file.lua
|
||||
["Create an empty document"] = "Crear un documento en blanco", -- src\editor\toolbar.lua, src\editor\menu_file.lua
|
||||
["Cu&t"] = "Cortar", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["Cut selected text to clipboard"] = "Cortar el texto selecionado al portapapeles", -- src\editor\menu_edit.lua
|
||||
["Debugger server started at %s:%d."] = "Servidor de depuración inciado en %s:%s", -- src\editor\debugger.lua
|
||||
@@ -110,12 +105,13 @@ return {
|
||||
["Debugging session started in '%s'."] = "Sesión de depuración iniciada en '%s'.", -- src\editor\debugger.lua
|
||||
["Debugging suspended at '%s:%s' (couldn't activate the file)."] = nil, -- src\editor\debugger.lua
|
||||
["Detach &Process"] = nil, -- src\editor\menu_project.lua
|
||||
["Directory"] = nil, -- src\editor\findreplace.lua
|
||||
["Disable Indexing For '%s'"] = nil, -- src\editor\outline.lua
|
||||
["Do you want to delete '%s'?"] = nil, -- src\editor\filetree.lua
|
||||
["Do you want to overwrite it?"] = nil, -- src\editor\commands.lua
|
||||
["Do you want to reload it?"] = "¿Quieres recargarlo?", -- src\editor\editor.lua
|
||||
["Do you want to save the changes to '%s'?"] = "¿Quieres guardar los cambios en '%s'?", -- src\editor\commands.lua
|
||||
["E&xit"] = "Salir", -- src\editor\menu_file.lua
|
||||
["Enable Indexing"] = nil, -- src\editor\outline.lua
|
||||
["Enter Lua code and press Enter to run it."] = "Introduce código Lua y pulsa <Entrer> para ejecutarlo.", -- src\editor\shellbox.lua
|
||||
["Enter command line parameters (use Cancel to clear)"] = nil, -- src\editor\menu_project.lua
|
||||
["Enter replacement text"] = nil, -- src\editor\editor.lua
|
||||
@@ -126,31 +122,30 @@ return {
|
||||
["Error"] = "Error", -- src\editor\commands.lua
|
||||
["Evaluate In Console"] = "Evaluar en consola", -- src\editor\editor.lua
|
||||
["Execute the current project/file and keep updating the code to see immediate results"] = "Ejecutar el proyecto/archivo actual y manteniendo actualizado el código para ver resultados en tiempo real", -- src\editor\menu_project.lua
|
||||
["Execute the current project/file"] = "Ejecutar el proyecto/archivo actual", -- src\editor\menu_project.lua
|
||||
["Execute the current project/file"] = "Ejecutar el proyecto/archivo actual", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Execution error"] = "Error de ejecución", -- src\editor\debugger.lua
|
||||
["Exit program"] = "Salir del programa", -- src\editor\menu_file.lua
|
||||
["File '%s' has been modified on disk."] = "El archivo '%s' ha sido modificado en el disco.", -- src\editor\editor.lua
|
||||
["File '%s' has more recent timestamp than restored '%s'; please review before saving."] = "El archivo '%s' tiene una fecha más reciente que el restaurado '%s'; por favor, revísalo antes de guardar.", -- src\editor\commands.lua
|
||||
["File '%s' is missing and can't be recovered."] = nil, -- src\editor\commands.lua
|
||||
["File '%s' no longer exists."] = "El archivo '%s' no existe.", -- src\editor\menu_file.lua, src\editor\editor.lua
|
||||
["File Type"] = nil, -- src\editor\findreplace.lua
|
||||
["File already exists."] = nil, -- src\editor\commands.lua
|
||||
["File history"] = "Historial de archivos", -- src\editor\menu_file.lua
|
||||
["Find &In Files"] = "Buscar en archivos", -- src\editor\menu_search.lua
|
||||
["Find &Next"] = "Buscar siguiente", -- src\editor\menu_search.lua
|
||||
["Find &Previous"] = "Buscar anterior", -- src\editor\menu_search.lua
|
||||
["Find in files"] = nil, -- src\editor\findreplace.lua
|
||||
["Find and insert library function"] = nil, -- src\editor\menu_search.lua
|
||||
["Find and replace text in files"] = "Buscar y remplazar texto en archivos", -- src\editor\menu_search.lua
|
||||
["Find and replace text"] = "Buscar y rempleazar texto", -- src\editor\menu_search.lua
|
||||
["Find and replace text"] = "Buscar y rempleazar texto", -- src\editor\toolbar.lua, src\editor\menu_search.lua
|
||||
["Find in files"] = nil, -- src\editor\toolbar.lua
|
||||
["Find text in files"] = "Buscar texto en archivos", -- src\editor\menu_search.lua
|
||||
["Find text"] = "Buscar texto", -- src\editor\menu_search.lua
|
||||
["Find text"] = "Buscar texto", -- src\editor\toolbar.lua, src\editor\menu_search.lua
|
||||
["Find the earlier text occurence"] = "Buscar la anterior aparición del texto", -- src\editor\menu_search.lua
|
||||
["Find the next text occurrence"] = "Buscar la siguiente aparecición del texto", -- src\editor\menu_search.lua
|
||||
["Find"] = nil, -- src\editor\findreplace.lua
|
||||
["Find"] = nil, -- src\editor\toolbar.lua
|
||||
["Fold or unfold all code folds"] = "Plegar o desplegar todo el código plegado", -- src\editor\menu_edit.lua
|
||||
["Found %d instance."] = {}, -- src\editor\findreplace.lua
|
||||
["Found auto-recovery record and restored saved session."] = "Encontrada autorrecuperación y sesión restaurada.", -- src\editor\commands.lua
|
||||
["Found"] = nil, -- src\editor\findreplace.lua
|
||||
["Full &Screen"] = "Pantalla completa", -- src\editor\menu_view.lua
|
||||
["Go To Definition"] = nil, -- src\editor\editor.lua
|
||||
["Go To File..."] = nil, -- src\editor\menu_search.lua
|
||||
@@ -163,24 +158,26 @@ return {
|
||||
["Go to symbol"] = nil, -- src\editor\menu_search.lua
|
||||
["Hide '.%s' Files"] = nil, -- src\editor\filetree.lua
|
||||
["INS"] = "INS", -- src\editor\editor.lua
|
||||
["Ignore and don't index symbols from files in the selected directory"] = nil, -- src\editor\outline.lua
|
||||
["Ignored error in debugger initialization code: %s."] = nil, -- src\editor\debugger.lua
|
||||
["In Files"] = nil, -- src\editor\findreplace.lua
|
||||
["Indexing %d files: '%s'..."] = nil, -- src\editor\outline.lua
|
||||
["Indexing completed."] = nil, -- src\editor\outline.lua
|
||||
["Insert Library Function..."] = nil, -- src\editor\menu_search.lua
|
||||
["Known Files"] = "Archivos conocidos", -- src\editor\commands.lua
|
||||
["Ln: %d"] = "Ln: %d", -- src\editor\editor.lua
|
||||
["Local console"] = "Consola local", -- src\editor\gui.lua, src\editor\shellbox.lua
|
||||
["Lua &Interpreter"] = "Intérprete Lua", -- src\editor\menu_project.lua
|
||||
["Map Directory..."] = nil, -- src\editor\filetree.lua
|
||||
["Mapped remote request for '%s' to '%s'."] = nil, -- src\editor\debugger.lua
|
||||
["Match case"] = nil, -- src\editor\findreplace.lua
|
||||
["Match whole word"] = nil, -- src\editor\findreplace.lua
|
||||
["Match case"] = nil, -- src\editor\toolbar.lua
|
||||
["Match whole word"] = nil, -- src\editor\toolbar.lua
|
||||
["Mixed end-of-line encodings detected."] = nil, -- src\editor\commands.lua
|
||||
["Navigate"] = nil, -- src\editor\menu_search.lua
|
||||
["New &File"] = nil, -- src\editor\filetree.lua
|
||||
["OVR"] = "OVR", -- src\editor\editor.lua
|
||||
["Open With Default Program"] = nil, -- src\editor\filetree.lua
|
||||
["Open an existing document"] = "Abrir un documento existente", -- src\editor\menu_file.lua
|
||||
["Open an existing document"] = "Abrir un documento existente", -- src\editor\toolbar.lua, src\editor\menu_file.lua
|
||||
["Open file"] = "Abrir archivo", -- src\editor\commands.lua
|
||||
["Options"] = nil, -- src\editor\findreplace.lua
|
||||
["Outline Window"] = nil, -- src\editor\menu_view.lua
|
||||
["Outline"] = nil, -- src\editor\outline.lua
|
||||
["Output (running)"] = "Salida (en ejecución)", -- src\editor\debugger.lua, src\editor\output.lua
|
||||
@@ -202,50 +199,59 @@ return {
|
||||
["Project"] = "Proyecto", -- src\editor\filetree.lua
|
||||
["Project/&FileTree Window"] = "Ventana de proyecto/árbol de archivos", -- src\editor\menu_view.lua
|
||||
["Provide command line parameters"] = nil, -- src\editor\menu_project.lua
|
||||
["Queued %d files to index."] = nil, -- src\editor\menu_search.lua
|
||||
["R/O"] = "R/O", -- src\editor\editor.lua
|
||||
["R/W"] = "R/W", -- src\editor\editor.lua
|
||||
["Re&place In Files"] = "Remplazar en archivos", -- src\editor\menu_search.lua
|
||||
["Re-indent selected lines"] = nil, -- src\editor\menu_edit.lua
|
||||
["Reached end of text and wrapped around."] = nil, -- src\editor\findreplace.lua
|
||||
["Recent &Projects"] = nil, -- src\editor\menu_file.lua
|
||||
["Recent Files"] = "Archivos recientes", -- src\editor\menu_file.lua
|
||||
["Redo last edit undone"] = "Rehacer la última edición deshecha", -- src\editor\menu_edit.lua
|
||||
["Refresh Index"] = nil, -- src\editor\outline.lua
|
||||
["Refresh indexed symbols from files in the selected directory"] = nil, -- src\editor\outline.lua
|
||||
["Refresh"] = "Refrescar", -- src\editor\filetree.lua
|
||||
["Refused a request to start a new debugging session as there is one in progress already."] = "No se pudo lanzar una nueva sesión de depuración porque ya hay una en curso.", -- src\editor\debugger.lua
|
||||
["Regular expression"] = nil, -- src\editor\findreplace.lua
|
||||
["Regular expression"] = nil, -- src\editor\toolbar.lua
|
||||
["Remote console"] = "Consola remota", -- src\editor\shellbox.lua
|
||||
["Rename All Instances"] = nil, -- src\editor\editor.lua
|
||||
["Replace all"] = nil, -- src\editor\findreplace.lua
|
||||
["Replace All Selections"] = nil, -- src\editor\editor.lua
|
||||
["Replace"] = nil, -- src\editor\findreplace.lua
|
||||
["Replace all"] = nil, -- src\editor\toolbar.lua
|
||||
["Replace next instance"] = nil, -- src\editor\toolbar.lua
|
||||
["Replaced %d instance."] = {}, -- src\editor\findreplace.lua
|
||||
["Replaced an invalid UTF8 character with %s."] = nil, -- src\editor\commands.lua
|
||||
["Replaced"] = nil, -- src\editor\findreplace.lua
|
||||
["Replacing"] = nil, -- src\editor\findreplace.lua
|
||||
["Reset to default layout"] = "Restablecer el diseño por defecto", -- src\editor\menu_view.lua
|
||||
["Run As Scratchpad"] = "Ejecutar como borrador", -- src\editor\menu_project.lua
|
||||
["Run as Scratchpad"] = "Ejecutar como borrador", -- src\editor\menu_project.lua
|
||||
["Run To Cursor"] = nil, -- src\editor\menu_project.lua, src\editor\editor.lua
|
||||
["Run as Scratchpad"] = "Ejecutar como borrador", -- src\editor\toolbar.lua
|
||||
["Run to cursor"] = nil, -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["S&top Debugging"] = "Parar depuración", -- src\editor\menu_project.lua
|
||||
["S&top Process"] = "Parar proceso", -- src\editor\menu_project.lua
|
||||
["Save &As..."] = "Guardar como...", -- src\editor\gui.lua, src\editor\menu_file.lua
|
||||
["Save A&ll"] = "Guardar todo", -- src\editor\menu_file.lua
|
||||
["Save Changes?"] = "¿Guardar cambios?", -- src\editor\commands.lua
|
||||
["Save all open documents"] = "Guardar todos los documentos abiertos", -- src\editor\menu_file.lua
|
||||
["Save all open documents"] = "Guardar todos los documentos abiertos", -- src\editor\toolbar.lua, src\editor\menu_file.lua
|
||||
["Save file as"] = "Guardar archivo como", -- src\editor\commands.lua
|
||||
["Save file?"] = "¿Guardar archivo?", -- src\editor\commands.lua
|
||||
["Save the current document to a file with a new name"] = "Guardar el documento actual en un archivo con un nombre nuevo", -- src\editor\menu_file.lua
|
||||
["Save the current document"] = "Guardar el documento actual", -- src\editor\menu_file.lua
|
||||
["Save the current document"] = "Guardar el documento actual", -- src\editor\toolbar.lua, src\editor\menu_file.lua
|
||||
["Saved auto-recover at %s."] = "Guardar autorrecuperación en %s.", -- src\editor\commands.lua
|
||||
["Scope"] = nil, -- src\editor\findreplace.lua
|
||||
["Scratchpad error"] = "Error en el borrador", -- src\editor\debugger.lua
|
||||
["Searching for"] = nil, -- src\editor\findreplace.lua
|
||||
["Search direction"] = nil, -- src\editor\toolbar.lua
|
||||
["Search in subdirectories"] = nil, -- src\editor\toolbar.lua
|
||||
["Searching for '%s'."] = nil, -- src\editor\findreplace.lua
|
||||
["Sel: %d/%d"] = nil, -- src\editor\editor.lua
|
||||
["Select &All"] = "Seleccionar todo", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["Select all text in the editor"] = "Seleccionar todo el texto en el editor", -- src\editor\menu_edit.lua
|
||||
["Select And Find Next"] = nil, -- src\editor\menu_search.lua
|
||||
["Select And Find Previous"] = nil, -- src\editor\menu_search.lua
|
||||
["Select all text in the editor"] = "Seleccionar todo el texto en el editor", -- src\editor\menu_edit.lua
|
||||
["Select the word under cursor and find its next occurrence"] = nil, -- src\editor\menu_search.lua
|
||||
["Select the word under cursor and find its previous occurrence"] = nil, -- src\editor\menu_search.lua
|
||||
["Set As Start File"] = nil, -- src\editor\filetree.lua
|
||||
["Set From Current File"] = nil, -- src\editor\menu_project.lua
|
||||
["Set project directory from current file"] = "Establecer el directorio del proyecto del archivo actual", -- src\editor\menu_project.lua
|
||||
["Set To Project Directory"] = nil, -- src\editor\findreplace.lua
|
||||
["Set project directory from current file"] = "Establecer el directorio del proyecto del archivo actual", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Set search directory"] = nil, -- src\editor\toolbar.lua
|
||||
["Set the interpreter to be used"] = "Establecer el intérprete a ser usado", -- src\editor\menu_project.lua
|
||||
["Set the project directory to be used"] = nil, -- src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Settings: System"] = nil, -- src\editor\menu_edit.lua
|
||||
@@ -255,40 +261,50 @@ return {
|
||||
["Show Hidden Files"] = nil, -- src\editor\filetree.lua
|
||||
["Show Location"] = nil, -- src\editor\gui.lua, src\editor\filetree.lua
|
||||
["Show all files"] = nil, -- src\editor\filetree.lua
|
||||
["Show context"] = nil, -- src\editor\toolbar.lua
|
||||
["Show files previously hidden"] = nil, -- src\editor\filetree.lua
|
||||
["Show multiple result windows"] = nil, -- src\editor\toolbar.lua
|
||||
["Show tooltip for current position; place cursor after opening bracket of function"] = "Ver tooltip para la posición actual; posicionar el cursor después de abrir el paréntisis de los argumentos de la función", -- src\editor\menu_edit.lua
|
||||
["Show/Hide the status bar"] = nil, -- src\editor\menu_view.lua
|
||||
["Show/Hide the toolbar"] = nil, -- src\editor\menu_view.lua
|
||||
["Sort By Name"] = nil, -- src\editor\outline.lua
|
||||
["Sort selected lines"] = "Clasificar las líneas seleccionadas", -- src\editor\menu_edit.lua
|
||||
["Source"] = nil, -- src\editor\menu_edit.lua
|
||||
["Stack"] = nil, -- src\editor\debugger.lua
|
||||
["Start &Debugging"] = "Comenzar depuración", -- src\editor\menu_project.lua
|
||||
["Start or continue debugging"] = nil, -- src\editor\menu_project.lua
|
||||
["Start or continue debugging"] = nil, -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Step &Into"] = "Paso dentro", -- src\editor\menu_project.lua
|
||||
["Step &Over"] = "Paso sin entrar", -- src\editor\menu_project.lua
|
||||
["Step O&ut"] = "Paso fuera", -- src\editor\menu_project.lua
|
||||
["Step into"] = "Paso dentro", -- src\editor\menu_project.lua
|
||||
["Step out of the current function"] = "Hasta salir de la función actual", -- src\editor\menu_project.lua
|
||||
["Step over"] = "Paso sin entrar", -- src\editor\menu_project.lua
|
||||
["Stop debugging and continue running the process"] = nil, -- src\editor\menu_project.lua
|
||||
["Stop the currently running process"] = "Parar el proceso en ejecución", -- src\editor\menu_project.lua
|
||||
["Step into"] = "Paso dentro", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Step out of the current function"] = "Hasta salir de la función actual", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Step over"] = "Paso sin entrar", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Stop debugging and continue running the process"] = nil, -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Stop the currently running process"] = "Parar el proceso en ejecución", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Switch to or from full screen mode"] = "Conmutar el modo de pantalla completa", -- src\editor\menu_view.lua
|
||||
["Symbol Index"] = nil, -- src\editor\outline.lua
|
||||
["Text not found."] = nil, -- src\editor\findreplace.lua
|
||||
["The API file must be located in a subdirectory of the API directory."] = "El archivo de API debe ser almacenado en un subdirectorio del directorio de API.", -- src\editor\autocomplete.lua
|
||||
["Toggle Bookmark"] = nil, -- src\editor\menu_edit.lua
|
||||
["Toggle Break&point"] = "Conmutar punto de ruptura", -- src\editor\menu_project.lua
|
||||
["Toggle bookmark"] = nil, -- src\editor\menu_edit.lua
|
||||
["Toggle breakpoint"] = "Conmutar punto de ruptura", -- src\editor\menu_project.lua
|
||||
["Toggle bookmark"] = nil, -- src\editor\toolbar.lua, src\editor\menu_edit.lua
|
||||
["Toggle breakpoint"] = "Conmutar punto de ruptura", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Tr&ace"] = "Traza", -- src\editor\menu_project.lua
|
||||
["Trace execution showing each executed line"] = "Traza de ejecución mostrando cada línea ejecutada", -- src\editor\menu_project.lua
|
||||
["Unable to create directory '%s'."] = nil, -- src\editor\filetree.lua
|
||||
["Unable to create file '%s'."] = nil, -- src\editor\filetree.lua
|
||||
["Unable to delete directory '%s': %s"] = nil, -- src\editor\filetree.lua
|
||||
["Unable to delete file '%s': %s"] = nil, -- src\editor\filetree.lua
|
||||
["Unable to load file '%s'."] = "No se pudo cargar el archivo '%s'.", -- src\editor\commands.lua
|
||||
["Unable to rename file '%s'."] = nil, -- src\editor\filetree.lua
|
||||
["Unable to save file '%s': %s"] = "No se pudo guardar el archivo '%s': %s", -- src\editor\commands.lua
|
||||
["Unable to stop program (pid: %d), code %d."] = "No se puedo parar el programa (pid: %d), código %d.", -- src\editor\debugger.lua
|
||||
["Undo last edit"] = "Deshacer la última edición", -- src\editor\menu_edit.lua
|
||||
["Unmap Directory"] = nil, -- src\editor\filetree.lua
|
||||
["Unset '%s' As Start File"] = nil, -- src\editor\filetree.lua
|
||||
["Updated %d file."] = {}, -- src\editor\findreplace.lua
|
||||
["Updating symbol index and settings..."] = nil, -- src\editor\outline.lua
|
||||
["Use %s to close."] = nil, -- src\editor\findreplace.lua
|
||||
["Use '%s' to see full description."] = nil, -- src\editor\editor.lua
|
||||
["Use '%s' to show line endings and '%s' to convert them."] = nil, -- src\editor\commands.lua
|
||||
["Use 'clear' to clear the shell output and the history."] = "Usa 'clear' para limpiar la consola de salida y el historial.", -- src\editor\shellbox.lua
|
||||
@@ -296,11 +312,11 @@ return {
|
||||
["View the outline window"] = nil, -- src\editor\menu_view.lua
|
||||
["View the output/console window"] = "Ver ventana de salida/consola", -- src\editor\menu_view.lua
|
||||
["View the project/filetree window"] = "Ver la ventana de proyecto/árbol de archivos", -- src\editor\menu_view.lua
|
||||
["View the stack window"] = "Ver la ventana de la pila de ejecución", -- src\editor\menu_view.lua
|
||||
["View the watch window"] = "Ver la ventana de observación", -- src\editor\menu_view.lua
|
||||
["View the stack window"] = "Ver la ventana de la pila de ejecución", -- src\editor\toolbar.lua, src\editor\menu_view.lua
|
||||
["View the watch window"] = "Ver la ventana de observación", -- src\editor\toolbar.lua, src\editor\menu_view.lua
|
||||
["Watch"] = nil, -- src\editor\debugger.lua
|
||||
["Welcome to the interactive Lua interpreter."] = "Bienvenido al intérprete interactico de Lua.", -- src\editor\shellbox.lua
|
||||
["Wrap around"] = nil, -- src\editor\findreplace.lua
|
||||
["Wrap around"] = nil, -- src\editor\toolbar.lua
|
||||
["You must save the program first."] = "Debes guardar el programa primero", -- src\editor\commands.lua
|
||||
["Zoom In"] = nil, -- src\editor\menu_view.lua
|
||||
["Zoom Out"] = nil, -- src\editor\menu_view.lua
|
||||
|
||||
125
cfg/i18n/fr.lua
125
cfg/i18n/fr.lua
@@ -1,26 +1,24 @@
|
||||
return {
|
||||
[0] = function(c) return c == 1 and 1 or 2 end, -- plural
|
||||
["%d instance"] = {"%d occurrence", "%d occurrences"}, -- src\editor\findreplace.lua
|
||||
["%s event failed: %s"] = "L'événement %s a échoué : %s", -- src\editor\package.lua
|
||||
["%s%% loaded..."] = "%s%% chargé", -- src\editor\commands.lua
|
||||
["&About"] = "&À propos", -- src\editor\menu_help.lua
|
||||
["&Add Watch"] = "&Ajouter une expression", -- src\editor\debugger.lua
|
||||
["&Break"] = "&Interrompre", -- src\editor\menu_project.lua
|
||||
["&Close Page"] = "&Fermer la page", -- src\editor\gui.lua, src\editor\menu_file.lua
|
||||
["&Community"] = "&Communauté", -- src\editor\menu_help.lua
|
||||
["&Compile"] = "&Compiler", -- src\editor\menu_project.lua
|
||||
["&Copy Value"] = "Copier la &valeur", -- src\editor\debugger.lua
|
||||
["&Copy"] = "Co&pier", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["&Default Layout"] = "Affichage par &défaut", -- src\editor\menu_view.lua
|
||||
["&Delete Watch"] = "&Supprimer une expression", -- src\editor\debugger.lua
|
||||
["&Delete"] = "&Supprimer", -- src\editor\filetree.lua
|
||||
["&Documentation"] = "&Documentation", -- src\editor\menu_help.lua
|
||||
["&Down"] = "Vers le &bas", -- src\editor\findreplace.lua
|
||||
["&Edit Project Directory"] = "&Modifier le répertoire de projet", -- src\editor\filetree.lua
|
||||
["&Edit Value"] = "&Modifier une valeur", -- src\editor\debugger.lua
|
||||
["&Edit Watch"] = "&Modifier une expression", -- src\editor\debugger.lua
|
||||
["&Edit"] = "É&dition", -- src\editor\menu_edit.lua
|
||||
["&File"] = "&Fichier", -- src\editor\menu_file.lua
|
||||
["&Find All"] = "&Rechercher tout", -- src\editor\findreplace.lua
|
||||
["&Find Next"] = "&Rechercher", -- src\editor\findreplace.lua
|
||||
["&Find"] = "&Rechercher", -- src\editor\menu_search.lua
|
||||
["&Fold/Unfold All"] = "Re&plier/Déplier tout", -- src\editor\menu_edit.lua
|
||||
["&Frequently Asked Questions"] = "&Foire aux questions" , -- src\editor\menu_help.lua
|
||||
@@ -35,8 +33,7 @@ return {
|
||||
["&Project"] = "&Projet", -- src\editor\menu_project.lua
|
||||
["&Redo"] = "&Rétablir", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["&Rename"] = "&Renommer", -- src\editor\filetree.lua
|
||||
["&Replace All"] = "Remplacer &tout", -- src\editor\findreplace.lua
|
||||
["&Replace"] = "Re&mplacer", -- src\editor\findreplace.lua, src\editor\menu_search.lua
|
||||
["&Replace"] = "Re&mplacer", -- src\editor\menu_search.lua
|
||||
["&Run"] = "&Exécuter", -- src\editor\menu_project.lua
|
||||
["&Save"] = "&Enregistrer", -- src\editor\gui.lua, src\editor\menu_file.lua
|
||||
["&Search"] = "&Recherche", -- src\editor\menu_search.lua
|
||||
@@ -44,14 +41,11 @@ return {
|
||||
["&Stack Window"] = "&Pile d'exécution", -- src\editor\menu_view.lua
|
||||
["&Start Debugger Server"] = "Lancer le &serveur de débogage", -- src\editor\menu_project.lua
|
||||
["&Status Bar"] = "Barre d'&état", -- src\editor\menu_view.lua
|
||||
["&Subdirectories"] = "&Sous-répertoires", -- src\editor\findreplace.lua
|
||||
["&Tool Bar"] = "Barre d'&outils", -- src\editor\menu_view.lua
|
||||
["&Tutorials"] = "&Tutoriels", -- src\editor\menu_help.lua
|
||||
["&Undo"] = "&Annuler", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["&Up"] = "Vers le &haut", -- src\editor\findreplace.lua
|
||||
["&View"] = "&Affichage", -- src\editor\menu_view.lua
|
||||
["&Watch Window"] = "E&xpressions espionnes", -- src\editor\menu_view.lua
|
||||
[".bak on replace"] = ".bak avant remplacement", -- src\editor\findreplace.lua
|
||||
["About %s"] = "À propos de %s", -- src\editor\menu_help.lua
|
||||
["Add To Scratchpad"] = "Ajouter au brouillon", -- src\editor\editor.lua
|
||||
["Add Watch Expression"] = "Ajouter une expression espionne", -- src\editor\editor.lua
|
||||
@@ -61,25 +55,27 @@ return {
|
||||
["Analyze"] = "Analyser", -- src\editor\inspect.lua
|
||||
["Auto Complete Identifiers"] = "Auto-compléter les identifiants", -- src\editor\menu_edit.lua
|
||||
["Auto complete while typing"] = "Auto-complète lors de la saisie", -- src\editor\menu_edit.lua
|
||||
["Binary file is shown as read-only as it is only partially loaded."] = "Le fichier binaire est affiché en lecture seule parce qu'il a été chargé partiellement.", -- src\editor\commands.lua
|
||||
["Bookmark"] = "Marque-pages", -- src\editor\menu_edit.lua
|
||||
["Break execution at the next executed line of code"] = "Interrompt l'exécution à la ligne suivante", -- src\editor\menu_project.lua
|
||||
["Break execution at the next executed line of code"] = "Interrompt l'exécution à la ligne suivante", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["C&lear Output Window"] = "E&ffacer la fenêtre de sortie", -- src\editor\gui.lua, src\editor\menu_project.lua
|
||||
["C&omment/Uncomment"] = "Co&mmenter/Décommenter", -- src\editor\menu_edit.lua
|
||||
["Can't debug the script in the active editor window."] = "Impossible de déboguer le script dans la fenêtre d'édition active.", -- src\editor\debugger.lua
|
||||
["Can't evaluate the expression while the application is running."] = "Impossible d'évaluer l'expression pendant que l'application est en cours d'exécution.", -- src\editor\debugger.lua
|
||||
["Can't find file '%s' in the current project to activate for debugging. Update the project or open the file in the editor before debugging."] = "Impossible de trouver le fichier '%s' dans le projet courant pour permettre le débogage. Mettez le projet à jour ou ouvrez le fichier dans l'éditeur avant débogage.", -- src\editor\debugger.lua
|
||||
["Can't open file '%s': %s"] = "Impossible d'ouvrir le fichier '%s': %s", -- src\editor\singleinstance.lua
|
||||
["Can't open file '%s': %s"] = "Impossible d'ouvrir le fichier '%s': %s", -- src\editor\findreplace.lua, src\editor\singleinstance.lua, src\editor\inspect.lua, src\editor\outline.lua
|
||||
["Can't process auto-recovery record; invalid format: %s."] = "Impossible de lire la récupération automatique ; format invalide : %s.", -- src\editor\commands.lua
|
||||
["Can't replace in read-only text."] = "Impossible de remplacer dans un texte en lecture seule.", -- src\editor\findreplace.lua
|
||||
["Can't run the entry point script ('%s')."] = "Impossible d'exécuter le point d'entrée du script ('%s').", -- src\editor\debugger.lua
|
||||
["Can't start debugger server at %s:%d: %s."] = "Impossible de lancer le serveur de débogage à %s:%d: %s." , -- src\editor\debugger.lua
|
||||
["Can't start debugging for '%s'."] = "Impossible de lancer le débogage pour '%s'.", -- src\editor\debugger.lua
|
||||
["Can't start debugging session due to internal error '%s'."] = "Impossible de lancer la session de débogage : erreur interne '%s'.", -- src\editor\debugger.lua
|
||||
["Can't start debugging without an opened file or with the current file not being saved ('%s')."] = "Impossible de lancer le débogage si aucun fichier n'est ouvert ou si le fichier courant n'a pas été enregistré ('%s').", -- src\editor\debugger.lua
|
||||
["Can't stop debugger server as it is not started."] = "Impossible d'arrêter le serveur de débogage car il n'a pas été démarré.", -- src\editor\debugger.lua
|
||||
["Cancel"] = "Annuler", -- src\editor\findreplace.lua
|
||||
["Cancelled by the user."] = "Annulé par l'utilisateur.", -- src\editor\findreplace.lua
|
||||
["Choose a project directory"] = "Choisir un répertoire de projet", -- src\editor\findreplace.lua, src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Choose..."] = "Choisir...", -- src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Clear Items"] = "Effacer les éléments", -- src\editor\menu_file.lua
|
||||
["Choose a directory to map"] = "Choisir un répertoire à mapper", -- src\editor\filetree.lua
|
||||
["Choose a project directory"] = "Choisir un répertoire de projet", -- src\editor\toolbar.lua, src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Choose a search directory"] = "Choisir un répertoire dans lequel rechercher", -- src\editor\findreplace.lua
|
||||
["Choose..."] = "Choisir...", -- src\editor\findreplace.lua, src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Clear Items"] = "Effacer les éléments", -- src\editor\findreplace.lua, src\editor\menu_file.lua
|
||||
["Clear items from this list"] = "Efface les éléments de cette liste", -- src\editor\menu_file.lua
|
||||
["Clear the output window before compiling or debugging"] = "Efface la fenêtre de sortie avant compilation ou débogage", -- src\editor\menu_project.lua
|
||||
["Close &Other Pages"] = "Fermer les &autres pages", -- src\editor\gui.lua
|
||||
@@ -100,7 +96,7 @@ return {
|
||||
["Copy selected text to clipboard"] = "Copie le texte sélectionné dans le presse-papiers", -- src\editor\menu_edit.lua
|
||||
["Correct &Indentation"] = "Corriger l'&indentation", -- src\editor\menu_edit.lua
|
||||
["Couldn't activate file '%s' for debugging; continuing without it."] = "Impossible d'activer le fichier '%s' pour débogage ; poursuite du processus en ignorant le fichier.", -- src\editor\debugger.lua
|
||||
["Create an empty document"] = "Crée un document vierge", -- src\editor\menu_file.lua
|
||||
["Create an empty document"] = "Crée un document vierge", -- src\editor\toolbar.lua, src\editor\menu_file.lua
|
||||
["Cu&t"] = "&Couper", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["Cut selected text to clipboard"] = "Coupe le texte sélectionné et le copie dans le presse-papiers", -- src\editor\menu_edit.lua
|
||||
["Debugger server started at %s:%d."] = "Serveur de débogage démarré à %s:%d.", -- src\editor\debugger.lua
|
||||
@@ -109,12 +105,13 @@ return {
|
||||
["Debugging session started in '%s'."] = "Session de débogage démarrée dans '%s'.", -- src\editor\debugger.lua
|
||||
["Debugging suspended at '%s:%s' (couldn't activate the file)."] = "Débogage interrompu à '%s:%s' (impossible d'activer le fichier).", -- src\editor\debugger.lua
|
||||
["Detach &Process"] = "Détacher le p&rocessus", -- src\editor\menu_project.lua
|
||||
["Directory"] = "Répertoire ", -- src\editor\findreplace.lua
|
||||
["Disable Indexing For '%s'"] = "Désactiver l'indexation pour '%s'", -- src\editor\outline.lua
|
||||
["Do you want to delete '%s'?"] = "Voulez-vous effacer '%s' ?", -- src\editor\filetree.lua
|
||||
["Do you want to overwrite it?"] = "Voulez-vous l'écraser ?", -- src\editor\commands.lua
|
||||
["Do you want to reload it?"] = "Voulez-vous le recharger ?", -- src\editor\editor.lua
|
||||
["Do you want to save the changes to '%s'?"] = "Voulez-vous enregistrer les modifications dans '%s' ?", -- src\editor\commands.lua
|
||||
["E&xit"] = "&Quitter", -- src\editor\menu_file.lua
|
||||
["Enable Indexing"] = "Activer l'indexation", -- src\editor\outline.lua
|
||||
["Enter Lua code and press Enter to run it."] = "Saisissez du code Lua et appuyez sur <Entrée> pour l´exécuter.", -- src\editor\shellbox.lua
|
||||
["Enter command line parameters (use Cancel to clear)"] = "Saisissez les paramètres de ligne de commande (cliquez sur Annuler pour effacer)", -- src\editor\menu_project.lua
|
||||
["Enter replacement text"] = "Saisissez le texte de remplacement", -- src\editor\editor.lua
|
||||
@@ -125,31 +122,30 @@ return {
|
||||
["Error"] = "Erreur", -- src\editor\commands.lua
|
||||
["Evaluate In Console"] = "Évaluer dans la console", -- src\editor\editor.lua
|
||||
["Execute the current project/file and keep updating the code to see immediate results"] = "Exécute le projet/fichier courant en prenant en compte à la volée les modifications de code", -- src\editor\menu_project.lua
|
||||
["Execute the current project/file"] = "Exécute le projet/fichier courant", -- src\editor\menu_project.lua
|
||||
["Execute the current project/file"] = "Exécute le projet/fichier courant", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Execution error"] = "Erreur d'exécution", -- src\editor\debugger.lua
|
||||
["Exit program"] = "Quitte le programme", -- src\editor\menu_file.lua
|
||||
["File '%s' has been modified on disk."] = "Le fichier '%s' a été modifié sur le disque.", -- src\editor\editor.lua
|
||||
["File '%s' has more recent timestamp than restored '%s'; please review before saving."] = "Le fichier '%s' a un horodatage plus récent que celui restauré '%s' ; veuillez vérifier avant d'enregistrer.", -- src\editor\commands.lua
|
||||
["File '%s' is missing and can't be recovered."] = "Le fichier '%s' est manquant et ne peut pas être récupéré.", -- src\editor\commands.lua
|
||||
["File '%s' no longer exists."] = "Le fichier '%s' n'existe plus.", -- src\editor\menu_file.lua, src\editor\editor.lua
|
||||
["File Type"] = "Type de fichier ", -- src\editor\findreplace.lua
|
||||
["File already exists."] = "Le fichier existe déjà.", -- src\editor\commands.lua
|
||||
["File history"] = "Historique de fichier", -- src\editor\menu_file.lua
|
||||
["Find &In Files"] = "Rec&hercher dans les fichiers", -- src\editor\menu_search.lua
|
||||
["Find &Next"] = "Rechercher le &suivant", -- src\editor\menu_search.lua
|
||||
["Find &Previous"] = "Rechercher le &précédent", -- src\editor\menu_search.lua
|
||||
["Find in files"] = "Rechercher dans les fichiers", -- src\editor\findreplace.lua
|
||||
["Find and insert library function"] = "Recherche et insère une fonction d'une bibliothèque", -- src\editor\menu_search.lua
|
||||
["Find and replace text in files"] = "Recherche et remplace le texte dans les fichiers", -- src\editor\menu_search.lua
|
||||
["Find and replace text"] = "Recherche et remplace le texte", -- src\editor\menu_search.lua
|
||||
["Find and replace text"] = "Recherche et remplace le texte", -- src\editor\toolbar.lua, src\editor\menu_search.lua
|
||||
["Find in files"] = "Rechercher dans les fichiers", -- src\editor\toolbar.lua
|
||||
["Find text in files"] = "Recherche le texte dans les fichiers", -- src\editor\menu_search.lua
|
||||
["Find text"] = "Recherche le texte", -- src\editor\menu_search.lua
|
||||
["Find text"] = "Recherche le texte", -- src\editor\toolbar.lua, src\editor\menu_search.lua
|
||||
["Find the earlier text occurence"] = "Recherche l'occurrence précédente du texte", -- src\editor\menu_search.lua
|
||||
["Find the next text occurrence"] = "Recherche l'occurrence suivante du texte", -- src\editor\menu_search.lua
|
||||
["Find"] = "Rechercher ", -- src\editor\findreplace.lua
|
||||
["Find"] = "Rechercher ", -- src\editor\toolbar.lua
|
||||
["Fold or unfold all code folds"] = "Replie ou déplie tous les blocs de code", -- src\editor\menu_edit.lua
|
||||
["Found %d instance."] = {"%d occurence trouvée.", "%d occurences trouvées."}, -- src\editor\findreplace.lua
|
||||
["Found auto-recovery record and restored saved session."] = "Une récupération automatique a été trouvée et la session a été restaurée.", -- src\editor\commands.lua
|
||||
["Found"] = "Occurrences trouvées :", -- src\editor\findreplace.lua
|
||||
["Full &Screen"] = "Plein é&cran", -- src\editor\menu_view.lua
|
||||
["Go To Definition"] = "Aller à la définition", -- src\editor\editor.lua
|
||||
["Go To File..."] = "Aller au fichier...", -- src\editor\menu_search.lua
|
||||
@@ -162,24 +158,26 @@ return {
|
||||
["Go to symbol"] = "Permet d'accéder directement à un symbole", -- src\editor\menu_search.lua
|
||||
["Hide '.%s' Files"] = "Masquer les fichiers '.%s'", -- src\editor\filetree.lua
|
||||
["INS"] = "INS", -- src\editor\editor.lua
|
||||
["Ignore and don't index symbols from files in the selected directory"] = "Ignorer et ne pas indexer les symboles dans les fichiers provenant du répertoire sélectionné", -- src\editor\outline.lua
|
||||
["Ignored error in debugger initialization code: %s."] = "Une erreur dans le code d'initialisation du debogage a été ignorée: %s.", -- src\editor\debugger.lua
|
||||
["In Files"] = "Dans les fichiers", -- src\editor\findreplace.lua
|
||||
["Indexing %d files: '%s'..."] = "%d fichiers indexés: '%s'...", -- src\editor\outline.lua
|
||||
["Indexing completed."] = "Indexation terminée.", -- src\editor\outline.lua
|
||||
["Insert Library Function..."] = "Insérer une fonction d'une bibliothèque...", -- src\editor\menu_search.lua
|
||||
["Known Files"] = "Fichiers connus", -- src\editor\commands.lua
|
||||
["Ln: %d"] = "Lig : %d", -- src\editor\editor.lua
|
||||
["Local console"] = "Console locale", -- src\editor\gui.lua, src\editor\shellbox.lua
|
||||
["Lua &Interpreter"] = "Interpréteur L&ua", -- src\editor\menu_project.lua
|
||||
["Map Directory..."] = "Mapper un répertoire...", -- src\editor\filetree.lua
|
||||
["Mapped remote request for '%s' to '%s'."] = "La requête distante pour '%s' a été associée à '%s'.", -- src\editor\debugger.lua
|
||||
["Match case"] = "Respecter la casse", -- src\editor\findreplace.lua
|
||||
["Match whole word"] = "Mot entier uniquement", -- src\editor\findreplace.lua
|
||||
["Match case"] = "Respecter la casse", -- src\editor\toolbar.lua
|
||||
["Match whole word"] = "Mot entier uniquement", -- src\editor\toolbar.lua
|
||||
["Mixed end-of-line encodings detected."] = "Plusieurs codages de fin de ligne ont été détectés.", -- src\editor\commands.lua
|
||||
["Navigate"] = "Naviguer", -- src\editor\menu_search.lua
|
||||
["New &File"] = "Nouveau &fichier", -- src\editor\filetree.lua
|
||||
["OVR"] = "OVR", -- src\editor\editor.lua
|
||||
["Open With Default Program"] = "Ouvrir avec le programme par défaut", -- src\editor\filetree.lua
|
||||
["Open an existing document"] = "Ouvre un document existant", -- src\editor\menu_file.lua
|
||||
["Open an existing document"] = "Ouvre un document existant", -- src\editor\toolbar.lua, src\editor\menu_file.lua
|
||||
["Open file"] = "Ouvrir un fichier", -- src\editor\commands.lua
|
||||
["Options"] = "Options", -- src\editor\findreplace.lua
|
||||
["Outline Window"] = "Structure", -- src\editor\menu_view.lua
|
||||
["Outline"] = "Structure", -- src\editor\outline.lua
|
||||
["Output (running)"] = "Sortie (en cours d'exécution)", -- src\editor\debugger.lua, src\editor\output.lua
|
||||
@@ -201,50 +199,59 @@ return {
|
||||
["Project"] = "Projet", -- src\editor\filetree.lua
|
||||
["Project/&FileTree Window"] = "&Explorateur de projet", -- src\editor\menu_view.lua
|
||||
["Provide command line parameters"] = "Définit les paramètres de ligne de commande", -- src\editor\menu_project.lua
|
||||
["Queued %d files to index."] = "%d fichiers mis en attente pour l'indexation.", -- src\editor\menu_search.lua
|
||||
["R/O"] = "R/O", -- src\editor\editor.lua
|
||||
["R/W"] = "R/W", -- src\editor\editor.lua
|
||||
["Re&place In Files"] = "Remp&lacer dans les fichiers", -- src\editor\menu_search.lua
|
||||
["Re-indent selected lines"] = "Ré-indente les lignes sélectionnées", -- src\editor\menu_edit.lua
|
||||
["Reached end of text and wrapped around."] = "Fin de texte atteinte et repositionnement en début de texte.", -- src\editor\findreplace.lua
|
||||
["Recent &Projects"] = "&Projets récents", -- src\editor\menu_file.lua
|
||||
["Recent Files"] = "Fichiers récents", -- src\editor\menu_file.lua
|
||||
["Redo last edit undone"] = "Rétablit la dernière modification", -- src\editor\menu_edit.lua
|
||||
["Refresh Index"] = "Actualiser l'index", -- src\editor\outline.lua
|
||||
["Refresh indexed symbols from files in the selected directory"] = "Actualiser les symboles indexés à partir des fichiers du répertoire sélectionné", -- src\editor\outline.lua
|
||||
["Refresh"] = "Rafraîchir", -- src\editor\filetree.lua
|
||||
["Refused a request to start a new debugging session as there is one in progress already."] = "Une requête de lancement de débogage a été refusée car une session de débogage est déjà en cours.", -- src\editor\debugger.lua
|
||||
["Regular expression"] = "Expression régulière", -- src\editor\findreplace.lua
|
||||
["Regular expression"] = "Expression régulière", -- src\editor\toolbar.lua
|
||||
["Remote console"] = "Console à distance", -- src\editor\shellbox.lua
|
||||
["Rename All Instances"] = "Renommer toutes les occurrences", -- src\editor\editor.lua
|
||||
["Replace all"] = "Remplacer tout", -- src\editor\findreplace.lua
|
||||
["Replace All Selections"] = "Remplacer toutes les sélections", -- src\editor\editor.lua
|
||||
["Replace"] = "Remplacer par ", -- src\editor\findreplace.lua
|
||||
["Replace all"] = "Remplacer tout", -- src\editor\toolbar.lua
|
||||
["Replace next instance"] = "Remplacer l'occurence suivante", -- src\editor\toolbar.lua
|
||||
["Replaced %d instance."] = {"%d occurence remplacée.","%d occurences remplacées."}, -- src\editor\findreplace.lua
|
||||
["Replaced an invalid UTF8 character with %s."] = "Un caractère UTF8 invalide a été remplacé par %s.", -- src\editor\commands.lua
|
||||
["Replaced"] = "Occurrences remplacées :", -- src\editor\findreplace.lua
|
||||
["Replacing"] = "Remplacement de", -- src\editor\findreplace.lua
|
||||
["Reset to default layout"] = "Restaure l'affichage par défaut", -- src\editor\menu_view.lua
|
||||
["Run As Scratchpad"] = "Exécuter comme brouillon", -- src\editor\menu_project.lua
|
||||
["Run as Scratchpad"] = "Exécuter comme brouillon", -- src\editor\menu_project.lua
|
||||
["Run To Cursor"] = "Exécuter jusqu'au curseur", -- src\editor\menu_project.lua, src\editor\editor.lua
|
||||
["Run as Scratchpad"] = "Exécuter comme brouillon", -- src\editor\toolbar.lua
|
||||
["Run to cursor"] = "Exécuter jusqu'au curseur", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["S&top Debugging"] = "&Arrêter le débogage", -- src\editor\menu_project.lua
|
||||
["S&top Process"] = "&Arrêter le processus", -- src\editor\menu_project.lua
|
||||
["Save &As..."] = "Enregistrer &sous...", -- src\editor\gui.lua, src\editor\menu_file.lua
|
||||
["Save A&ll"] = "Enregistrer &tout", -- src\editor\menu_file.lua
|
||||
["Save Changes?"] = "Enregistrer les modifications ?", -- src\editor\commands.lua
|
||||
["Save all open documents"] = "Enregistre tous les documents ouverts", -- src\editor\menu_file.lua
|
||||
["Save all open documents"] = "Enregistre tous les documents ouverts", -- src\editor\toolbar.lua, src\editor\menu_file.lua
|
||||
["Save file as"] = "Enregistrer le fichier sous", -- src\editor\commands.lua
|
||||
["Save file?"] = "Enregistrer le fichier ?", -- src\editor\commands.lua
|
||||
["Save the current document to a file with a new name"] = "Enregistre le document courant sous un nouveau nom", -- src\editor\menu_file.lua
|
||||
["Save the current document"] = "Enregistre le document courant", -- src\editor\menu_file.lua
|
||||
["Save the current document"] = "Enregistre le document courant", -- src\editor\toolbar.lua, src\editor\menu_file.lua
|
||||
["Saved auto-recover at %s."] = "Récup. auto enregistrée à %s.", -- src\editor\commands.lua
|
||||
["Scope"] = "Direction", -- src\editor\findreplace.lua
|
||||
["Scratchpad error"] = "Erreur dans le brouillon", -- src\editor\debugger.lua
|
||||
["Searching for"] = "Recherche de", -- src\editor\findreplace.lua
|
||||
["Search direction"] = "Direction de recherche", -- src\editor\toolbar.lua
|
||||
["Search in subdirectories"] = "Rechercher dans les sous-répertoires", -- src\editor\toolbar.lua
|
||||
["Searching for '%s'."] = "Recherche de '%s'.", -- src\editor\findreplace.lua
|
||||
["Sel: %d/%d"] = "Sel: %d/%d", -- src\editor\editor.lua
|
||||
["Select &All"] = "Sélectionner &tout", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["Select all text in the editor"] = "Sélectionne tout le texte dans l'éditeur", -- src\editor\menu_edit.lua
|
||||
["Select And Find Next"] = "Sélectionner et rechercher le suivant", -- src\editor\menu_search.lua
|
||||
["Select And Find Previous"] = "Sélectionner et rerchercher le précédent", -- src\editor\menu_search.lua
|
||||
["Select all text in the editor"] = "Sélectionne tout le texte dans l'éditeur", -- src\editor\menu_edit.lua
|
||||
["Select the word under cursor and find its next occurrence"] = "Sélectionne le mot sous le curseur et recherche son occurence suivante", -- src\editor\menu_search.lua
|
||||
["Select the word under cursor and find its previous occurrence"] = "Sélectionne le mot sous le curseur et recherche son occurence précédente", -- src\editor\menu_search.lua
|
||||
["Set As Start File"] = "Définir le fichier en tant que point d'entrée", -- src\editor\filetree.lua
|
||||
["Set From Current File"] = "Définir à partir du fichier courant", -- src\editor\menu_project.lua
|
||||
["Set project directory from current file"] = "Définit le répertoire de projet à partir du fichier courant", -- src\editor\menu_project.lua
|
||||
["Set To Project Directory"] = "Utiliser le répertoire de projet", -- src\editor\findreplace.lua
|
||||
["Set project directory from current file"] = "Définit le répertoire de projet à partir du fichier courant", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Set search directory"] = "Définir le répertoire de recherche", -- src\editor\toolbar.lua
|
||||
["Set the interpreter to be used"] = "Définit l'interpréteur à utiliser", -- src\editor\menu_project.lua
|
||||
["Set the project directory to be used"] = "Définit le répertoire de projet à utiliser", -- src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Settings: System"] = "Paramètres : Système", -- src\editor\menu_edit.lua
|
||||
@@ -254,40 +261,50 @@ return {
|
||||
["Show Hidden Files"] = "Afficher les fichiers masqués", -- src\editor\filetree.lua
|
||||
["Show Location"] = "Afficher l'emplacement", -- src\editor\gui.lua, src\editor\filetree.lua
|
||||
["Show all files"] = "Affiche tous les fichiers", -- src\editor\filetree.lua
|
||||
["Show context"] = "Affiche le contexte", -- src\editor\toolbar.lua
|
||||
["Show files previously hidden"] = "Affiche les fichiers précédemment masqués", -- src\editor\filetree.lua
|
||||
["Show multiple result windows"] = "Affiche les multiples fenêtres de résultat", -- src\editor\toolbar.lua
|
||||
["Show tooltip for current position; place cursor after opening bracket of function"] = "Affiche l'info-bulle pour la position courante ; placez le curseur après la parenthèse ouvrante de la fonction", -- src\editor\menu_edit.lua
|
||||
["Show/Hide the status bar"] = "Affiche/Masque la barre d'état", -- src\editor\menu_view.lua
|
||||
["Show/Hide the toolbar"] = "Affiche/Masque la barre d'outils", -- src\editor\menu_view.lua
|
||||
["Sort By Name"] = "Trie par nom", -- src\editor\outline.lua
|
||||
["Sort selected lines"] = "Trie les lignes sélectionnées", -- src\editor\menu_edit.lua
|
||||
["Source"] = "Code", -- src\editor\menu_edit.lua
|
||||
["Stack"] = "Pile d'exécution", -- src\editor\debugger.lua
|
||||
["Start &Debugging"] = "Lancer le &débogage", -- src\editor\menu_project.lua
|
||||
["Start or continue debugging"] = "Démarre ou continue le debogage", -- src\editor\menu_project.lua
|
||||
["Start or continue debugging"] = "Démarre ou continue le debogage", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Step &Into"] = "Pas à pas détai&llé", -- src\editor\menu_project.lua
|
||||
["Step &Over"] = "Pas à pas so&mmaire", -- src\editor\menu_project.lua
|
||||
["Step O&ut"] = "Pas à pas so&rtant", -- src\editor\menu_project.lua
|
||||
["Step into"] = "Rentre dans l'instruction suivante", -- src\editor\menu_project.lua
|
||||
["Step out of the current function"] = "Sort de la fonction courante", -- src\editor\menu_project.lua
|
||||
["Step over"] = "Enjambe l'instruction suivante", -- src\editor\menu_project.lua
|
||||
["Stop debugging and continue running the process"] = "Arrête le débogage et continue l'exécution du processus", -- src\editor\menu_project.lua
|
||||
["Stop the currently running process"] = "Arrête le processus en cours d'exécution", -- src\editor\menu_project.lua
|
||||
["Step into"] = "Rentre dans l'instruction suivante", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Step out of the current function"] = "Sort de la fonction courante", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Step over"] = "Enjambe l'instruction suivante", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Stop debugging and continue running the process"] = "Arrête le débogage et continue l'exécution du processus", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Stop the currently running process"] = "Arrête le processus en cours d'exécution", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Switch to or from full screen mode"] = "Active ou désactive le mode plein écran", -- src\editor\menu_view.lua
|
||||
["Symbol Index"] = "Index des symboles", -- src\editor\outline.lua
|
||||
["Text not found."] = "Texte non trouvé.", -- src\editor\findreplace.lua
|
||||
["The API file must be located in a subdirectory of the API directory."] = "Le fichier d'API doit être placé dans un sous-répertoire du répertoire d'API.", -- src\editor\autocomplete.lua
|
||||
["Toggle Bookmark"] = "Créer/Supprimer un marque-page", -- src\editor\menu_edit.lua
|
||||
["Toggle Break&point"] = "Créer/Supprimer un &point d'arrêt", -- src\editor\menu_project.lua
|
||||
["Toggle bookmark"] = "Crée ou supprime un marque-page", -- src\editor\menu_edit.lua
|
||||
["Toggle breakpoint"] = "Crée ou supprime un point d'arrêt", -- src\editor\menu_project.lua
|
||||
["Toggle bookmark"] = "Crée ou supprime un marque-page", -- src\editor\toolbar.lua, src\editor\menu_edit.lua
|
||||
["Toggle breakpoint"] = "Crée ou supprime un point d'arrêt", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Tr&ace"] = "&Tracer", -- src\editor\menu_project.lua
|
||||
["Trace execution showing each executed line"] = "Trace l'exécution en affichant chaque ligne de code exécutée", -- src\editor\menu_project.lua
|
||||
["Unable to create directory '%s'."] = "Impossible de créer le répertoire '%s'.", -- src\editor\filetree.lua
|
||||
["Unable to create file '%s'."] = "Impossible de créer le fichier '%s'.", -- src\editor\filetree.lua
|
||||
["Unable to delete directory '%s': %s"] = "Impossible de supprimer le répertoire '%s': %s", -- src\editor\filetree.lua
|
||||
["Unable to delete file '%s': %s"] = "Impossible de supprimer le fichier '%s': %s", -- src\editor\filetree.lua
|
||||
["Unable to load file '%s'."] = "Impossible de charger le le fichier '%s'.", -- src\editor\commands.lua
|
||||
["Unable to rename file '%s'."] = "Impossible de renommer le fichier '%s'.", -- src\editor\filetree.lua
|
||||
["Unable to save file '%s': %s"] = "Impossible d'enregistrer le fichier '%s' : %s", -- src\editor\commands.lua
|
||||
["Unable to stop program (pid: %d), code %d."] = "Impossible d'arrêter le programme (pid : %d), code %d.", -- src\editor\debugger.lua
|
||||
["Undo last edit"] = "Annule la dernière modification", -- src\editor\menu_edit.lua
|
||||
["Unmap Directory"] = "Démapper le répertoire", -- src\editor\filetree.lua
|
||||
["Unset '%s' As Start File"] = "Ne plus utiliser le fichier '%s' en tant que point d'entrée", -- src\editor\filetree.lua
|
||||
["Updated %d file."] = {"%d fichier mis à jour.","%d fichiers mis à jour."}, -- src\editor\findreplace.lua
|
||||
["Updating symbol index and settings..."] = "Mise à jour en cours de l'index des symboles et des paramètres...", -- src\editor\outline.lua
|
||||
["Use %s to close."] = "Utiliser %s pour fermer.", -- src\editor\findreplace.lua
|
||||
["Use '%s' to see full description."] = "Utilisez '%s' pour voir la description complète.", -- src\editor\editor.lua
|
||||
["Use '%s' to show line endings and '%s' to convert them."] = "Utilisez '%s' pour afficher les fins de ligne et '%s' pour les convertir.", -- src\editor\commands.lua
|
||||
["Use 'clear' to clear the shell output and the history."] = "Utilisez 'clear' pour effacer la sortie console et l´historique.", -- src\editor\shellbox.lua
|
||||
@@ -295,11 +312,11 @@ return {
|
||||
["View the outline window"] = "Affiche la fenêtre de structure", -- src\editor\menu_view.lua
|
||||
["View the output/console window"] = "Affiche la fenêtre de sortie/console", -- src\editor\menu_view.lua
|
||||
["View the project/filetree window"] = "Affiche la fenêtre d'explorateur de projet", -- src\editor\menu_view.lua
|
||||
["View the stack window"] = "Affiche la fenêtre de pile d'exécution", -- src\editor\menu_view.lua
|
||||
["View the watch window"] = "Affiche la fenêtre d'expressions espionnes", -- src\editor\menu_view.lua
|
||||
["View the stack window"] = "Affiche la fenêtre de pile d'exécution", -- src\editor\toolbar.lua, src\editor\menu_view.lua
|
||||
["View the watch window"] = "Affiche la fenêtre d'expressions espionnes", -- src\editor\toolbar.lua, src\editor\menu_view.lua
|
||||
["Watch"] = "Expressions espionnes", -- src\editor\debugger.lua
|
||||
["Welcome to the interactive Lua interpreter."] = "Bienvenue dans l´interpréteur interactif Lua.", -- src\editor\shellbox.lua
|
||||
["Wrap around"] = "Boucler", -- src\editor\findreplace.lua
|
||||
["Wrap around"] = "Boucler", -- src\editor\toolbar.lua
|
||||
["You must save the program first."] = "Vous devez d'abord enregistrer le programme.", -- src\editor\commands.lua
|
||||
["Zoom In"] = "Zoomer", -- src\editor\menu_view.lua
|
||||
["Zoom Out"] = "Dézoomer", -- src\editor\menu_view.lua
|
||||
|
||||
125
cfg/i18n/it.lua
125
cfg/i18n/it.lua
@@ -1,26 +1,24 @@
|
||||
return {
|
||||
[0] = function(c) return c == 1 and 1 or 2 end, -- plural
|
||||
["%d instance"] = {"%d occorrenza", "%d occorrenze"}, -- src\editor\findreplace.lua
|
||||
["%s event failed: %s"] = "L'evento %s è fallito : %s", -- src\editor\package.lua
|
||||
["%s%% loaded..."] = "%s%% caricato...", -- src\editor\commands.lua
|
||||
["&About"] = "Informazioni", -- src\editor\menu_help.lua
|
||||
["&Add Watch"] = "&Aggiungi Espressione di Controllo", -- src\editor\debugger.lua
|
||||
["&Break"] = "Interrompi", -- src\editor\menu_project.lua
|
||||
["&Close Page"] = "&Chiudi pagina", -- src\editor\gui.lua, src\editor\menu_file.lua
|
||||
["&Community"] = "&Comunità", -- src\editor\menu_help.lua
|
||||
["&Compile"] = "&Compila", -- src\editor\menu_project.lua
|
||||
["&Copy Value"] = "&Copia Valore", -- src\editor\debugger.lua
|
||||
["&Copy"] = "&Copia", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["&Default Layout"] = "Visualizzazione di &Default", -- src\editor\menu_view.lua
|
||||
["&Delete Watch"] = "Elimina Espressione di Controllo", -- src\editor\debugger.lua
|
||||
["&Delete"] = "Elimina", -- src\editor\filetree.lua
|
||||
["&Documentation"] = "Documentazione", -- src\editor\menu_help.lua
|
||||
["&Down"] = "Verso il basso", -- src\editor\findreplace.lua
|
||||
["&Edit Project Directory"] = "Modifica directory di progetto", -- src\editor\filetree.lua
|
||||
["&Edit Value"] = "Modifica Valore", -- src\editor\debugger.lua
|
||||
["&Edit Watch"] = "Modifica Espressione di Controllo", -- src\editor\debugger.lua
|
||||
["&Edit"] = "Modifica", -- src\editor\menu_edit.lua
|
||||
["&File"] = "File", -- src\editor\menu_file.lua
|
||||
["&Find All"] = "Trova Tutti", -- src\editor\findreplace.lua
|
||||
["&Find Next"] = "Trova Successivo", -- src\editor\findreplace.lua
|
||||
["&Find"] = "Ricerca", -- src\editor\menu_search.lua
|
||||
["&Fold/Unfold All"] = "Apri/Chiudi tutto", -- src\editor\menu_edit.lua
|
||||
["&Frequently Asked Questions"] = "Domande &Frequenti", -- src\editor\menu_help.lua
|
||||
@@ -35,8 +33,7 @@ return {
|
||||
["&Project"] = "&Progetto", -- src\editor\menu_project.lua
|
||||
["&Redo"] = "&Ripeti", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["&Rename"] = "&Rinomina", -- src\editor\filetree.lua
|
||||
["&Replace All"] = "Sostituisci Tutti", -- src\editor\findreplace.lua
|
||||
["&Replace"] = "Sostituisci", -- src\editor\findreplace.lua, src\editor\menu_search.lua
|
||||
["&Replace"] = "Sostituisci", -- src\editor\menu_search.lua
|
||||
["&Run"] = "Lancia", -- src\editor\menu_project.lua
|
||||
["&Save"] = "&Salva", -- src\editor\gui.lua, src\editor\menu_file.lua
|
||||
["&Search"] = "Ricerca", -- src\editor\menu_search.lua
|
||||
@@ -44,14 +41,11 @@ return {
|
||||
["&Stack Window"] = "Stack di chiamate", -- src\editor\menu_view.lua
|
||||
["&Start Debugger Server"] = "Avvia Debugger Server", -- src\editor\menu_project.lua
|
||||
["&Status Bar"] = "Barra di stato", -- src\editor\menu_view.lua
|
||||
["&Subdirectories"] = "Sotto Directory", -- src\editor\findreplace.lua
|
||||
["&Tool Bar"] = "Barra degli strumenti", -- src\editor\menu_view.lua
|
||||
["&Tutorials"] = "Guide", -- src\editor\menu_help.lua
|
||||
["&Undo"] = "Annulla", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["&Up"] = "Verso l'alto", -- src\editor\findreplace.lua
|
||||
["&View"] = "Visualizza", -- src\editor\menu_view.lua
|
||||
["&Watch Window"] = "Finestra Espressioni di Controllo", -- src\editor\menu_view.lua
|
||||
[".bak on replace"] = ".bak su Sostituisci", -- src\editor\findreplace.lua
|
||||
["About %s"] = "Informazioni su %s", -- src\editor\menu_help.lua
|
||||
["Add To Scratchpad"] = "Aggiungi a Scratchpad ", -- src\editor\editor.lua
|
||||
["Add Watch Expression"] = "Aggiungi Espressione di Controllo", -- src\editor\editor.lua
|
||||
@@ -61,25 +55,27 @@ return {
|
||||
["Analyze"] = "Analizza", -- src\editor\inspect.lua
|
||||
["Auto Complete Identifiers"] = "Autocompletamento identificatori", -- src\editor\menu_edit.lua
|
||||
["Auto complete while typing"] = "Autocompletamento in linea", -- src\editor\menu_edit.lua
|
||||
["Binary file is shown as read-only as it is only partially loaded."] = "Il file binario è aperto in sola lettura, poichè caricato solo parzialmente.", -- src\editor\commands.lua
|
||||
["Bookmark"] = "Segnalibro", -- src\editor\menu_edit.lua
|
||||
["Break execution at the next executed line of code"] = "Interrompi l'esecuzione alla successiva riga di codice ", -- src\editor\menu_project.lua
|
||||
["Break execution at the next executed line of code"] = "Interrompi l'esecuzione alla successiva riga di codice ", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["C&lear Output Window"] = "Pulisci finestra di output", -- src\editor\gui.lua, src\editor\menu_project.lua
|
||||
["C&omment/Uncomment"] = "Commenta/Scommenta", -- src\editor\menu_edit.lua
|
||||
["Can't debug the script in the active editor window."] = "Impossibile farte debug dello script nella finestra attiva", -- src\editor\debugger.lua
|
||||
["Can't evaluate the expression while the application is running."] = "Impossibile interpretare l'espressione se l'applicazione è in esecuzione.", -- src\editor\debugger.lua
|
||||
["Can't find file '%s' in the current project to activate for debugging. Update the project or open the file in the editor before debugging."] = "File '%s' non trovato nel progetto per attivare il debug. Modificare il progetto o apire il file prima di lanciare il debug.", -- src\editor\debugger.lua
|
||||
["Can't open file '%s': %s"] = "Impossibile aprire il file '%s': %s", -- src\editor\singleinstance.lua
|
||||
["Can't open file '%s': %s"] = "Impossibile aprire il file '%s': %s", -- src\editor\findreplace.lua, src\editor\singleinstance.lua, src\editor\inspect.lua, src\editor\outline.lua
|
||||
["Can't process auto-recovery record; invalid format: %s."] = "Impossibile procedere all'auto-recovery; Formato non valido: %s.", -- src\editor\commands.lua
|
||||
["Can't replace in read-only text."] = "Impossibile sostituire in un testo in sola lettura", -- src\editor\findreplace.lua
|
||||
["Can't run the entry point script ('%s')."] = "Impossibile eseguire il punto di ingresos dello script (%s).", -- src\editor\debugger.lua
|
||||
["Can't start debugger server at %s:%d: %s."] = "Impossibile lanciare il server debugger a %s:%d: %s.", -- src\editor\debugger.lua
|
||||
["Can't start debugging for '%s'."] = "Impossibile iniziare il debug perchè '%s'.", -- src\editor\debugger.lua
|
||||
["Can't start debugging session due to internal error '%s'."] = "Impossibile lanciare la sessione di debug: errore interno '%s'.'", -- src\editor\debugger.lua
|
||||
["Can't start debugging without an opened file or with the current file not being saved ('%s')."] = "Impossibile lanciare il debug senza aver aperto un file o se il file corrente non è stato salvato ('%s').", -- src\editor\debugger.lua
|
||||
["Can't stop debugger server as it is not started."] = "Impossibile fermare il server debugger perchè non è stato avviato", -- src\editor\debugger.lua
|
||||
["Cancel"] = "Annulla", -- src\editor\findreplace.lua
|
||||
["Cancelled by the user."] = "Annullato dall'utente", -- src\editor\findreplace.lua
|
||||
["Choose a project directory"] = "Scegli la directory di un progetto", -- src\editor\findreplace.lua, src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Choose..."] = "Scegli...", -- src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Clear Items"] = "Pulisci elementi", -- src\editor\menu_file.lua
|
||||
["Choose a directory to map"] = "Scegli una directory da mappare", -- src\editor\filetree.lua
|
||||
["Choose a project directory"] = "Scegli la directory di un progetto", -- src\editor\toolbar.lua, src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Choose a search directory"] = "Scegli una directory di ricerca", -- src\editor\findreplace.lua
|
||||
["Choose..."] = "Scegli...", -- src\editor\findreplace.lua, src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Clear Items"] = "Pulisci elementi", -- src\editor\findreplace.lua, src\editor\menu_file.lua
|
||||
["Clear items from this list"] = "Pulisci elementi della lista", -- src\editor\menu_file.lua
|
||||
["Clear the output window before compiling or debugging"] = "Pulisci la finestra di output prima di compilare o lanciare debug", -- src\editor\menu_project.lua
|
||||
["Close &Other Pages"] = "Chidi le Altre Pagine", -- src\editor\gui.lua
|
||||
@@ -100,7 +96,7 @@ return {
|
||||
["Copy selected text to clipboard"] = "Copia il testo selezionato negli appunti", -- src\editor\menu_edit.lua
|
||||
["Correct &Indentation"] = "Correggi &Indentazione", -- src\editor\menu_edit.lua
|
||||
["Couldn't activate file '%s' for debugging; continuing without it."] = "Impossibile attivare il file '%s' per debug; si prosegue senza.", -- src\editor\debugger.lua
|
||||
["Create an empty document"] = "Crea un documento vuoto", -- src\editor\menu_file.lua
|
||||
["Create an empty document"] = "Crea un documento vuoto", -- src\editor\toolbar.lua, src\editor\menu_file.lua
|
||||
["Cu&t"] = "&Taglia", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["Cut selected text to clipboard"] = "Taglia il testo selezionato e mette negli appunti", -- src\editor\menu_edit.lua
|
||||
["Debugger server started at %s:%d."] = "Server Debugger iniziato %s:%d.", -- src\editor\debugger.lua
|
||||
@@ -109,12 +105,13 @@ return {
|
||||
["Debugging session started in '%s'."] = "Sessione di debug iniziata da '%s'.", -- src\editor\debugger.lua
|
||||
["Debugging suspended at '%s:%s' (couldn't activate the file)."] = "Debug sospeso a '%s:%s' (impossibile attivare il file).", -- src\editor\debugger.lua
|
||||
["Detach &Process"] = "Scollega Processo", -- src\editor\menu_project.lua
|
||||
["Directory"] = "Directory", -- src\editor\findreplace.lua
|
||||
["Disable Indexing For '%s'"] = "Disabilita Indicizzazione per '%s'", -- src\editor\outline.lua
|
||||
["Do you want to delete '%s'?"] = "Vuoi eliminare '%s'?", -- src\editor\filetree.lua
|
||||
["Do you want to overwrite it?"] = "Vuoi sovrascrivere '%s'?", -- src\editor\commands.lua
|
||||
["Do you want to reload it?"] = "Vuoi ricaricarlo?", -- src\editor\editor.lua
|
||||
["Do you want to save the changes to '%s'?"] = "Vuoi salvare le modifiche a '%s'?", -- src\editor\commands.lua
|
||||
["E&xit"] = "Uscita", -- src\editor\menu_file.lua
|
||||
["Enable Indexing"] = "Abilita Indicizzazione", -- src\editor\outline.lua
|
||||
["Enter Lua code and press Enter to run it."] = "Inserisci codice Lua e premi <Enter> per eseguirlo.", -- src\editor\shellbox.lua
|
||||
["Enter command line parameters (use Cancel to clear)"] = "Inserisci i parametri riga di comando (Annulla per pulire)", -- src\editor\menu_project.lua
|
||||
["Enter replacement text"] = "Inserisci il testo da sostituire", -- src\editor\editor.lua
|
||||
@@ -125,31 +122,30 @@ return {
|
||||
["Error"] = "Errore", -- src\editor\commands.lua
|
||||
["Evaluate In Console"] = "Elabora in console", -- src\editor\editor.lua
|
||||
["Execute the current project/file and keep updating the code to see immediate results"] = "Esegue il progetto/file corrente e permette di modificare il codice per vedere i risultati in tempo reale", -- src\editor\menu_project.lua
|
||||
["Execute the current project/file"] = "Esegue il progetto/file corrente", -- src\editor\menu_project.lua
|
||||
["Execute the current project/file"] = "Esegue il progetto/file corrente", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Execution error"] = "Errore di esecuzione", -- src\editor\debugger.lua
|
||||
["Exit program"] = "Uscita dal programma", -- src\editor\menu_file.lua
|
||||
["File '%s' has been modified on disk."] = "Il file '%s' e' stato modificato sul disco.", -- src\editor\editor.lua
|
||||
["File '%s' has more recent timestamp than restored '%s'; please review before saving."] = "Il file '%s' ha un timestamp più recente di quello ripristinato '%s'; verificare prima di salvare.", -- src\editor\commands.lua
|
||||
["File '%s' is missing and can't be recovered."] = "Il file '%s' non è stato trovato e non può essere recuperato.", -- src\editor\commands.lua
|
||||
["File '%s' no longer exists."] = "Il file '%s' non esiste piu'.", -- src\editor\menu_file.lua, src\editor\editor.lua
|
||||
["File Type"] = "File Type", -- src\editor\findreplace.lua
|
||||
["File already exists."] = "Il file esiste già.", -- src\editor\commands.lua
|
||||
["File history"] = "Storia del file", -- src\editor\menu_file.lua
|
||||
["Find &In Files"] = "Ricerca nei files", -- src\editor\menu_search.lua
|
||||
["Find &Next"] = "Cerca il successivo", -- src\editor\menu_search.lua
|
||||
["Find &Previous"] = "Cerca il precedente", -- src\editor\menu_search.lua
|
||||
["Find in files"] = "Ricerca nei files", -- src\editor\findreplace.lua
|
||||
["Find and insert library function"] = "Trova e inserisci funzione di libreria", -- src\editor\menu_search.lua
|
||||
["Find and replace text in files"] = "Cerca e sostituisci testo nei files", -- src\editor\menu_search.lua
|
||||
["Find and replace text"] = "Cerca e sostituisci testo", -- src\editor\menu_search.lua
|
||||
["Find and replace text"] = "Cerca e sostituisci testo", -- src\editor\toolbar.lua, src\editor\menu_search.lua
|
||||
["Find in files"] = "Ricerca nei files", -- src\editor\toolbar.lua
|
||||
["Find text in files"] = "Cerca testo nei files", -- src\editor\menu_search.lua
|
||||
["Find text"] = "Cerca testo", -- src\editor\menu_search.lua
|
||||
["Find text"] = "Cerca testo", -- src\editor\toolbar.lua, src\editor\menu_search.lua
|
||||
["Find the earlier text occurence"] = "Cerca la precedente occorrenza nel testo", -- src\editor\menu_search.lua
|
||||
["Find the next text occurrence"] = "Cerca la successiva occorrenza nel testo", -- src\editor\menu_search.lua
|
||||
["Find"] = "Ricerca", -- src\editor\findreplace.lua
|
||||
["Find"] = "Ricerca", -- src\editor\toolbar.lua
|
||||
["Fold or unfold all code folds"] = "Apri o chiudi tutti i blocchi di codice", -- src\editor\menu_edit.lua
|
||||
["Found %d instance."] = {"Trovata %d istanza.", "Trovate %d istanze."}, -- src\editor\findreplace.lua
|
||||
["Found auto-recovery record and restored saved session."] = "Trovato punto di auto-revcovery e ripristinata la sessione salvata", -- src\editor\commands.lua
|
||||
["Found"] = "Occorrenze trovate:", -- src\editor\findreplace.lua
|
||||
["Full &Screen"] = "Schermo intero", -- src\editor\menu_view.lua
|
||||
["Go To Definition"] = "Vai a Definizione", -- src\editor\editor.lua
|
||||
["Go To File..."] = "Vai al File...", -- src\editor\menu_search.lua
|
||||
@@ -162,24 +158,26 @@ return {
|
||||
["Go to symbol"] = "Vai al simbolo", -- src\editor\menu_search.lua
|
||||
["Hide '.%s' Files"] = "Nascondi Files '.%s'", -- src\editor\filetree.lua
|
||||
["INS"] = "INS", -- src\editor\editor.lua
|
||||
["Ignore and don't index symbols from files in the selected directory"] = "Ignora e non indicizzare simboli nella directory selezionata", -- src\editor\outline.lua
|
||||
["Ignored error in debugger initialization code: %s."] = "Errore ignorato durante l'inizializzaione del debugger codice: %s.", -- src\editor\debugger.lua
|
||||
["In Files"] = "Nei Files", -- src\editor\findreplace.lua
|
||||
["Indexing %d files: '%s'..."] = "Indicizzazione %d file: '%s'...", -- src\editor\outline.lua
|
||||
["Indexing completed."] = "Indicizzazione completata", -- src\editor\outline.lua
|
||||
["Insert Library Function..."] = "Inserisci Funzione di Libreria...", -- src\editor\menu_search.lua
|
||||
["Known Files"] = "Files conosciuti", -- src\editor\commands.lua
|
||||
["Ln: %d"] = "Ln: %d", -- src\editor\editor.lua
|
||||
["Local console"] = "Console locale", -- src\editor\gui.lua, src\editor\shellbox.lua
|
||||
["Lua &Interpreter"] = "&Interprete Lua", -- src\editor\menu_project.lua
|
||||
["Map Directory..."] = "Mappa directory...", -- src\editor\filetree.lua
|
||||
["Mapped remote request for '%s' to '%s'."] = "Richiesta remota '%s' mappata su '%s'.", -- src\editor\debugger.lua
|
||||
["Match case"] = "Maiuscole/Minuscole", -- src\editor\findreplace.lua
|
||||
["Match whole word"] = "Intera parola", -- src\editor\findreplace.lua
|
||||
["Match case"] = "Maiuscole/Minuscole", -- src\editor\toolbar.lua
|
||||
["Match whole word"] = "Intera parola", -- src\editor\toolbar.lua
|
||||
["Mixed end-of-line encodings detected."] = "Trovata codifica Fine-Riga mista.", -- src\editor\commands.lua
|
||||
["Navigate"] = "Naviga", -- src\editor\menu_search.lua
|
||||
["New &File"] = "Nuovo &File", -- src\editor\filetree.lua
|
||||
["OVR"] = "OVR", -- src\editor\editor.lua
|
||||
["Open With Default Program"] = "Apri con programma predefinito", -- src\editor\filetree.lua
|
||||
["Open an existing document"] = "Apri un documento esistente", -- src\editor\menu_file.lua
|
||||
["Open an existing document"] = "Apri un documento esistente", -- src\editor\toolbar.lua, src\editor\menu_file.lua
|
||||
["Open file"] = "Apri un file", -- src\editor\commands.lua
|
||||
["Options"] = "Opzioni", -- src\editor\findreplace.lua
|
||||
["Outline Window"] = "Finestra Outline", -- src\editor\menu_view.lua
|
||||
["Outline"] = "Outline", -- src\editor\outline.lua
|
||||
["Output (running)"] = "Output (in corso d'esecuzione)", -- src\editor\debugger.lua, src\editor\output.lua
|
||||
@@ -201,50 +199,59 @@ return {
|
||||
["Project"] = "Progetto", -- src\editor\filetree.lua
|
||||
["Project/&FileTree Window"] = "Progetto/Explorer", -- src\editor\menu_view.lua
|
||||
["Provide command line parameters"] = "Fornire parametri riga di comando", -- src\editor\menu_project.lua
|
||||
["Queued %d files to index."] = "Accodati %d file per indicizzazione.", -- src\editor\menu_search.lua
|
||||
["R/O"] = "R/O", -- src\editor\editor.lua
|
||||
["R/W"] = "R/W", -- src\editor\editor.lua
|
||||
["Re&place In Files"] = "Sostituisci nei files", -- src\editor\menu_search.lua
|
||||
["Re-indent selected lines"] = "Re-indenta le linee selezionate", -- src\editor\menu_edit.lua
|
||||
["Reached end of text and wrapped around."] = "Raggiunta la fine del testo e ricominciato da inizio", -- src\editor\findreplace.lua
|
||||
["Recent &Projects"] = "Progetti Recenti", -- src\editor\menu_file.lua
|
||||
["Recent Files"] = "Files recenti", -- src\editor\menu_file.lua
|
||||
["Redo last edit undone"] = "Ripeti l'ultima azione annullata", -- src\editor\menu_edit.lua
|
||||
["Refresh Index"] = "Aggiorna Indici", -- src\editor\outline.lua
|
||||
["Refresh indexed symbols from files in the selected directory"] = "Aggiorna simboli indicizzati dai files nella directory selezionata", -- src\editor\outline.lua
|
||||
["Refresh"] = "Rinfrescare", -- src\editor\filetree.lua
|
||||
["Refused a request to start a new debugging session as there is one in progress already."] = "Impossibile aprire una nuova sessione di debug in quanto ne esiste una in corso", -- src\editor\debugger.lua
|
||||
["Regular expression"] = "Regular expression", -- src\editor\findreplace.lua
|
||||
["Regular expression"] = "Regular expression", -- src\editor\toolbar.lua
|
||||
["Remote console"] = "Console remota", -- src\editor\shellbox.lua
|
||||
["Rename All Instances"] = "Rinomina tutte le occorrenze", -- src\editor\editor.lua
|
||||
["Replace all"] = "Sostituisci Tutto", -- src\editor\findreplace.lua
|
||||
["Replace All Selections"] = "Sostituisci Tutte le Selezioni", -- src\editor\editor.lua
|
||||
["Replace"] = "Sostituisci", -- src\editor\findreplace.lua
|
||||
["Replace all"] = "Sostituisci Tutto", -- src\editor\toolbar.lua
|
||||
["Replace next instance"] = "Sostituisci istanza successiva", -- src\editor\toolbar.lua
|
||||
["Replaced %d instance."] = {"Sostituita %d istanza.", "Sostituite %d istanze."}, -- src\editor\findreplace.lua
|
||||
["Replaced an invalid UTF8 character with %s."] = "Sostituito un carattere UTF8 invalido con %s.", -- src\editor\commands.lua
|
||||
["Replaced"] = "Sostituiti :", -- src\editor\findreplace.lua
|
||||
["Replacing"] = "Sostituzione", -- src\editor\findreplace.lua
|
||||
["Reset to default layout"] = "Ritorna al default layout", -- src\editor\menu_view.lua
|
||||
["Run As Scratchpad"] = "Esegui in Scratchpad (Live coding)", -- src\editor\menu_project.lua
|
||||
["Run as Scratchpad"] = "Esegui in Scratchpad (Live coding)", -- src\editor\menu_project.lua
|
||||
["Run To Cursor"] = "Esegui fino al Cursore", -- src\editor\menu_project.lua, src\editor\editor.lua
|
||||
["Run as Scratchpad"] = "Esegui in Scratchpad (Live coding)", -- src\editor\toolbar.lua
|
||||
["Run to cursor"] = "Esegui fino al cursore", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["S&top Debugging"] = "Ferma il debugger", -- src\editor\menu_project.lua
|
||||
["S&top Process"] = "Ferma il processo", -- src\editor\menu_project.lua
|
||||
["Save &As..."] = "S&alva con nome...", -- src\editor\gui.lua, src\editor\menu_file.lua
|
||||
["Save A&ll"] = "Sa&lva tutto", -- src\editor\menu_file.lua
|
||||
["Save Changes?"] = "Vuoi salvare le modifiche?", -- src\editor\commands.lua
|
||||
["Save all open documents"] = "Salva tutti i documenti aperti", -- src\editor\menu_file.lua
|
||||
["Save all open documents"] = "Salva tutti i documenti aperti", -- src\editor\toolbar.lua, src\editor\menu_file.lua
|
||||
["Save file as"] = "Salva il file con nome", -- src\editor\commands.lua
|
||||
["Save file?"] = "Vuoi salvare il file?", -- src\editor\commands.lua
|
||||
["Save the current document to a file with a new name"] = "Salva il documento corrente in un file con un nuovo nome", -- src\editor\menu_file.lua
|
||||
["Save the current document"] = "Salva il documento corrente", -- src\editor\menu_file.lua
|
||||
["Save the current document"] = "Salva il documento corrente", -- src\editor\toolbar.lua, src\editor\menu_file.lua
|
||||
["Saved auto-recover at %s."] = "Salvato auto-recover a %s.", -- src\editor\commands.lua
|
||||
["Scope"] = "Direzione", -- src\editor\findreplace.lua
|
||||
["Scratchpad error"] = "Errore durente Scratchpad", -- src\editor\debugger.lua
|
||||
["Searching for"] = "Ricerca di", -- src\editor\findreplace.lua
|
||||
["Search direction"] = "Direzione ricerca", -- src\editor\toolbar.lua
|
||||
["Search in subdirectories"] = "Ricerca nelle sotto-directory", -- src\editor\toolbar.lua
|
||||
["Searching for '%s'."] = "Ricerca di '%s'.", -- src\editor\findreplace.lua
|
||||
["Sel: %d/%d"] = "Sel: %d/%d", -- src\editor\editor.lua
|
||||
["Select &All"] = "Selezion&a Tutto", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["Select all text in the editor"] = "Seleziona tutto il testo nell'editor", -- src\editor\menu_edit.lua
|
||||
["Select And Find Next"] = "Seleziona e trova successivo", -- src\editor\menu_search.lua
|
||||
["Select And Find Previous"] = "Seleziona e trova precedente", -- src\editor\menu_search.lua
|
||||
["Select all text in the editor"] = "Seleziona tutto il testo nell'editor", -- src\editor\menu_edit.lua
|
||||
["Select the word under cursor and find its next occurrence"] = "Seleziona la parola e trova successivo", -- src\editor\menu_search.lua
|
||||
["Select the word under cursor and find its previous occurrence"] = "Seleziona la parola e trova precedente", -- src\editor\menu_search.lua
|
||||
["Set As Start File"] = "Imposta come File di Partenza", -- src\editor\filetree.lua
|
||||
["Set From Current File"] = "Impostato da file corrente", -- src\editor\menu_project.lua
|
||||
["Set project directory from current file"] = "Definisci la directory del progeetto dal file corrente", -- src\editor\menu_project.lua
|
||||
["Set To Project Directory"] = "Imposta a Directory di Progetto", -- src\editor\findreplace.lua
|
||||
["Set project directory from current file"] = "Definisci la directory del progeetto dal file corrente", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Set search directory"] = "Imposta directory ricerca", -- src\editor\toolbar.lua
|
||||
["Set the interpreter to be used"] = "Definisci l'interprete da utilizzare", -- src\editor\menu_project.lua
|
||||
["Set the project directory to be used"] = "Imposta la directory di progetto da usare", -- src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Settings: System"] = "Impostazioni: Sistema", -- src\editor\menu_edit.lua
|
||||
@@ -254,40 +261,50 @@ return {
|
||||
["Show Hidden Files"] = "Mostra File nascosti", -- src\editor\filetree.lua
|
||||
["Show Location"] = "Mostra posizione", -- src\editor\gui.lua, src\editor\filetree.lua
|
||||
["Show all files"] = "Mostra tutti i file", -- src\editor\filetree.lua
|
||||
["Show context"] = "Mostra contesto", -- src\editor\toolbar.lua
|
||||
["Show files previously hidden"] = "Mostra i file precedentemente nascosti", -- src\editor\filetree.lua
|
||||
["Show multiple result windows"] = "Mostra più finestre dei risultati", -- src\editor\toolbar.lua
|
||||
["Show tooltip for current position; place cursor after opening bracket of function"] = "Mostra i consigli per la posizione corrente; muovi il cursore dopo la parentesi o la funzione", -- src\editor\menu_edit.lua
|
||||
["Show/Hide the status bar"] = "Mostra/Nascondi la barra di stato", -- src\editor\menu_view.lua
|
||||
["Show/Hide the toolbar"] = "Mostra/Nascondi la barra degli strumenti", -- src\editor\menu_view.lua
|
||||
["Sort By Name"] = "Ordina per Nome", -- src\editor\outline.lua
|
||||
["Sort selected lines"] = "Ordina le righe selezionate", -- src\editor\menu_edit.lua
|
||||
["Source"] = "Sorgente", -- src\editor\menu_edit.lua
|
||||
["Stack"] = "Stack", -- src\editor\debugger.lua
|
||||
["Start &Debugging"] = "Inizia il &Debug", -- src\editor\menu_project.lua
|
||||
["Start or continue debugging"] = "Inizia o continua il debug", -- src\editor\menu_project.lua
|
||||
["Start or continue debugging"] = "Inizia o continua il debug", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Step &Into"] = "Step &Into", -- src\editor\menu_project.lua
|
||||
["Step &Over"] = "Step &Over", -- src\editor\menu_project.lua
|
||||
["Step O&ut"] = "Step O&ut", -- src\editor\menu_project.lua
|
||||
["Step into"] = "Step into", -- src\editor\menu_project.lua
|
||||
["Step out of the current function"] = "Contina fino all'uscita della funzione", -- src\editor\menu_project.lua
|
||||
["Step over"] = "Continua senza entrare nella funzione", -- src\editor\menu_project.lua
|
||||
["Stop debugging and continue running the process"] = "Ferma il debug e continua l'esecuzione del processo", -- src\editor\menu_project.lua
|
||||
["Stop the currently running process"] = "Ferma il processo in esecuzione", -- src\editor\menu_project.lua
|
||||
["Step into"] = "Step into", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Step out of the current function"] = "Contina fino all'uscita della funzione", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Step over"] = "Continua senza entrare nella funzione", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Stop debugging and continue running the process"] = "Ferma il debug e continua l'esecuzione del processo", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Stop the currently running process"] = "Ferma il processo in esecuzione", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Switch to or from full screen mode"] = "Passa da tutto schermo a finestra", -- src\editor\menu_view.lua
|
||||
["Symbol Index"] = "Indice Simboli", -- src\editor\outline.lua
|
||||
["Text not found."] = "Testo non trovato.", -- src\editor\findreplace.lua
|
||||
["The API file must be located in a subdirectory of the API directory."] = "Il file API deve essere presente in una sottodirectory o nella direcotory API.", -- src\editor\autocomplete.lua
|
||||
["Toggle Bookmark"] = "Attiva/Disattiva Segnalibro", -- src\editor\menu_edit.lua
|
||||
["Toggle Break&point"] = "Attiva/Disattiva Break&point", -- src\editor\menu_project.lua
|
||||
["Toggle bookmark"] = "Attiva/Disattiva Segnalibro", -- src\editor\menu_edit.lua
|
||||
["Toggle breakpoint"] = "Attiva/Disattiva Breakpoint", -- src\editor\menu_project.lua
|
||||
["Toggle bookmark"] = "Attiva/Disattiva Segnalibro", -- src\editor\toolbar.lua, src\editor\menu_edit.lua
|
||||
["Toggle breakpoint"] = "Attiva/Disattiva Breakpoint", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Tr&ace"] = "Tr&ace", -- src\editor\menu_project.lua
|
||||
["Trace execution showing each executed line"] = "Traccia l'esecuzione mostrando le righe eseguite", -- src\editor\menu_project.lua
|
||||
["Unable to create directory '%s'."] = "Impossibile creare la directory '%s'.", -- src\editor\filetree.lua
|
||||
["Unable to create file '%s'."] = "Impossibile creare il file '%s'.", -- src\editor\filetree.lua
|
||||
["Unable to delete directory '%s': %s"] = "Impossibile cancellare la directory '%s': %s", -- src\editor\filetree.lua
|
||||
["Unable to delete file '%s': %s"] = "Impossibile cancellare file '%s': %s", -- src\editor\filetree.lua
|
||||
["Unable to load file '%s'."] = "Impossibile aprire il file '%s'.", -- src\editor\commands.lua
|
||||
["Unable to rename file '%s'."] = "Impossibile rinominare il file '%s'.", -- src\editor\filetree.lua
|
||||
["Unable to save file '%s': %s"] = "Impossibile salvare il file '%s': %s", -- src\editor\commands.lua
|
||||
["Unable to stop program (pid: %d), code %d."] = "Impossibile fermare il programma (pid: %d), code %d.", -- src\editor\debugger.lua
|
||||
["Undo last edit"] = "Annulla l'ultima azione di edit", -- src\editor\menu_edit.lua
|
||||
["Unmap Directory"] = "Togli mappatura Directory", -- src\editor\filetree.lua
|
||||
["Unset '%s' As Start File"] = "Togli '%s' come File di Partenza", -- src\editor\filetree.lua
|
||||
["Updated %d file."] = {"Aggiornato %d file.", "Aggiornati %d file."}, -- src\editor\findreplace.lua
|
||||
["Updating symbol index and settings..."] = "Aggiornamento indice simbili e impostazioni...", -- src\editor\outline.lua
|
||||
["Use %s to close."] = "Utilizza %s per chiudere.", -- src\editor\findreplace.lua
|
||||
["Use '%s' to see full description."] = "Utilizza '%s' per vedere la descrizione completa.", -- src\editor\editor.lua
|
||||
["Use '%s' to show line endings and '%s' to convert them."] = "Utilizza '%s' per vedere la fine della riga e '%s' per convertirli.", -- src\editor\commands.lua
|
||||
["Use 'clear' to clear the shell output and the history."] = "Utilizza 'clear' per pulire l`output e lo storico.", -- src\editor\shellbox.lua
|
||||
@@ -295,11 +312,11 @@ return {
|
||||
["View the outline window"] = "Visualizza la finestra di outline", -- src\editor\menu_view.lua
|
||||
["View the output/console window"] = "Mostra la finestra di output/console", -- src\editor\menu_view.lua
|
||||
["View the project/filetree window"] = "Mostra la finestra di progetto/explorer", -- src\editor\menu_view.lua
|
||||
["View the stack window"] = "Mostra la finestra dello Stack", -- src\editor\menu_view.lua
|
||||
["View the watch window"] = "Mostra la finestra delle Espressioni di Controllo", -- src\editor\menu_view.lua
|
||||
["View the stack window"] = "Mostra la finestra dello Stack", -- src\editor\toolbar.lua, src\editor\menu_view.lua
|
||||
["View the watch window"] = "Mostra la finestra delle Espressioni di Controllo", -- src\editor\toolbar.lua, src\editor\menu_view.lua
|
||||
["Watch"] = "Watch", -- src\editor\debugger.lua
|
||||
["Welcome to the interactive Lua interpreter."] = "Benvenuti nell`interprete interattivo Lua.", -- src\editor\shellbox.lua
|
||||
["Wrap around"] = "Wrap around", -- src\editor\findreplace.lua
|
||||
["Wrap around"] = "Wrap around", -- src\editor\toolbar.lua
|
||||
["You must save the program first."] = "Devi prima salvare il programma", -- src\editor\commands.lua
|
||||
["Zoom In"] = "Zoom In", -- src\editor\menu_view.lua
|
||||
["Zoom Out"] = "Zoom Out", -- src\editor\menu_view.lua
|
||||
|
||||
@@ -1,29 +1,24 @@
|
||||
---
|
||||
-- @author Evandro Costa <evandro.co>
|
||||
-- @date 26/12/2014
|
||||
return {
|
||||
[0] = function(c) return c == 1 and 1 or 2 end, -- plural
|
||||
["%d instance"] = {"%d ocorrência", "%d ocorrências"}, -- src\editor\findreplace.lua
|
||||
["%s event failed: %s"] = "Evento %s falhou: %s", -- src\editor\package.lua
|
||||
["%s%% loaded..."] = nil, -- src\editor\commands.lua
|
||||
["&About"] = "Sobre", -- src\editor\menu_help.lua
|
||||
["&Add Watch"] = "&Adicionar observador", -- src\editor\debugger.lua
|
||||
["&Break"] = "Interromper", -- src\editor\menu_project.lua
|
||||
["&Close Page"] = "Fe&char guia", -- src\editor\gui.lua, src\editor\menu_file.lua
|
||||
["&Community"] = "&Comunidade", -- src\editor\menu_help.lua
|
||||
["&Compile"] = "&Compilar", -- src\editor\menu_project.lua
|
||||
["&Copy Value"] = nil, -- src\editor\debugger.lua
|
||||
["&Copy"] = "&Copiar", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["&Default Layout"] = "Re&definir painéis", -- src\editor\menu_view.lua
|
||||
["&Delete Watch"] = "Remover observa&dor", -- src\editor\debugger.lua
|
||||
["&Delete"] = "Apagar", -- src\editor\filetree.lua
|
||||
["&Documentation"] = "&Documentação", -- src\editor\menu_help.lua
|
||||
["&Down"] = "&Descendente", -- src\editor\findreplace.lua
|
||||
["&Edit Project Directory"] = "&Editar pasta do projeto", -- src\editor\filetree.lua
|
||||
["&Edit Value"] = "&Editar valor", -- src\editor\debugger.lua
|
||||
["&Edit Watch"] = "&Editar observador", -- src\editor\debugger.lua
|
||||
["&Edit"] = "&Editar", -- src\editor\menu_edit.lua
|
||||
["&File"] = "Arquivo", -- src\editor\menu_file.lua
|
||||
["&Find All"] = "Localizar tudo", -- src\editor\findreplace.lua
|
||||
["&Find Next"] = "Localizar próxima", -- src\editor\findreplace.lua
|
||||
["&Find"] = "Localizar", -- src\editor\menu_search.lua
|
||||
["&Fold/Unfold All"] = "Expandir/Recolher tudo", -- src\editor\menu_edit.lua
|
||||
["&Frequently Asked Questions"] = "Perguntas &frequentes", -- src\editor\menu_help.lua
|
||||
@@ -38,8 +33,7 @@ return {
|
||||
["&Project"] = "&Projeto", -- src\editor\menu_project.lua
|
||||
["&Redo"] = "&Refazer", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["&Rename"] = "&Renomear", -- src\editor\filetree.lua
|
||||
["&Replace All"] = "Substitui&r tudo", -- src\editor\findreplace.lua
|
||||
["&Replace"] = "Substitui&r", -- src\editor\findreplace.lua, src\editor\menu_search.lua
|
||||
["&Replace"] = "Substitui&r", -- src\editor\menu_search.lua
|
||||
["&Run"] = "Executa&r", -- src\editor\menu_project.lua
|
||||
["&Save"] = "&Salvar", -- src\editor\gui.lua, src\editor\menu_file.lua
|
||||
["&Search"] = "Localizar", -- src\editor\menu_search.lua
|
||||
@@ -47,14 +41,11 @@ return {
|
||||
["&Stack Window"] = "Pilha de execução", -- src\editor\menu_view.lua
|
||||
["&Start Debugger Server"] = "Iniciar &servidor de depuração", -- src\editor\menu_project.lua
|
||||
["&Status Bar"] = "Barra de &status", -- src\editor\menu_view.lua
|
||||
["&Subdirectories"] = "&Subpastas", -- src\editor\findreplace.lua
|
||||
["&Tool Bar"] = "Barra de ferramen&tas", -- src\editor\menu_view.lua
|
||||
["&Tutorials"] = "&Tutoriais", -- src\editor\menu_help.lua
|
||||
["&Undo"] = "Desfazer", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["&Up"] = "Ascendente", -- src\editor\findreplace.lua
|
||||
["&View"] = "Exibir", -- src\editor\menu_view.lua
|
||||
["&Watch Window"] = "Observador", -- src\editor\menu_view.lua
|
||||
[".bak on replace"] = ".bak ao substituir", -- src\editor\findreplace.lua
|
||||
["About %s"] = "Sobre %s", -- src\editor\menu_help.lua
|
||||
["Add To Scratchpad"] = "Adicionar ao rascunho", -- src\editor\editor.lua
|
||||
["Add Watch Expression"] = "Adicionar observador", -- src\editor\editor.lua
|
||||
@@ -64,25 +55,27 @@ return {
|
||||
["Analyze"] = "Analisar", -- src\editor\inspect.lua
|
||||
["Auto Complete Identifiers"] = "Autocompletar identificadores", -- src\editor\menu_edit.lua
|
||||
["Auto complete while typing"] = "Autocompletar ao digitar", -- src\editor\menu_edit.lua
|
||||
["Binary file is shown as read-only as it is only partially loaded."] = nil, -- src\editor\commands.lua
|
||||
["Bookmark"] = "Marcador", -- src\editor\menu_edit.lua
|
||||
["Break execution at the next executed line of code"] = "Interromper execução na próxima linha de código", -- src\editor\menu_project.lua
|
||||
["Break execution at the next executed line of code"] = "Interromper execução na próxima linha de código", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["C&lear Output Window"] = "&Limpar janela de saída", -- src\editor\gui.lua, src\editor\menu_project.lua
|
||||
["C&omment/Uncomment"] = "C&omentar/Descomentar", -- src\editor\menu_edit.lua
|
||||
["Can't debug the script in the active editor window."] = "Impossível de depurar o script na janela ativa do editor.", -- src\editor\debugger.lua
|
||||
["Can't evaluate the expression while the application is running."] = "Impossível executar a expressão enquanto a aplicação estiver em execução.", -- src\editor\debugger.lua
|
||||
["Can't find file '%s' in the current project to activate for debugging. Update the project or open the file in the editor before debugging."] = "Impossível localizar o arquivo '%s' no projeto atual para iniciar a depuração. Atualize o projeto ou abra o arquivo no editor antes de depurar.", -- src\editor\debugger.lua
|
||||
["Can't open file '%s': %s"] = "Impossível abrir o arquivo '%s': %s", -- src\editor\singleinstance.lua
|
||||
["Can't open file '%s': %s"] = "Impossível abrir o arquivo '%s': %s", -- src\editor\findreplace.lua, src\editor\singleinstance.lua, src\editor\inspect.lua, src\editor\outline.lua
|
||||
["Can't process auto-recovery record; invalid format: %s."] = "Impossível de processar registro de autorrecuperação; formato inválido: %s.", -- src\editor\commands.lua
|
||||
["Can't replace in read-only text."] = nil, -- src\editor\findreplace.lua
|
||||
["Can't run the entry point script ('%s')."] = "Impossível de executar o ponto de entrada do script ('%s').", -- src\editor\debugger.lua
|
||||
["Can't start debugger server at %s:%d: %s."] = "Impossível de iniciar o sevidor de depuração em %s:%d: %s.", -- src\editor\debugger.lua
|
||||
["Can't start debugging for '%s'."] = nil, -- src\editor\debugger.lua
|
||||
["Can't start debugging session due to internal error '%s'."] = "Impossível iniciar sessão de depuração devido ao erro interno '%s'.", -- src\editor\debugger.lua
|
||||
["Can't start debugging without an opened file or with the current file not being saved ('%s')."] = "Impossível iniciar depuração sem abrir um arquivo ou se o arquivo atual não foi salvo ainda ('%s').", -- src\editor\debugger.lua
|
||||
["Can't stop debugger server as it is not started."] = "Impossível interromper servidor de depuração se ele não foi iniciado.", -- src\editor\debugger.lua
|
||||
["Cancel"] = "Cancelar", -- src\editor\findreplace.lua
|
||||
["Cancelled by the user."] = "Cancelado pelo usuário", -- src\editor\findreplace.lua
|
||||
["Choose a project directory"] = "Selecionar pasta do projeto", -- src\editor\findreplace.lua, src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Choose..."] = "Selecionar...", -- src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Clear Items"] = "Limpar itens", -- src\editor\menu_file.lua
|
||||
["Choose a directory to map"] = nil, -- src\editor\filetree.lua
|
||||
["Choose a project directory"] = "Selecionar pasta do projeto", -- src\editor\toolbar.lua, src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Choose a search directory"] = nil, -- src\editor\findreplace.lua
|
||||
["Choose..."] = "Selecionar...", -- src\editor\findreplace.lua, src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Clear Items"] = "Limpar itens", -- src\editor\findreplace.lua, src\editor\menu_file.lua
|
||||
["Clear items from this list"] = "Limpar itens desta lista", -- src\editor\menu_file.lua
|
||||
["Clear the output window before compiling or debugging"] = "Limpar janela de saída antes de compilar ou depurar", -- src\editor\menu_project.lua
|
||||
["Close &Other Pages"] = "Fechar &outras guias", -- src\editor\gui.lua
|
||||
@@ -103,7 +96,7 @@ return {
|
||||
["Copy selected text to clipboard"] = "Copiar texto selecionado para a área de transfêrencia", -- src\editor\menu_edit.lua
|
||||
["Correct &Indentation"] = "Corr&igir recuo", -- src\editor\menu_edit.lua
|
||||
["Couldn't activate file '%s' for debugging; continuing without it."] = "Impossível ativar o arquivo '%s' para a depuração; continuando sem ele.", -- src\editor\debugger.lua
|
||||
["Create an empty document"] = "Criar um documento em branco", -- src\editor\menu_file.lua
|
||||
["Create an empty document"] = "Criar um documento em branco", -- src\editor\toolbar.lua, src\editor\menu_file.lua
|
||||
["Cu&t"] = "Recor&tar", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["Cut selected text to clipboard"] = "Recortar texto selecionado para a área de transfêrencia", -- src\editor\menu_edit.lua
|
||||
["Debugger server started at %s:%d."] = "Servidor de depuração iniciado em %s:%d.", -- src\editor\debugger.lua
|
||||
@@ -112,12 +105,13 @@ return {
|
||||
["Debugging session started in '%s'."] = "Sessão de depuração iniciada em '%s'.", -- src\editor\debugger.lua
|
||||
["Debugging suspended at '%s:%s' (couldn't activate the file)."] = "Depuração suspendida em '%s:%s' (impossível ativar o arquivo).", -- src\editor\debugger.lua
|
||||
["Detach &Process"] = "Separar &processo", -- src\editor\menu_project.lua
|
||||
["Directory"] = "Pasta", -- src\editor\findreplace.lua
|
||||
["Disable Indexing For '%s'"] = nil, -- src\editor\outline.lua
|
||||
["Do you want to delete '%s'?"] = "Deseja mesmo apagar '%s'?", -- src\editor\filetree.lua
|
||||
["Do you want to overwrite it?"] = "Deseja mesmo sobrescrevê-lo?", -- src\editor\commands.lua
|
||||
["Do you want to reload it?"] = "Deseja mesmo atualizá-lo?", -- src\editor\editor.lua
|
||||
["Do you want to save the changes to '%s'?"] = "Deseja salvar as alterações em '%s'?", -- src\editor\commands.lua
|
||||
["E&xit"] = "Sair", -- src\editor\menu_file.lua
|
||||
["Enable Indexing"] = nil, -- src\editor\outline.lua
|
||||
["Enter Lua code and press Enter to run it."] = "Digite o código Lua e pressione Enter para executá-lo.", -- src\editor\shellbox.lua
|
||||
["Enter command line parameters (use Cancel to clear)"] = "Digite os parâmetros da linha de comandos (use Cancelar para limpar)", -- src\editor\menu_project.lua
|
||||
["Enter replacement text"] = "Digite o texto para substituir", -- src\editor\editor.lua
|
||||
@@ -128,31 +122,30 @@ return {
|
||||
["Error"] = "Erro", -- src\editor\commands.lua
|
||||
["Evaluate In Console"] = "Executar no console", -- src\editor\editor.lua
|
||||
["Execute the current project/file and keep updating the code to see immediate results"] = "Executar o projeto/arquivo atual, mantendo o código atualizado para ver os resultados em tempo real", -- src\editor\menu_project.lua
|
||||
["Execute the current project/file"] = "Executar o projeto/arquivo atual", -- src\editor\menu_project.lua
|
||||
["Execute the current project/file"] = "Executar o projeto/arquivo atual", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Execution error"] = "Erro na execução", -- src\editor\debugger.lua
|
||||
["Exit program"] = "Sair do programa", -- src\editor\menu_file.lua
|
||||
["File '%s' has been modified on disk."] = "Arquivo '%s' foi alterado no disco.", -- src\editor\editor.lua
|
||||
["File '%s' has more recent timestamp than restored '%s'; please review before saving."] = "Arquivo '%s' possui uma data mais recente do que o restaurado '%s'; verifique antes de salvar.", -- src\editor\commands.lua
|
||||
["File '%s' is missing and can't be recovered."] = "Arquivo '%s' está faltando e não pode ser restaurado.", -- src\editor\commands.lua
|
||||
["File '%s' no longer exists."] = "Arquivo '%s' não existe mais.", -- src\editor\menu_file.lua, src\editor\editor.lua
|
||||
["File Type"] = "Tipo de arquivo", -- src\editor\findreplace.lua
|
||||
["File already exists."] = "Arquivo já existe", -- src\editor\commands.lua
|
||||
["File history"] = "Histórico do arquivo", -- src\editor\menu_file.lua
|
||||
["Find &In Files"] = "Local&izar em arquivos", -- src\editor\menu_search.lua
|
||||
["Find &Next"] = "Localizar próximo", -- src\editor\menu_search.lua
|
||||
["Find &Previous"] = "Localizar anterior", -- src\editor\menu_search.lua
|
||||
["Find in files"] = "Localizar em arquivos", -- src\editor\findreplace.lua
|
||||
["Find and insert library function"] = "Localizar e inserir função de biblioteca", -- src\editor\menu_search.lua
|
||||
["Find and replace text in files"] = "Localizar e substituir texto em arquivos", -- src\editor\menu_search.lua
|
||||
["Find and replace text"] = "Localizar e substituir texto", -- src\editor\menu_search.lua
|
||||
["Find and replace text"] = "Localizar e substituir texto", -- src\editor\toolbar.lua, src\editor\menu_search.lua
|
||||
["Find in files"] = "Localizar em arquivos", -- src\editor\toolbar.lua
|
||||
["Find text in files"] = "Localizar texto em arquivos", -- src\editor\menu_search.lua
|
||||
["Find text"] = "Localizar texto", -- src\editor\menu_search.lua
|
||||
["Find text"] = "Localizar texto", -- src\editor\toolbar.lua, src\editor\menu_search.lua
|
||||
["Find the earlier text occurence"] = "Localizar a ocorrência anterior do texto", -- src\editor\menu_search.lua
|
||||
["Find the next text occurrence"] = "Localizar a ocorrência posterior do texto", -- src\editor\menu_search.lua
|
||||
["Find"] = "Localizar", -- src\editor\findreplace.lua
|
||||
["Find"] = "Localizar", -- src\editor\toolbar.lua
|
||||
["Fold or unfold all code folds"] = "Expandir ou recolher todos os blocos do código", -- src\editor\menu_edit.lua
|
||||
["Found %d instance."] = {}, -- src\editor\findreplace.lua
|
||||
["Found auto-recovery record and restored saved session."] = "Registro de autorrecuperação encontrado e sessão restaurada.", -- src\editor\commands.lua
|
||||
["Found"] = "Encontrado", -- src\editor\findreplace.lua
|
||||
["Full &Screen"] = "Tela inteira", -- src\editor\menu_view.lua
|
||||
["Go To Definition"] = "Ir para a definição", -- src\editor\editor.lua
|
||||
["Go To File..."] = "Ir para o arquivo...", -- src\editor\menu_search.lua
|
||||
@@ -165,24 +158,26 @@ return {
|
||||
["Go to symbol"] = "Ir para o símbolo", -- src\editor\menu_search.lua
|
||||
["Hide '.%s' Files"] = "Ocultar arquivos '.%s'", -- src\editor\filetree.lua
|
||||
["INS"] = "INS", -- src\editor\editor.lua
|
||||
["Ignore and don't index symbols from files in the selected directory"] = nil, -- src\editor\outline.lua
|
||||
["Ignored error in debugger initialization code: %s."] = "Erro ignorado no código de inicialização do depurador: %s.", -- src\editor\debugger.lua
|
||||
["In Files"] = "Em arquivos", -- src\editor\findreplace.lua
|
||||
["Indexing %d files: '%s'..."] = nil, -- src\editor\outline.lua
|
||||
["Indexing completed."] = nil, -- src\editor\outline.lua
|
||||
["Insert Library Function..."] = "Inserir função de biblioteca...", -- src\editor\menu_search.lua
|
||||
["Known Files"] = "Arquivos conhecidos", -- src\editor\commands.lua
|
||||
["Ln: %d"] = "Ln: %d", -- src\editor\editor.lua
|
||||
["Local console"] = "Console local", -- src\editor\gui.lua, src\editor\shellbox.lua
|
||||
["Lua &Interpreter"] = "&Interpretador Lua", -- src\editor\menu_project.lua
|
||||
["Map Directory..."] = nil, -- src\editor\filetree.lua
|
||||
["Mapped remote request for '%s' to '%s'."] = "Solicitação remota '%s' mapeada para '%s'.", -- src\editor\debugger.lua
|
||||
["Match case"] = "Diferenciar maiúsc/minúsc", -- src\editor\findreplace.lua
|
||||
["Match whole word"] = "Somente palavras inteiras", -- src\editor\findreplace.lua
|
||||
["Match case"] = "Diferenciar maiúsc/minúsc", -- src\editor\toolbar.lua
|
||||
["Match whole word"] = "Somente palavras inteiras", -- src\editor\toolbar.lua
|
||||
["Mixed end-of-line encodings detected."] = "Multíplas codificações de fim-de-linha encontradas.", -- src\editor\commands.lua
|
||||
["Navigate"] = "Navegar", -- src\editor\menu_search.lua
|
||||
["New &File"] = "Novo arquivo", -- src\editor\filetree.lua
|
||||
["OVR"] = "OVR", -- src\editor\editor.lua
|
||||
["Open With Default Program"] = "Abrir com o programa padrão", -- src\editor\filetree.lua
|
||||
["Open an existing document"] = "Abrir um documento existente", -- src\editor\menu_file.lua
|
||||
["Open an existing document"] = "Abrir um documento existente", -- src\editor\toolbar.lua, src\editor\menu_file.lua
|
||||
["Open file"] = "Abrir arquivo", -- src\editor\commands.lua
|
||||
["Options"] = "Opções", -- src\editor\findreplace.lua
|
||||
["Outline Window"] = "Saída", -- src\editor\menu_view.lua
|
||||
["Outline"] = "Definições", -- src\editor\outline.lua
|
||||
["Output (running)"] = "Saída (executando)", -- src\editor\debugger.lua, src\editor\output.lua
|
||||
@@ -204,50 +199,59 @@ return {
|
||||
["Project"] = "Projeto", -- src\editor\filetree.lua
|
||||
["Project/&FileTree Window"] = "Projeto/Hierarquia de arquivos", -- src\editor\menu_view.lua
|
||||
["Provide command line parameters"] = "Informar os parâmetros da linha de comandos", -- src\editor\menu_project.lua
|
||||
["Queued %d files to index."] = nil, -- src\editor\menu_search.lua
|
||||
["R/O"] = "R/O", -- src\editor\editor.lua
|
||||
["R/W"] = "R/W", -- src\editor\editor.lua
|
||||
["Re&place In Files"] = "Substituir em arquivos", -- src\editor\menu_search.lua
|
||||
["Re-indent selected lines"] = "Inserir recuos nas linhas selecionadas", -- src\editor\menu_edit.lua
|
||||
["Reached end of text and wrapped around."] = nil, -- src\editor\findreplace.lua
|
||||
["Recent &Projects"] = "&Projetos recentes", -- src\editor\menu_file.lua
|
||||
["Recent Files"] = "Arquivos recentes", -- src\editor\menu_file.lua
|
||||
["Redo last edit undone"] = "Refazer última edição desfeita", -- src\editor\menu_edit.lua
|
||||
["Refresh Index"] = nil, -- src\editor\outline.lua
|
||||
["Refresh indexed symbols from files in the selected directory"] = nil, -- src\editor\outline.lua
|
||||
["Refresh"] = "Refrescar", -- src\editor\filetree.lua
|
||||
["Refused a request to start a new debugging session as there is one in progress already."] = "Solicitação de início de uma nova sessão de depuração recusado porque já existe um em progresso.", -- src\editor\debugger.lua
|
||||
["Regular expression"] = "Expressão regular", -- src\editor\findreplace.lua
|
||||
["Regular expression"] = "Expressão regular", -- src\editor\toolbar.lua
|
||||
["Remote console"] = "Console remoto", -- src\editor\shellbox.lua
|
||||
["Rename All Instances"] = "Renomear todas as instâncias", -- src\editor\editor.lua
|
||||
["Replace all"] = "Substituir tudo", -- src\editor\findreplace.lua
|
||||
["Replace All Selections"] = "Substituir todas as seleções", -- src\editor\editor.lua
|
||||
["Replace"] = "Substituir", -- src\editor\findreplace.lua
|
||||
["Replace all"] = "Substituir tudo", -- src\editor\toolbar.lua
|
||||
["Replace next instance"] = nil, -- src\editor\toolbar.lua
|
||||
["Replaced %d instance."] = {}, -- src\editor\findreplace.lua
|
||||
["Replaced an invalid UTF8 character with %s."] = "Caractere UTF8 inválido susbtituído por %s.", -- src\editor\commands.lua
|
||||
["Replaced"] = "Substituído", -- src\editor\findreplace.lua
|
||||
["Replacing"] = "Substituindo", -- src\editor\findreplace.lua
|
||||
["Reset to default layout"] = "Redefinir painéis para o padrão", -- src\editor\menu_view.lua
|
||||
["Run As Scratchpad"] = "Executar como rascunho", -- src\editor\menu_project.lua
|
||||
["Run as Scratchpad"] = "Executar como rascunho", -- src\editor\menu_project.lua
|
||||
["Run To Cursor"] = nil, -- src\editor\menu_project.lua, src\editor\editor.lua
|
||||
["Run as Scratchpad"] = "Executar como rascunho", -- src\editor\toolbar.lua
|
||||
["Run to cursor"] = nil, -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["S&top Debugging"] = "In&terromper depuração", -- src\editor\menu_project.lua
|
||||
["S&top Process"] = "In&terromper processo", -- src\editor\menu_project.lua
|
||||
["Save &As..."] = "S&alvar como...", -- src\editor\gui.lua, src\editor\menu_file.lua
|
||||
["Save A&ll"] = "Sa&lvar tudo", -- src\editor\menu_file.lua
|
||||
["Save Changes?"] = "Salvar alterações?", -- src\editor\commands.lua
|
||||
["Save all open documents"] = "Salvar todos os documentos abertos", -- src\editor\menu_file.lua
|
||||
["Save all open documents"] = "Salvar todos os documentos abertos", -- src\editor\toolbar.lua, src\editor\menu_file.lua
|
||||
["Save file as"] = "Salvar arquivo como", -- src\editor\commands.lua
|
||||
["Save file?"] = "Salvar arquivo?", -- src\editor\commands.lua
|
||||
["Save the current document to a file with a new name"] = "Salvar documento atual para um arquivo com outro nome", -- src\editor\menu_file.lua
|
||||
["Save the current document"] = "Salvar documento atual", -- src\editor\menu_file.lua
|
||||
["Save the current document"] = "Salvar documento atual", -- src\editor\toolbar.lua, src\editor\menu_file.lua
|
||||
["Saved auto-recover at %s."] = "Autorrecuperação salvo às %s.", -- src\editor\commands.lua
|
||||
["Scope"] = "Direção", -- src\editor\findreplace.lua
|
||||
["Scratchpad error"] = "Erro no rascunho", -- src\editor\debugger.lua
|
||||
["Searching for"] = "Localizando por", -- src\editor\findreplace.lua
|
||||
["Search direction"] = nil, -- src\editor\toolbar.lua
|
||||
["Search in subdirectories"] = nil, -- src\editor\toolbar.lua
|
||||
["Searching for '%s'."] = nil, -- src\editor\findreplace.lua
|
||||
["Sel: %d/%d"] = "Sel: %d/%d", -- src\editor\editor.lua
|
||||
["Select &All"] = "Selecion&ar tudo", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["Select all text in the editor"] = "Selecionar todo o texto do editor", -- src\editor\menu_edit.lua
|
||||
["Select And Find Next"] = "Selecionar e localizar próxima", -- src\editor\menu_search.lua
|
||||
["Select And Find Previous"] = "Selecionar e localizar anterior", -- src\editor\menu_search.lua
|
||||
["Select all text in the editor"] = "Selecionar todo o texto do editor", -- src\editor\menu_edit.lua
|
||||
["Select the word under cursor and find its next occurrence"] = "Selecionar palavra no cursor e localizar sua próxima ocorrência", -- src\editor\menu_search.lua
|
||||
["Select the word under cursor and find its previous occurrence"] = "Selecionar palavra no cursor e localizar sua ocorrência anterior", -- src\editor\menu_search.lua
|
||||
["Set As Start File"] = nil, -- src\editor\filetree.lua
|
||||
["Set From Current File"] = "Alterar para o arquivo atual", -- src\editor\menu_project.lua
|
||||
["Set project directory from current file"] = "Alterar pasta do projeto para a pasta do arquivo atual", -- src\editor\menu_project.lua
|
||||
["Set To Project Directory"] = nil, -- src\editor\findreplace.lua
|
||||
["Set project directory from current file"] = "Alterar pasta do projeto para a pasta do arquivo atual", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Set search directory"] = nil, -- src\editor\toolbar.lua
|
||||
["Set the interpreter to be used"] = "Alterar interpretador a ser utilizado", -- src\editor\menu_project.lua
|
||||
["Set the project directory to be used"] = "Alterar pasta do projeto a ser utilizado", -- src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Settings: System"] = "Opções: Sistema", -- src\editor\menu_edit.lua
|
||||
@@ -257,40 +261,50 @@ return {
|
||||
["Show Hidden Files"] = "Exibir arquivos ocultos", -- src\editor\filetree.lua
|
||||
["Show Location"] = "Exibir pasta no sistema", -- src\editor\gui.lua, src\editor\filetree.lua
|
||||
["Show all files"] = "Exibir todos os arquivos", -- src\editor\filetree.lua
|
||||
["Show context"] = nil, -- src\editor\toolbar.lua
|
||||
["Show files previously hidden"] = "Exibir arquivos anteriormente ocultos", -- src\editor\filetree.lua
|
||||
["Show multiple result windows"] = nil, -- src\editor\toolbar.lua
|
||||
["Show tooltip for current position; place cursor after opening bracket of function"] = "Exibir dica para a posição atual; posicione o cursor após abrir o parênteses da função", -- src\editor\menu_edit.lua
|
||||
["Show/Hide the status bar"] = "Exibir/Ocultar a barra de status", -- src\editor\menu_view.lua
|
||||
["Show/Hide the toolbar"] = "Exibir/Ocultar a barra de ferramentas", -- src\editor\menu_view.lua
|
||||
["Sort By Name"] = nil, -- src\editor\outline.lua
|
||||
["Sort selected lines"] = "Ordenar linhas selecionadas", -- src\editor\menu_edit.lua
|
||||
["Source"] = "Código", -- src\editor\menu_edit.lua
|
||||
["Stack"] = "Pilha de execução", -- src\editor\debugger.lua
|
||||
["Start &Debugging"] = "Iniciar &depuração", -- src\editor\menu_project.lua
|
||||
["Start or continue debugging"] = "Iniciar ou continuar depuração", -- src\editor\menu_project.lua
|
||||
["Start or continue debugging"] = "Iniciar ou continuar depuração", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Step &Into"] = "Passar para dentro", -- src\editor\menu_project.lua
|
||||
["Step &Over"] = "Passar s&obre", -- src\editor\menu_project.lua
|
||||
["Step O&ut"] = "Passar para fora", -- src\editor\menu_project.lua
|
||||
["Step into"] = "Passar para dentro", -- src\editor\menu_project.lua
|
||||
["Step out of the current function"] = "Passar para fora da função atual", -- src\editor\menu_project.lua
|
||||
["Step over"] = "Passar para fora", -- src\editor\menu_project.lua
|
||||
["Stop debugging and continue running the process"] = "Interromper depuração e continuar executando o processo", -- src\editor\menu_project.lua
|
||||
["Stop the currently running process"] = "Interromper o processo atual em execução", -- src\editor\menu_project.lua
|
||||
["Step into"] = "Passar para dentro", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Step out of the current function"] = "Passar para fora da função atual", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Step over"] = "Passar para fora", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Stop debugging and continue running the process"] = "Interromper depuração e continuar executando o processo", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Stop the currently running process"] = "Interromper o processo atual em execução", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Switch to or from full screen mode"] = "Entrar/Sair do modo tela inteira", -- src\editor\menu_view.lua
|
||||
["Symbol Index"] = nil, -- src\editor\outline.lua
|
||||
["Text not found."] = "Texto não encontrado.", -- src\editor\findreplace.lua
|
||||
["The API file must be located in a subdirectory of the API directory."] = "O arquivo de API deve estar localizado em uma subpasta da pasta de API", -- src\editor\autocomplete.lua
|
||||
["Toggle Bookmark"] = "Alternar marcador", -- src\editor\menu_edit.lua
|
||||
["Toggle Break&point"] = "Alternar &ponto de interrupção", -- src\editor\menu_project.lua
|
||||
["Toggle bookmark"] = "Alternar marcador", -- src\editor\menu_edit.lua
|
||||
["Toggle breakpoint"] = "Alternar ponto de interrupção", -- src\editor\menu_project.lua
|
||||
["Toggle bookmark"] = "Alternar marcador", -- src\editor\toolbar.lua, src\editor\menu_edit.lua
|
||||
["Toggle breakpoint"] = "Alternar ponto de interrupção", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Tr&ace"] = "R&astrear", -- src\editor\menu_project.lua
|
||||
["Trace execution showing each executed line"] = "Rastrear execução exibindo cada linha de código executada", -- src\editor\menu_project.lua
|
||||
["Unable to create directory '%s'."] = "Impossível criar pasta '%s'.", -- src\editor\filetree.lua
|
||||
["Unable to create file '%s'."] = "Impossível criar arquivo '%s'.", -- src\editor\filetree.lua
|
||||
["Unable to delete directory '%s': %s"] = "Impossível apagar a pasta '%s': %s", -- src\editor\filetree.lua
|
||||
["Unable to delete file '%s': %s"] = nil, -- src\editor\filetree.lua
|
||||
["Unable to load file '%s'."] = "Impossível carregar o arquivo '%s'.", -- src\editor\commands.lua
|
||||
["Unable to rename file '%s'."] = "Impossível renomear o arquivo '%s'.", -- src\editor\filetree.lua
|
||||
["Unable to save file '%s': %s"] = "Impossível salvar o arquivo '%s': %s", -- src\editor\commands.lua
|
||||
["Unable to stop program (pid: %d), code %d."] = "Impossível de interromper programa (pid: %d), código %d.", -- src\editor\debugger.lua
|
||||
["Undo last edit"] = "Refazer última edição", -- src\editor\menu_edit.lua
|
||||
["Unmap Directory"] = nil, -- src\editor\filetree.lua
|
||||
["Unset '%s' As Start File"] = nil, -- src\editor\filetree.lua
|
||||
["Updated %d file."] = {}, -- src\editor\findreplace.lua
|
||||
["Updating symbol index and settings..."] = nil, -- src\editor\outline.lua
|
||||
["Use %s to close."] = nil, -- src\editor\findreplace.lua
|
||||
["Use '%s' to see full description."] = "Use '%s' para ver a descrição completa.", -- src\editor\editor.lua
|
||||
["Use '%s' to show line endings and '%s' to convert them."] = "Use '%s' para exibir os finais de linha e '%s' para convertê-los.", -- src\editor\commands.lua
|
||||
["Use 'clear' to clear the shell output and the history."] = "Use 'clear' para limpar a saída e o histórico.", -- src\editor\shellbox.lua
|
||||
@@ -298,11 +312,11 @@ return {
|
||||
["View the outline window"] = "Exibir a janela de definições", -- src\editor\menu_view.lua
|
||||
["View the output/console window"] = "Exibir a janela de saída/console", -- src\editor\menu_view.lua
|
||||
["View the project/filetree window"] = "Exibir janela do projeto/hierarquia de arquivos", -- src\editor\menu_view.lua
|
||||
["View the stack window"] = "Exibir janela da pilha de execução", -- src\editor\menu_view.lua
|
||||
["View the watch window"] = "Exibir janela do observador", -- src\editor\menu_view.lua
|
||||
["View the stack window"] = "Exibir janela da pilha de execução", -- src\editor\toolbar.lua, src\editor\menu_view.lua
|
||||
["View the watch window"] = "Exibir janela do observador", -- src\editor\toolbar.lua, src\editor\menu_view.lua
|
||||
["Watch"] = "Observador", -- src\editor\debugger.lua
|
||||
["Welcome to the interactive Lua interpreter."] = "Bem-vindo ao interpretador do Lua.", -- src\editor\shellbox.lua
|
||||
["Wrap around"] = "Repetir direção", -- src\editor\findreplace.lua
|
||||
["Wrap around"] = "Repetir direção", -- src\editor\toolbar.lua
|
||||
["You must save the program first."] = "Você deve salvar o programa primeiro.", -- src\editor\commands.lua
|
||||
["Zoom In"] = "Ampliar", -- src\editor\menu_view.lua
|
||||
["Zoom Out"] = "Afastar", -- src\editor\menu_view.lua
|
||||
|
||||
119
cfg/i18n/ru.lua
119
cfg/i18n/ru.lua
@@ -1,26 +1,24 @@
|
||||
return {
|
||||
[0] = function(c) c = (c-9)%100 < 9 and 9 or (c-1)%10 return c == 0 and 1 or c < 4 and 2 or 3 end, -- plural
|
||||
["%d instance"] = {"%d совпадение", "%d совпадения", "%d совпадений"}, -- src\editor\findreplace.lua
|
||||
["%s event failed: %s"] = "%s обработчик события вернул ошибку: %s", -- src\editor\package.lua
|
||||
["%s%% loaded..."] = "%s%% загружено...", -- src\editor\commands.lua
|
||||
["&About"] = "&О программе", -- src\editor\menu_help.lua
|
||||
["&Add Watch"] = "&Добавить выражение", -- src\editor\debugger.lua
|
||||
["&Break"] = "Пр&ервать", -- src\editor\menu_project.lua
|
||||
["&Close Page"] = "&Закрыть", -- src\editor\gui.lua, src\editor\menu_file.lua
|
||||
["&Community"] = nil, -- src\editor\menu_help.lua
|
||||
["&Compile"] = "&Компилировать", -- src\editor\menu_project.lua
|
||||
["&Copy Value"] = "Копировать значение", -- src\editor\debugger.lua
|
||||
["&Copy"] = "&Копировать", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["&Default Layout"] = "Вид по &умолчанию", -- src\editor\menu_view.lua
|
||||
["&Delete Watch"] = "&Удалить выражение", -- src\editor\debugger.lua
|
||||
["&Delete"] = "&Удалить", -- src\editor\filetree.lua
|
||||
["&Documentation"] = "Документация", -- src\editor\menu_help.lua
|
||||
["&Down"] = "Вниз", -- src\editor\findreplace.lua
|
||||
["&Edit Project Directory"] = "&Редактировать папку проекта", -- src\editor\filetree.lua
|
||||
["&Edit Value"] = "&Редактировать значение", -- src\editor\debugger.lua
|
||||
["&Edit Watch"] = "&Редактировать выражение", -- src\editor\debugger.lua
|
||||
["&Edit"] = "&Правка", -- src\editor\menu_edit.lua
|
||||
["&File"] = "&Файл", -- src\editor\menu_file.lua
|
||||
["&Find All"] = "Найти все", -- src\editor\findreplace.lua
|
||||
["&Find Next"] = "Найти далее", -- src\editor\findreplace.lua
|
||||
["&Find"] = "&Найти", -- src\editor\menu_search.lua
|
||||
["&Fold/Unfold All"] = "Св&ернуть/развернуть все", -- src\editor\menu_edit.lua
|
||||
["&Frequently Asked Questions"] = "&Часто задаваемые вопросы", -- src\editor\menu_help.lua
|
||||
@@ -35,8 +33,7 @@ return {
|
||||
["&Project"] = "Пр&оект", -- src\editor\menu_project.lua
|
||||
["&Redo"] = "Верну&ть", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["&Rename"] = "Переименовать", -- src\editor\filetree.lua
|
||||
["&Replace All"] = "Заменить всe", -- src\editor\findreplace.lua
|
||||
["&Replace"] = "За&менить", -- src\editor\findreplace.lua, src\editor\menu_search.lua
|
||||
["&Replace"] = "За&менить", -- src\editor\menu_search.lua
|
||||
["&Run"] = "За&пустить", -- src\editor\menu_project.lua
|
||||
["&Save"] = "&Сохранить", -- src\editor\gui.lua, src\editor\menu_file.lua
|
||||
["&Search"] = "По&иск", -- src\editor\menu_search.lua
|
||||
@@ -44,14 +41,11 @@ return {
|
||||
["&Stack Window"] = "Окно &стека", -- src\editor\menu_view.lua
|
||||
["&Start Debugger Server"] = "Запустить сервер отла&дки", -- src\editor\menu_project.lua
|
||||
["&Status Bar"] = "Панель состояния", -- src\editor\menu_view.lua
|
||||
["&Subdirectories"] = "В папках", -- src\editor\findreplace.lua
|
||||
["&Tool Bar"] = "Панель инструментов", -- src\editor\menu_view.lua
|
||||
["&Tutorials"] = "&Обучающие материалы", -- src\editor\menu_help.lua
|
||||
["&Undo"] = "&Отменить", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["&Up"] = "Вверх", -- src\editor\findreplace.lua
|
||||
["&View"] = "&Вид", -- src\editor\menu_view.lua
|
||||
["&Watch Window"] = "Окно &выражений", -- src\editor\menu_view.lua
|
||||
[".bak on replace"] = ".bak после замены", -- src\editor\findreplace.lua
|
||||
["About %s"] = "О %s", -- src\editor\menu_help.lua
|
||||
["Add To Scratchpad"] = "Добавить в черновик", -- src\editor\editor.lua
|
||||
["Add Watch Expression"] = "Добавить выражение", -- src\editor\editor.lua
|
||||
@@ -61,25 +55,27 @@ return {
|
||||
["Analyze"] = "Анализировать", -- src\editor\inspect.lua
|
||||
["Auto Complete Identifiers"] = "Автодополнение идентификаторов", -- src\editor\menu_edit.lua
|
||||
["Auto complete while typing"] = "Автоматически дополнять идентификаторы при наборе", -- src\editor\menu_edit.lua
|
||||
["Binary file is shown as read-only as it is only partially loaded."] = "Двоичный файл открыт только для чтения, так как загружен частично.", -- src\editor\commands.lua
|
||||
["Bookmark"] = "Закладка", -- src\editor\menu_edit.lua
|
||||
["Break execution at the next executed line of code"] = "Прервать выполнение на следующей строке", -- src\editor\menu_project.lua
|
||||
["Break execution at the next executed line of code"] = "Прервать выполнение на следующей строке", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["C&lear Output Window"] = "Очистка ок&на вывода", -- src\editor\gui.lua, src\editor\menu_project.lua
|
||||
["C&omment/Uncomment"] = "Зако&мментировать/раскомментировать", -- src\editor\menu_edit.lua
|
||||
["Can't evaluate the expression while the application is running."] = "Невозможно вычеслить значение выражения пока приложение выполняется.", -- src\editor\debugger.lua
|
||||
["Can't open file '%s': %s"] = "Ошибка открытия файла '%s': %s", -- src\editor\singleinstance.lua
|
||||
["Can't open file '%s': %s"] = "Ошибка открытия файла '%s': %s", -- src\editor\findreplace.lua, src\editor\singleinstance.lua, src\editor\inspect.lua, src\editor\outline.lua
|
||||
["Can't process auto-recovery record; invalid format: %s."] = "Ошибка обработки записи автоматического восстановления; неверный формат: %s.", -- src\editor\commands.lua
|
||||
["Can't replace in read-only text."] = "Ошибка замены в тексте не доступном для записи.", -- src\editor\findreplace.lua
|
||||
["Can't run the entry point script ('%s')."] = "Ошибка выполнения стартового скрипта ('%s').", -- src\editor\debugger.lua
|
||||
["Can't start debugger server at %s:%d: %s."] = "Невозможно запустить сервер отладки %s:%d: %s", -- src\editor\debugger.lua
|
||||
["Can't start debugging for '%s'."] = "Невозможно начать отладку для '%s'.", -- src\editor\debugger.lua
|
||||
["Can't start debugging session due to internal error '%s'."] = "Невозможно начать отладочную сессию из-за внутренней ошибки '%s'.", -- src\editor\debugger.lua
|
||||
["Can't start debugging without an opened file or with the current file not being saved ('%s')."] = "Невозможно начать отладку без открытого файла или с несохраненным текущим файлом ('%s').", -- src\editor\debugger.lua
|
||||
["Can't stop debugger server as it is not started."] = "Невозможно остановить сервер отладки пока он не запущен", -- src\editor\debugger.lua
|
||||
["Cancel"] = "Отмена", -- src\editor\findreplace.lua
|
||||
["Cancelled by the user."] = "Отменено пользователем.", -- src\editor\findreplace.lua
|
||||
["Choose a directory to map"] = "Выберите папку для добавления в список", -- src\editor\filetree.lua
|
||||
["Choose a project directory"] = "Выберите папку проекта", -- src\editor\findreplace.lua, src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Choose..."] = "Выбрать...", -- src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Clear Items"] = "Очистить список", -- src\editor\menu_file.lua
|
||||
["Choose a project directory"] = "Выберите папку проекта", -- src\editor\toolbar.lua, src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Choose a search directory"] = "Выберите папку поиска", -- src\editor\findreplace.lua
|
||||
["Choose..."] = "Выбрать...", -- src\editor\findreplace.lua, src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Clear Items"] = "Очистить список", -- src\editor\findreplace.lua, src\editor\menu_file.lua
|
||||
["Clear items from this list"] = "Удалить элементы из списка", -- src\editor\menu_file.lua
|
||||
["Clear the output window before compiling or debugging"] = "Очистить окно вывода перед компиляцией или отладкой", -- src\editor\menu_project.lua
|
||||
["Close &Other Pages"] = "Закрыть &остальные вкладки", -- src\editor\gui.lua
|
||||
@@ -100,7 +96,7 @@ return {
|
||||
["Copy selected text to clipboard"] = "Скопировать выделенный текст в буфер обмена", -- src\editor\menu_edit.lua
|
||||
["Correct &Indentation"] = "Откорректировать отступ", -- src\editor\menu_edit.lua
|
||||
["Couldn't activate file '%s' for debugging; continuing without it."] = "Невозможно открыть файл '%s' для отладки; выполнение будет продолжено без него.", -- src\editor\debugger.lua
|
||||
["Create an empty document"] = "Создать новый документ", -- src\editor\menu_file.lua
|
||||
["Create an empty document"] = "Создать новый документ", -- src\editor\toolbar.lua, src\editor\menu_file.lua
|
||||
["Cu&t"] = "Вы&резать", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["Cut selected text to clipboard"] = "Вырезать выделенный текст в буфер обмена", -- src\editor\menu_edit.lua
|
||||
["Debugger server started at %s:%d."] = "Сервер отладки запущен на %s:%d.", -- src\editor\debugger.lua
|
||||
@@ -109,12 +105,13 @@ return {
|
||||
["Debugging session started in '%s'."] = "Отладочная сессия запущена в '%s'.", -- src\editor\debugger.lua
|
||||
["Debugging suspended at '%s:%s' (couldn't activate the file)."] = "Отладка остановлена в '%s:%s' (невозможно активировать файл).", -- src\editor\debugger.lua
|
||||
["Detach &Process"] = "Отсоединить процесс", -- src\editor\menu_project.lua
|
||||
["Directory"] = "Папка", -- src\editor\findreplace.lua
|
||||
["Disable Indexing For '%s'"] = "Запретить индексирование для '%s'", -- src\editor\outline.lua
|
||||
["Do you want to delete '%s'?"] = "Удалить '%s'?", -- src\editor\filetree.lua
|
||||
["Do you want to overwrite it?"] = "Переписать его?", -- src\editor\commands.lua
|
||||
["Do you want to reload it?"] = "Перезагрузить его?", -- src\editor\editor.lua
|
||||
["Do you want to save the changes to '%s'?"] = "Сохранить изменения в '%s'?", -- src\editor\commands.lua
|
||||
["E&xit"] = "Вы&ход", -- src\editor\menu_file.lua
|
||||
["Enable Indexing"] = "Разрешить индекcирование", -- src\editor\outline.lua
|
||||
["Enter Lua code and press Enter to run it."] = "Введите код на Lua и нажмите Enter для выполнения.", -- src\editor\shellbox.lua
|
||||
["Enter command line parameters (use Cancel to clear)"] = "Введите параметры командной строки (Cancel чтобы очистить)", -- src\editor\menu_project.lua
|
||||
["Enter replacement text"] = "Введите текст замены", -- src\editor\editor.lua
|
||||
@@ -125,31 +122,30 @@ return {
|
||||
["Error"] = "Ошибка", -- src\editor\commands.lua
|
||||
["Evaluate In Console"] = "Выполнить в консоли", -- src\editor\editor.lua
|
||||
["Execute the current project/file and keep updating the code to see immediate results"] = "Запустить текущий проект/файл и продолжать вносить изменения в код с немедленным выводом результатов", -- src\editor\menu_project.lua
|
||||
["Execute the current project/file"] = "Запустить текущий проект/файл", -- src\editor\menu_project.lua
|
||||
["Execute the current project/file"] = "Запустить текущий проект/файл", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Execution error"] = "Ошибка выполнения", -- src\editor\debugger.lua
|
||||
["Exit program"] = "Выйти из программы", -- src\editor\menu_file.lua
|
||||
["File '%s' has been modified on disk."] = "Файл '%s' был изменен на диске.", -- src\editor\editor.lua
|
||||
["File '%s' has more recent timestamp than restored '%s'; please review before saving."] = "Файл '%s' имеет более позднее время модификации, чем восстановленный '%s'; пожалуйста просмотрите его перед сохранением.", -- src\editor\commands.lua
|
||||
["File '%s' is missing and can't be recovered."] = "Файл '%s' отсутствует и не может быть восстановлен.", -- src\editor\commands.lua
|
||||
["File '%s' no longer exists."] = "Файл '%s' больше не существует.", -- src\editor\menu_file.lua, src\editor\editor.lua
|
||||
["File Type"] = "Тип файла", -- src\editor\findreplace.lua
|
||||
["File already exists."] = "Файл уже существует.", -- src\editor\commands.lua
|
||||
["File history"] = "История файлов", -- src\editor\menu_file.lua
|
||||
["Find &In Files"] = "Н&айти в файлах", -- src\editor\menu_search.lua
|
||||
["Find &Next"] = "Найти &далее", -- src\editor\menu_search.lua
|
||||
["Find &Previous"] = "Найти &ранее", -- src\editor\menu_search.lua
|
||||
["Find in files"] = "Найти в файлах", -- src\editor\findreplace.lua
|
||||
["Find and insert library function"] = "Найти и вставить библиотечную функцию", -- src\editor\menu_search.lua
|
||||
["Find and replace text in files"] = "Найти и заменить текст в файлах", -- src\editor\menu_search.lua
|
||||
["Find and replace text"] = "Найти и заменить текст", -- src\editor\menu_search.lua
|
||||
["Find and replace text"] = "Найти и заменить текст", -- src\editor\toolbar.lua, src\editor\menu_search.lua
|
||||
["Find in files"] = "Найти в файлах", -- src\editor\toolbar.lua
|
||||
["Find text in files"] = "Найти текст в файлах", -- src\editor\menu_search.lua
|
||||
["Find text"] = "Найти текст", -- src\editor\menu_search.lua
|
||||
["Find text"] = "Найти текст", -- src\editor\toolbar.lua, src\editor\menu_search.lua
|
||||
["Find the earlier text occurence"] = "Найти предыдущее вхождение текста", -- src\editor\menu_search.lua
|
||||
["Find the next text occurrence"] = "Найти следующее вхождение текста", -- src\editor\menu_search.lua
|
||||
["Find"] = "Найти", -- src\editor\findreplace.lua
|
||||
["Find"] = "Найти", -- src\editor\toolbar.lua
|
||||
["Fold or unfold all code folds"] = "Свернуть или развернуть все блоки кода", -- src\editor\menu_edit.lua
|
||||
["Found %d instance."] = {"Найдено %d совпадение.", "Найдено %d совпадения.", "Найдено %d совпадений."}, -- src\editor\findreplace.lua
|
||||
["Found auto-recovery record and restored saved session."] = "Найдена запись авто-восстановления и восстановлена сохраненная сессия.", -- src\editor\commands.lua
|
||||
["Found"] = "Найдено", -- src\editor\findreplace.lua
|
||||
["Full &Screen"] = "Во весь экр&ан", -- src\editor\menu_view.lua
|
||||
["Go To Definition"] = "Перейти к определению", -- src\editor\editor.lua
|
||||
["Go To File..."] = "Перейти к файлу...", -- src\editor\menu_search.lua
|
||||
@@ -162,8 +158,10 @@ return {
|
||||
["Go to symbol"] = "Перейти к символу", -- src\editor\menu_search.lua
|
||||
["Hide '.%s' Files"] = "Спрятать '.%s' файлы", -- src\editor\filetree.lua
|
||||
["INS"] = "ВСТ", -- src\editor\editor.lua
|
||||
["Ignored error in debugger initialization code: %s."] = nil, -- src\editor\debugger.lua
|
||||
["In Files"] = "Установки файлов", -- src\editor\findreplace.lua
|
||||
["Ignore and don't index symbols from files in the selected directory"] = "Игнорировать и не индексировать файлы в выбранной папке", -- src\editor\outline.lua
|
||||
["Ignored error in debugger initialization code: %s."] = "Проигнорирована ошибка в коде инициализации отладчика: %s.", -- src\editor\debugger.lua
|
||||
["Indexing %d files: '%s'..."] = "Индексировано %d: '%s'...", -- src\editor\outline.lua
|
||||
["Indexing completed."] = "Индексирование закончено.", -- src\editor\outline.lua
|
||||
["Insert Library Function..."] = "Вставить библиотечную функцию...", -- src\editor\menu_search.lua
|
||||
["Known Files"] = "Файлы Lua", -- src\editor\commands.lua
|
||||
["Ln: %d"] = "Стр: %d", -- src\editor\editor.lua
|
||||
@@ -171,16 +169,15 @@ return {
|
||||
["Lua &Interpreter"] = "&Интерпретатор Lua", -- src\editor\menu_project.lua
|
||||
["Map Directory..."] = "Добавить папку в список", -- src\editor\filetree.lua
|
||||
["Mapped remote request for '%s' to '%s'."] = "Удаленный запрос для '%s' отображен на '%s'.", -- src\editor\debugger.lua
|
||||
["Match case"] = "Совпадение регистра", -- src\editor\findreplace.lua
|
||||
["Match whole word"] = "Совпадение целого слова", -- src\editor\findreplace.lua
|
||||
["Match case"] = "Совпадение регистра", -- src\editor\toolbar.lua
|
||||
["Match whole word"] = "Совпадение целого слова", -- src\editor\toolbar.lua
|
||||
["Mixed end-of-line encodings detected."] = "Обнаружены смешанные символы конца строки.", -- src\editor\commands.lua
|
||||
["Navigate"] = "Перейти", -- src\editor\menu_search.lua
|
||||
["New &File"] = "Новый файл", -- src\editor\filetree.lua
|
||||
["OVR"] = "ЗАМ", -- src\editor\editor.lua
|
||||
["Open With Default Program"] = "Открыть используя программу по умолчанию", -- src\editor\filetree.lua
|
||||
["Open an existing document"] = "Открыть существующий документ", -- src\editor\menu_file.lua
|
||||
["Open an existing document"] = "Открыть существующий документ", -- src\editor\toolbar.lua, src\editor\menu_file.lua
|
||||
["Open file"] = "Открыть файл", -- src\editor\commands.lua
|
||||
["Options"] = "Установки", -- src\editor\findreplace.lua
|
||||
["Outline Window"] = "Окно структуры", -- src\editor\menu_view.lua
|
||||
["Outline"] = "Структура", -- src\editor\outline.lua
|
||||
["Output (running)"] = "Вывод (запущен)", -- src\editor\debugger.lua, src\editor\output.lua
|
||||
@@ -202,43 +199,47 @@ return {
|
||||
["Project"] = "Проект", -- src\editor\filetree.lua
|
||||
["Project/&FileTree Window"] = "Окно &проекта/списка файлов", -- src\editor\menu_view.lua
|
||||
["Provide command line parameters"] = "Установить параметры командной строки", -- src\editor\menu_project.lua
|
||||
["Queued %d files to index."] = "Помещено %d файлов в очередь на индексирование.", -- src\editor\menu_search.lua
|
||||
["R/O"] = "R/O", -- src\editor\editor.lua
|
||||
["R/W"] = "R/W", -- src\editor\editor.lua
|
||||
["Re&place In Files"] = "Замени&ть в файлах", -- src\editor\menu_search.lua
|
||||
["Re-indent selected lines"] = "Исправить отступ в выделенных строчках", -- src\editor\menu_edit.lua
|
||||
["Reached end of text and wrapped around."] = "Достигнут конец текста и произведен возврат к началу.", -- src\editor\findreplace.lua
|
||||
["Recent &Projects"] = "Недавние &проекты", -- src\editor\menu_file.lua
|
||||
["Recent Files"] = "Недавние файлы", -- src\editor\menu_file.lua
|
||||
["Redo last edit undone"] = "Вернуть последнее отмененное изменение", -- src\editor\menu_edit.lua
|
||||
["Refresh Index"] = "Обновить индекс", -- src\editor\outline.lua
|
||||
["Refresh indexed symbols from files in the selected directory"] = "Обновить индекс символов из файлов в выбранной папке", -- src\editor\outline.lua
|
||||
["Refresh"] = "Oбновление", -- src\editor\filetree.lua
|
||||
["Refused a request to start a new debugging session as there is one in progress already."] = "Отказано в запросе на запуск новой отладочной сессии, поскольку одна сессия уже выполняется.", -- src\editor\debugger.lua
|
||||
["Regular expression"] = "Регулярное выражение", -- src\editor\findreplace.lua
|
||||
["Regular expression"] = "Регулярное выражение", -- src\editor\toolbar.lua
|
||||
["Remote console"] = "Удаленная консоль", -- src\editor\shellbox.lua
|
||||
["Rename All Instances"] = "Переименовать все совпадения", -- src\editor\editor.lua
|
||||
["Replace all"] = "Заменить все", -- src\editor\findreplace.lua
|
||||
["Replace All Selections"] = "Заменить все выделенные фрагменты", -- src\editor\editor.lua
|
||||
["Replace"] = "Заменить", -- src\editor\findreplace.lua
|
||||
["Replace all"] = "Заменить все", -- src\editor\toolbar.lua
|
||||
["Replace next instance"] = "Заменить следующее совпадение", -- src\editor\toolbar.lua
|
||||
["Replaced %d instance."] = {"Заменено %d совпадение.", "Заменено %d совпадения.", "Заменено %d совпадений."}, -- src\editor\findreplace.lua
|
||||
["Replaced an invalid UTF8 character with %s."] = "Некорректный символ UTF8 заменен на %s.", -- src\editor\commands.lua
|
||||
["Replaced"] = "Заменено", -- src\editor\findreplace.lua
|
||||
["Replacing"] = "Замена", -- src\editor\findreplace.lua
|
||||
["Reset to default layout"] = "Установить расположение окон по умолчанию", -- src\editor\menu_view.lua
|
||||
["Run As Scratchpad"] = "Запустить как черновик", -- src\editor\menu_project.lua
|
||||
["Run To Cursor"] = "Выполнить до курсора", -- src\editor\menu_project.lua
|
||||
["Run To Cursor"] = "Выполнить до курсора", -- src\editor\menu_project.lua, src\editor\editor.lua
|
||||
["Run as Scratchpad"] = "Запустить как черновик", -- src\editor\toolbar.lua
|
||||
["Run to cursor"] = "Выполнить до курсора", -- src\editor\menu_project.lua
|
||||
["Run to cursor"] = "Выполнить до курсора", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["S&top Debugging"] = "&Завершить отладку", -- src\editor\menu_project.lua
|
||||
["S&top Process"] = "&Завершить процесс", -- src\editor\menu_project.lua
|
||||
["Save &As..."] = "Сохранить &как...", -- src\editor\gui.lua, src\editor\menu_file.lua
|
||||
["Save A&ll"] = "Сохранить &все", -- src\editor\menu_file.lua
|
||||
["Save Changes?"] = "Сохранить изменения?", -- src\editor\commands.lua
|
||||
["Save all open documents"] = "Сохранить все открытые документы", -- src\editor\menu_file.lua
|
||||
["Save all open documents"] = "Сохранить все открытые документы", -- src\editor\toolbar.lua, src\editor\menu_file.lua
|
||||
["Save file as"] = "Сохранить файл как", -- src\editor\commands.lua
|
||||
["Save file?"] = "Сохранить файл?", -- src\editor\commands.lua
|
||||
["Save the current document to a file with a new name"] = "Сохранить текущий документ в файл под новым именем", -- src\editor\menu_file.lua
|
||||
["Save the current document"] = "Сохранить текущий документ", -- src\editor\menu_file.lua
|
||||
["Save the current document"] = "Сохранить текущий документ", -- src\editor\toolbar.lua, src\editor\menu_file.lua
|
||||
["Saved auto-recover at %s."] = "Сохранено авто-восст в %s.", -- src\editor\commands.lua
|
||||
["Scope"] = "Направление", -- src\editor\findreplace.lua
|
||||
["Scratchpad error"] = "Ошибка в черновике", -- src\editor\debugger.lua
|
||||
["Searching for"] = "Поиск", -- src\editor\findreplace.lua
|
||||
["Search direction"] = "Направление поиска", -- src\editor\toolbar.lua
|
||||
["Search in subdirectories"] = "Поиск во вложенных папках", -- src\editor\toolbar.lua
|
||||
["Searching for '%s'."] = "Искать '%s'.", -- src\editor\findreplace.lua
|
||||
["Sel: %d/%d"] = "Выд: %d/%d", -- src\editor\editor.lua
|
||||
["Select &All"] = "Выделить &все", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["Select And Find Next"] = "Выделить и найти далее", -- src\editor\menu_search.lua
|
||||
@@ -248,7 +249,9 @@ return {
|
||||
["Select the word under cursor and find its previous occurrence"] = "Выделить слово под курсором и найти ранее", -- src\editor\menu_search.lua
|
||||
["Set As Start File"] = "Установить как файл запуска", -- src\editor\filetree.lua
|
||||
["Set From Current File"] = "Установить по текущему файлу", -- src\editor\menu_project.lua
|
||||
["Set project directory from current file"] = "Установить папку проекта по текущему файлу", -- src\editor\menu_project.lua
|
||||
["Set To Project Directory"] = "Установить папку проекта", -- src\editor\findreplace.lua
|
||||
["Set project directory from current file"] = "Установить папку проекта по текущему файлу", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Set search directory"] = "Установить папку поиска", -- src\editor\toolbar.lua
|
||||
["Set the interpreter to be used"] = "Установить используемый интерпретатор", -- src\editor\menu_project.lua
|
||||
["Set the project directory to be used"] = "Установить используемую папку проекта", -- src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Settings: System"] = "Установки: Системы", -- src\editor\menu_edit.lua
|
||||
@@ -258,35 +261,40 @@ return {
|
||||
["Show Hidden Files"] = "Показать спрятанные файлы", -- src\editor\filetree.lua
|
||||
["Show Location"] = "Показать файл в папке", -- src\editor\gui.lua, src\editor\filetree.lua
|
||||
["Show all files"] = "Показать все файлы", -- src\editor\filetree.lua
|
||||
["Show context"] = "Показать контекст", -- src\editor\toolbar.lua
|
||||
["Show files previously hidden"] = "Показать ранее спрятанные файлы", -- src\editor\filetree.lua
|
||||
["Show multiple result windows"] = "Показать результаты поиска в разных окнах", -- src\editor\toolbar.lua
|
||||
["Show tooltip for current position; place cursor after opening bracket of function"] = "Показать подсказку в текущей позиции; переместите курсор в позицию после открывающей скобки функции", -- src\editor\menu_edit.lua
|
||||
["Show/Hide the status bar"] = "Показать/спрятать панель состояния", -- src\editor\menu_view.lua
|
||||
["Show/Hide the toolbar"] = "Показать/спрятать панель инструментов", -- src\editor\menu_view.lua
|
||||
["Sort By Name"] = "Сортировать по имени", -- src\editor\outline.lua
|
||||
["Sort selected lines"] = "Отсортировать выделенные строки", -- src\editor\menu_edit.lua
|
||||
["Source"] = "Исходный код", -- src\editor\menu_edit.lua
|
||||
["Stack"] = "Стек", -- src\editor\debugger.lua
|
||||
["Start &Debugging"] = "Начать &отладку", -- src\editor\menu_project.lua
|
||||
["Start or continue debugging"] = "Начать или продолжить отладку", -- src\editor\menu_project.lua
|
||||
["Start or continue debugging"] = "Начать или продолжить отладку", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Step &Into"] = "&Войти", -- src\editor\menu_project.lua
|
||||
["Step &Over"] = "&Следующая строка", -- src\editor\menu_project.lua
|
||||
["Step O&ut"] = "В&ыйти", -- src\editor\menu_project.lua
|
||||
["Step into"] = "Войти в функцию", -- src\editor\menu_project.lua
|
||||
["Step out of the current function"] = "Выйти из текущей функции", -- src\editor\menu_project.lua
|
||||
["Step over"] = "Перейти на следующую строку", -- src\editor\menu_project.lua
|
||||
["Stop debugging and continue running the process"] = "Завершить отладку и продолжить текущий процесс", -- src\editor\menu_project.lua
|
||||
["Stop the currently running process"] = "Завершить текущий процесс", -- src\editor\menu_project.lua
|
||||
["Step into"] = "Войти в функцию", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Step out of the current function"] = "Выйти из текущей функции", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Step over"] = "Перейти на следующую строку", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Stop debugging and continue running the process"] = "Завершить отладку и продолжить текущий процесс", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Stop the currently running process"] = "Завершить текущий процесс", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Switch to or from full screen mode"] = "Переключить полноэкранный режим", -- src\editor\menu_view.lua
|
||||
["Symbol Index"] = "Индекс символов", -- src\editor\outline.lua
|
||||
["Text not found."] = "Текст не найден.", -- src\editor\findreplace.lua
|
||||
["The API file must be located in a subdirectory of the API directory."] = "Файл определений API должен быть расположен внутри папки API.", -- src\editor\autocomplete.lua
|
||||
["Toggle Bookmark"] = "Установить/Снять закладку", -- src\editor\menu_edit.lua
|
||||
["Toggle Break&point"] = "&Точка останова", -- src\editor\menu_project.lua
|
||||
["Toggle bookmark"] = "Установить/Снять закладку", -- src\editor\menu_edit.lua
|
||||
["Toggle breakpoint"] = "Переключить точку останова", -- src\editor\menu_project.lua
|
||||
["Toggle bookmark"] = "Установить/Снять закладку", -- src\editor\toolbar.lua, src\editor\menu_edit.lua
|
||||
["Toggle breakpoint"] = "Переключить точку останова", -- src\editor\toolbar.lua, src\editor\menu_project.lua
|
||||
["Tr&ace"] = "Т&рассировка", -- src\editor\menu_project.lua
|
||||
["Trace execution showing each executed line"] = "Отслеживать выполнение, показывая каждую выполненную строку", -- src\editor\menu_project.lua
|
||||
["Unable to create directory '%s'."] = "Ошибка создания папки '%s'.", -- src\editor\filetree.lua
|
||||
["Unable to create file '%s'."] = "Ошибка создания файла '%s'.", -- src\editor\filetree.lua
|
||||
["Unable to delete directory '%s': %s"] = "Ошибка удаления директории '%s': %s", -- src\editor\filetree.lua
|
||||
["Unable to delete directory '%s': %s"] = "Ошибка удаления папки '%s': %s", -- src\editor\filetree.lua
|
||||
["Unable to delete file '%s': %s"] = "Ошибка удаления файла '%s': %s", -- src\editor\filetree.lua
|
||||
["Unable to load file '%s'."] = "Ошибка загрузки файла '%s'.", -- src\editor\commands.lua
|
||||
["Unable to rename file '%s'."] = "Ошибка переименования файла '%s'.", -- src\editor\filetree.lua
|
||||
["Unable to save file '%s': %s"] = "Ошибка сохранения файла '%s': %s", -- src\editor\commands.lua
|
||||
@@ -294,6 +302,9 @@ return {
|
||||
["Undo last edit"] = "Отменить последнее действие", -- src\editor\menu_edit.lua
|
||||
["Unmap Directory"] = "Убрать папку из списка", -- src\editor\filetree.lua
|
||||
["Unset '%s' As Start File"] = "Отменить '%s' как файл запуска", -- src\editor\filetree.lua
|
||||
["Updated %d file."] = {"Обновлен %d файл.", "Обновлено %d файла.", "Обновлено %d файлов."}, -- src\editor\findreplace.lua
|
||||
["Updating symbol index and settings..."] = "Обновляется индекс символов и установки...", -- src\editor\outline.lua
|
||||
["Use %s to close."] = "Используйте %s для закрытия.", -- src\editor\findreplace.lua
|
||||
["Use '%s' to see full description."] = "Используйте '%s' для полного описания.", -- src\editor\editor.lua
|
||||
["Use '%s' to show line endings and '%s' to convert them."] = "Используйте '%s' для отображения символов конца строки и '%s' для их преобразования.", -- src\editor\commands.lua
|
||||
["Use 'clear' to clear the shell output and the history."] = "Используйте команду 'clear' для очистки содержимого окна и истории.", -- src\editor\shellbox.lua
|
||||
@@ -301,11 +312,11 @@ return {
|
||||
["View the outline window"] = "Показать окно структуры", -- src\editor\menu_view.lua
|
||||
["View the output/console window"] = "Показать окно вывода/консоли", -- src\editor\menu_view.lua
|
||||
["View the project/filetree window"] = "Показать окно проекта/списка файлов", -- src\editor\menu_view.lua
|
||||
["View the stack window"] = "Показать окно стека", -- src\editor\menu_view.lua
|
||||
["View the watch window"] = "Показать окно выражений", -- src\editor\menu_view.lua
|
||||
["View the stack window"] = "Показать окно стека", -- src\editor\toolbar.lua, src\editor\menu_view.lua
|
||||
["View the watch window"] = "Показать окно выражений", -- src\editor\toolbar.lua, src\editor\menu_view.lua
|
||||
["Watch"] = "Выражение", -- src\editor\debugger.lua
|
||||
["Welcome to the interactive Lua interpreter."] = "Добро пожаловать в интерактивный интерпретатор Lua.", -- src\editor\shellbox.lua
|
||||
["Wrap around"] = "Продолжить сначала", -- src\editor\findreplace.lua
|
||||
["Wrap around"] = "Продолжить сначала", -- src\editor\toolbar.lua
|
||||
["You must save the program first."] = "Вы должны сначала сохранить программу.", -- src\editor\commands.lua
|
||||
["Zoom In"] = "Приблизить", -- src\editor\menu_view.lua
|
||||
["Zoom Out"] = "Удалить", -- src\editor\menu_view.lua
|
||||
|
||||
@@ -11,11 +11,15 @@ return {
|
||||
busted = busted or ide.config.path.busted -- check if the path is configured
|
||||
if not busted then
|
||||
local sep = win and ';' or ':'
|
||||
local path = (os.getenv('PATH') or '')..sep
|
||||
local default =
|
||||
win and GenerateProgramFilesPath('LuaRocks\\systree\\bin', sep)..sep
|
||||
or ''
|
||||
local path = default
|
||||
..(os.getenv('PATH') or '')..sep
|
||||
..(os.getenv('HOME') and os.getenv('HOME') .. '/bin' or '')
|
||||
local paths = {}
|
||||
for p in path:gmatch("[^"..sep.."]+") do
|
||||
busted = busted or GetFullPathIfExists(p, win and 'busted.exe' or 'busted')
|
||||
busted = busted or GetFullPathIfExists(p, win and 'busted.bat' or 'busted')
|
||||
table.insert(paths, p)
|
||||
end
|
||||
if not busted then
|
||||
|
||||
@@ -1,19 +1,141 @@
|
||||
-- Copyright 2011-13 Paul Kulchenko, ZeroBrane LLC
|
||||
|
||||
--[[
|
||||
|
||||
Support for Hub added by Marmalade.
|
||||
|
||||
--]]
|
||||
|
||||
local quick
|
||||
local win = ide.osname == "Windows"
|
||||
local mac = ide.osname == "Macintosh"
|
||||
local exe = win and [[win32\s3e_simulator_debug.exe]] or [[loader/osx/s3e_simulator_debug]]
|
||||
local exe = win and [[win32\s3e_simulator_release.exe]] or [[loader/osx/s3e_simulator_release]]
|
||||
local exe_d = win and [[win32\s3e_simulator_debug.exe]] or [[loader/osx/s3e_simulator_debug]]
|
||||
local s3e = os.getenv("S3E_DIR")
|
||||
local prev_debug_loader
|
||||
|
||||
--[[
|
||||
Parse project file
|
||||
--]]
|
||||
function ProjectSettings(hub_project)
|
||||
local project_settings = {}
|
||||
local in_section = false
|
||||
for line in io.lines(hub_project) do
|
||||
-- Ignore comments and blank lines
|
||||
if not line:find('^%s*;') and not line:match('^%s*$') then
|
||||
section = line:match('^%s*%[([^%]]+)%]%s*$')
|
||||
if section then
|
||||
in_section = "GENERAL" == section:upper()
|
||||
elseif in_section then
|
||||
local key, value = line:match('^%s*(%w+)%s*=%s*(.-)%s*$')
|
||||
if tonumber(value) then
|
||||
project_settings[key] = tonumber(value)
|
||||
elseif value:upper() == "TRUE" then
|
||||
project_settings[key] = true
|
||||
elseif value:upper() == "FALSE" then
|
||||
project_settings[key] = false
|
||||
else
|
||||
project_settings[key] = value
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
return project_settings
|
||||
end
|
||||
|
||||
function GetFileName(filePath)
|
||||
if (not filePath) then return end
|
||||
local wxn = wx.wxFileName(filePath)
|
||||
return wxn:GetName()
|
||||
end
|
||||
|
||||
function GetQuickBuildFolder(mkb_quick)
|
||||
for line in io.lines(mkb_quick) do
|
||||
if line:find('^QUICK') then
|
||||
local dir = line:match('^QUICK;([^;]+);')
|
||||
return dir
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local project_settings = {}
|
||||
|
||||
function LauncherFromHubProject(projdir, project_name)
|
||||
|
||||
local sep = GetPathSeparator()
|
||||
|
||||
local mkb_quick = projdir..sep.."project_"..project_name..sep.."mkb-quick.txt"
|
||||
|
||||
if not mkb_quick or not wx.wxFileExists(mkb_quick) then
|
||||
DisplayOutputLn(("Warning: can't find '%s' file."):format(mkb_quick))
|
||||
return
|
||||
end
|
||||
|
||||
local build_folder = GetQuickBuildFolder(mkb_quick)
|
||||
|
||||
if not build_folder or not wx.wxDirExists(projdir..sep..build_folder) then
|
||||
DisplayOutputLn(("Warning: can't find '%s' Quick build folder."):format(build_folder))
|
||||
return
|
||||
end
|
||||
|
||||
local project_file = projdir..sep.."project_"..project_name..sep.."project.ini"
|
||||
|
||||
if not project_file or not wx.wxFileExists(project_file) then
|
||||
DisplayOutputLn(("Warning: can't find '%s' Hub project file."):format(project_file))
|
||||
else
|
||||
project_settings = ProjectSettings(project_file)
|
||||
end
|
||||
|
||||
if next(project_settings) == nil then
|
||||
DisplayOutputLn(("Warning: can't read settings from '%s' project file. Using defaults."):format(project_file))
|
||||
project_settings = {}
|
||||
end
|
||||
|
||||
-- Use simulator config
|
||||
local via = projdir..sep..build_folder..sep..project_name.."_"..(project_settings.isDebug and 'debug' or 'release')..".via"
|
||||
|
||||
if not via or not wx.wxFileExists(via) then
|
||||
DisplayOutputLn(("Warning: can't find '%s' via file."):format(via))
|
||||
via = projdir..sep..build_folder..sep.."web_"..(project_settings.isDebug and 'debug' or 'release')..".via"
|
||||
end
|
||||
|
||||
if not via or not wx.wxFileExists(via) then
|
||||
DisplayOutputLn(("Warning: can't find '%s' via file."):format(via))
|
||||
via = nil
|
||||
end
|
||||
|
||||
return via
|
||||
end
|
||||
|
||||
return {
|
||||
name = "Marmalade Quick",
|
||||
description = "Marmalade Quick mobile framework",
|
||||
api = {"baselib", "marmalade"},
|
||||
frun = function(self,wfilename,rundebug)
|
||||
quick = quick or ide.config.path.quick or (s3e and GetFullPathIfExists(s3e, exe))
|
||||
local projdir = self:fworkdir(wfilename)
|
||||
-- check for *.mkb file; it can be in the same or in the parent folder
|
||||
local mproj, mfile = MergeFullPath(projdir, "./")
|
||||
for _, file in ipairs(FileSysGetRecursive(mproj, false, "*.mkb")) do mfile = file end
|
||||
if not mfile then
|
||||
mproj, mfile = MergeFullPath(projdir, "../")
|
||||
for _, file in ipairs(FileSysGetRecursive(mproj, false, "*.mkb")) do mfile = file end
|
||||
end
|
||||
if not mfile then
|
||||
DisplayOutputLn(("Can't find '%s' project file."):format(mproj))
|
||||
return
|
||||
end
|
||||
|
||||
-- Check Marmalade project configuration
|
||||
local via = LauncherFromHubProject(mproj, GetFileName(mfile))
|
||||
|
||||
quick = prev_debug_loader == project_settings.isDebugLoader and quick or nil
|
||||
|
||||
quick = quick or ide.config.path.quick or (project_settings.isDebugLoader and (s3e and GetFullPathIfExists(s3e, exe_d)) or (s3e and GetFullPathIfExists(s3e, exe)))
|
||||
|
||||
prev_debug_loader = project_settings.isDebugLoader
|
||||
|
||||
if not quick then
|
||||
local sep = win and ';' or ':'
|
||||
local sep = wx.wxPATH_SEP
|
||||
local path =
|
||||
win and ([[C:\Marmalade]]..sep..[[D:\Marmalade]]..sep..
|
||||
GenerateProgramFilesPath('Marmalade', sep)..sep)
|
||||
@@ -47,38 +169,45 @@ return {
|
||||
|
||||
if not s3e then s3e = quick:gsub(exe, '') end
|
||||
|
||||
local projdir = self:fworkdir(wfilename)
|
||||
local file = GetFullPathIfExists(projdir, 'main.lua')
|
||||
if not file then
|
||||
DisplayOutputLn("Can't find 'main.lua' file in the current project folder.")
|
||||
local options
|
||||
local datadir
|
||||
|
||||
if via then
|
||||
options = ([[--via="%s"]]):format(via)
|
||||
datadir = FileRead(via):match('--data="([^"]+)"')
|
||||
else
|
||||
local mkb = FileRead(mfile)
|
||||
datadir = mkb:match("options%s*%{[^%}]*s3e%-data%-dir%s*=%s*(.-)%s*[\r\n%}]")
|
||||
datadir = datadir and datadir:gsub("^['\"]", ""):gsub("['\"][\r\n]*$", "")
|
||||
local icf1, icf2 = mkb:match("options%s*%{[^%}]*app%-icf%s*=%s*(.-)%s*[\r\n%}]")
|
||||
icf1 = icf1 and icf1:gsub("^['\"]", ""):gsub("['\"][\r\n]*$", "")
|
||||
if icf1 and icf1:find(",") then
|
||||
icf1, icf2 = icf1:match("(.+),(.*)")
|
||||
end
|
||||
|
||||
datadir = datadir and (wx.wxIsAbsolutePath(datadir) and datadir or MergeFullPath(mproj, datadir))
|
||||
icf1 = icf1 and (wx.wxIsAbsolutePath(icf1) and icf1 or MergeFullPath(mproj, icf1))
|
||||
icf2 = icf2 and (wx.wxIsAbsolutePath(icf2) and icf2 or MergeFullPath(mproj, icf2))
|
||||
|
||||
local quick_prebuilt = project_settings.isDebug and "quick_prebuilt_d.s86" or "quick_prebuilt.s86"
|
||||
|
||||
local dll = GetFullPathIfExists(s3e, "../quick/target/"..quick_prebuilt)
|
||||
or MergeFullPath(s3e, ("../quick/target/%s/"..quick_prebuilt):format(mac and 'osx' or 'win'))
|
||||
options = table.concat({
|
||||
([[--dll="%s"]]):format(dll),
|
||||
(datadir and ([[--data="%s"]]):format(datadir) or ''),
|
||||
-- Quick doesn't handle correctly spaces in quoted parameters on OSX,
|
||||
-- so replace those with escaped spaces; still quote on Windows
|
||||
(icf1 and ([[--app-icf1=%s]]):format(mac and icf1:gsub(" ", "\\ ") or '"'..icf1..'"') or ''),
|
||||
(icf2 and ([[--app-icf2=%s]]):format(mac and icf2:gsub(" ", "\\ ") or '"'..icf2..'"') or nil),
|
||||
}, " ")
|
||||
end
|
||||
|
||||
if not datadir then
|
||||
DisplayOutputLn("Failed to determine data dir")
|
||||
return
|
||||
end
|
||||
|
||||
-- check for *.mkb file; it can be in the same or in the parent folder
|
||||
local mproj, mfile = MergeFullPath(projdir, "./")
|
||||
for _, file in ipairs(FileSysGetRecursive(mproj, false, "*.mkb")) do mfile = file end
|
||||
if not mfile then
|
||||
mproj, mfile = MergeFullPath(projdir, "../")
|
||||
for _, file in ipairs(FileSysGetRecursive(mproj, false, "*.mkb")) do mfile = file end
|
||||
end
|
||||
if not mfile then
|
||||
DisplayOutputLn(("Can't find '%s' project file."):format(mproj))
|
||||
return
|
||||
end
|
||||
|
||||
local mkb = FileRead(mfile)
|
||||
local datadir = mkb:match("options%s*%{[^%}]*s3e%-data%-dir%s*=%s*(.-)%s*[\r\n%}]")
|
||||
datadir = datadir and datadir:gsub("^['\"]", ""):gsub("['\"][\r\n]*$", "")
|
||||
local icf1, icf2 = mkb:match("options%s*%{[^%}]*app%-icf%s*=%s*(.-)%s*[\r\n%}]")
|
||||
icf1 = icf1 and icf1:gsub("^['\"]", ""):gsub("['\"][\r\n]*$", "")
|
||||
if icf1 and icf1:find(",") then
|
||||
icf1, icf2 = icf1:match("(.+),(.*)")
|
||||
end
|
||||
|
||||
datadir = datadir and (wx.wxIsAbsolutePath(datadir) and datadir or MergeFullPath(mproj, datadir))
|
||||
icf1 = icf1 and (wx.wxIsAbsolutePath(icf1) and icf1 or MergeFullPath(mproj, icf1))
|
||||
icf2 = icf2 and (wx.wxIsAbsolutePath(icf2) and icf2 or MergeFullPath(mproj, icf2))
|
||||
|
||||
if rundebug then
|
||||
-- start running the application right away
|
||||
DebuggerAttachDefault({redirect = mac and "r" or "c", basedir = datadir,
|
||||
@@ -99,17 +228,6 @@ return {
|
||||
end
|
||||
end
|
||||
|
||||
local dll = GetFullPathIfExists(s3e, "../quick/target/quick_prebuilt_d.s86")
|
||||
or MergeFullPath(s3e, ("../quick/target/%s/quick_prebuilt_d.s86"):format(mac and 'osx' or 'win'))
|
||||
local options = table.concat({
|
||||
([[--dll="%s"]]):format(dll),
|
||||
(datadir and ([[--data="%s"]]):format(datadir) or ''),
|
||||
-- Quick doesn't handle correctly spaces in quoted parameters on OSX,
|
||||
-- so replace those with escaped spaces; still quote on Windows
|
||||
(icf1 and ([[--app-icf1=%s]]):format(mac and icf1:gsub(" ", "\\ ") or '"'..icf1..'"') or ''),
|
||||
(icf2 and ([[--app-icf2=%s]]):format(mac and icf2:gsub(" ", "\\ ") or '"'..icf2..'"') or nil),
|
||||
}, " ")
|
||||
|
||||
local cmd = ('"%s" %s'):format(quick, options)
|
||||
-- CommandLineRun(cmd,wdir,tooutput,nohide,stringcallback,uid,endcallback)
|
||||
return CommandLineRun(cmd,GetPathWithSep(projdir),true,true)
|
||||
|
||||
@@ -57,17 +57,27 @@ local function match_comment(s, pos)
|
||||
return '--' .. part, pos
|
||||
end
|
||||
|
||||
-- note: matches invalid numbers too
|
||||
-- note: matches invalid numbers too (for example, 0x)
|
||||
local function match_numberlike(s, pos)
|
||||
local tok = s:match('^0[xX][0-9A-Fa-f]*', pos)
|
||||
if tok then return tok end
|
||||
local tok = s:match('^[0-9%.]+', pos)
|
||||
if tok then
|
||||
local tok2 = s:match('^[eE][+-]?[0-9]*', pos + #tok)
|
||||
if tok2 then tok = tok .. tok2 end
|
||||
return tok
|
||||
local hex = s:match('^0[xX]', pos)
|
||||
if hex then pos = pos + #hex end
|
||||
|
||||
local longint = (hex and '^%x+' or '^%d+') .. '[uU]?[lL][lL]'
|
||||
local mantissa1 = hex and '^%x+%.?%x*' or '^%d+%.?%d*'
|
||||
local mantissa2 = hex and '^%.%x+' or '^%.%d+'
|
||||
local exponent = hex and '^[pP][+%-]?%x*' or '^[eE][+%-]?%d*'
|
||||
local imaginary = '^[iI]'
|
||||
local tok = s:match(longint, pos)
|
||||
if not tok then
|
||||
tok = s:match(mantissa1, pos) or s:match(mantissa2, pos)
|
||||
if tok then
|
||||
local tok2 = s:match(exponent, pos + #tok)
|
||||
if tok2 then tok = tok..tok2 end
|
||||
tok2 = s:match(imaginary, pos + #tok)
|
||||
if tok2 then tok = tok..tok2 end
|
||||
end
|
||||
end
|
||||
return nil
|
||||
return tok and (hex or '') .. tok or hex
|
||||
end
|
||||
|
||||
local function newset(s)
|
||||
@@ -105,7 +115,7 @@ function M.lex(code, f, pos)
|
||||
local tok = code:match('^#![^\n]*\n', pos) -- shebang
|
||||
if tok then f('Shebang', tok, 1) pos = pos + #tok end
|
||||
while pos <= #code do
|
||||
local p2, n2, n1 = code:match('^%s*()((%S)%S?)', pos)
|
||||
local p2, n2, n1, n3 = code:match('^%s*()((%S)(%S?))', pos)
|
||||
if not p2 then assert(code:sub(pos):match('^%s*$')); break end
|
||||
pos = p2
|
||||
|
||||
@@ -141,7 +151,7 @@ function M.lex(code, f, pos)
|
||||
f('Unknown', code:sub(pos), pos) -- unterminated string
|
||||
pos = #code + 1
|
||||
end
|
||||
elseif dig[n1] then
|
||||
elseif dig[n1] or (n1 == '.' and dig[n3]) then
|
||||
local tok = match_numberlike(code, pos)
|
||||
assert(tok)
|
||||
f('Number', tok, pos)
|
||||
@@ -193,7 +203,7 @@ function M.lexc(code, f, pos)
|
||||
M.lex(code, function(tag, name, pos)
|
||||
yield {tag=tag, name, lineinfo=pos}
|
||||
end, pos)
|
||||
yield {tag='Eof'}
|
||||
yield {tag='Eof', lineinfo = #code+1}
|
||||
end)
|
||||
return setmetatable({f=func}, Stream)
|
||||
end
|
||||
|
||||
@@ -173,17 +173,17 @@ function PARSE.parse_scope(lx, f, level)
|
||||
scopes[#scopes].inside_table = newval
|
||||
end
|
||||
elseif c.tag == 'Id' then
|
||||
local scope = #scopes
|
||||
local inside_local = scopes[scope].inside_local ~= nil
|
||||
local inside_table = scopes[scope].inside_table
|
||||
local cnext = lx:peek()
|
||||
if cnext.tag == 'Keyword' and (cnext[1] == '(' or cnext[1] == '{')
|
||||
or cnext.tag == 'String' then
|
||||
f('FunctionCall', c[1], c.lineinfo, scopes[#scopes].inside_local ~= nil)
|
||||
f('FunctionCall', c[1], c.lineinfo, inside_local)
|
||||
end
|
||||
local scope = #scopes
|
||||
local inside_local = scopes[scope].inside_local ~= nil
|
||||
-- either this is inside a table or it continues from a comma,
|
||||
-- which may be a field assignment, so assume it's in a table
|
||||
if (scopes[scope].inside_table or cprev[1] == ',')
|
||||
and cnext.tag == 'Keyword' and cnext[1] == '=' then
|
||||
if (inside_table or cprev[1] == ',') and cnext.tag == 'Keyword' and cnext[1] == '=' then
|
||||
-- table field; table fields are tricky to handle during incremental
|
||||
-- processing as "a = 1" may be either an assignment (in which case
|
||||
-- 'a' is Id) or a field initialization (in which case it's a String).
|
||||
@@ -199,10 +199,13 @@ function PARSE.parse_scope(lx, f, level)
|
||||
else
|
||||
f('Id', c[1], c.lineinfo, true)
|
||||
-- this looks like the left side of (multi-variable) assignment
|
||||
while lx:peek().tag == 'Keyword' and lx:peek()[1] == ',' do
|
||||
local c = lx:next(); if lx:peek().tag ~= 'Id' then break end
|
||||
c = lx:next()
|
||||
f('Id', c[1], c.lineinfo, true)
|
||||
-- unless it's a part of `= var, field = value`, so skip if inside a table
|
||||
if not inside_table and not (cprev and cprev.tag == 'Keyword' and cprev[1] == '=') then
|
||||
while lx:peek().tag == 'Keyword' and lx:peek()[1] == ',' do
|
||||
local c = lx:next(); if lx:peek().tag ~= 'Id' then break end
|
||||
c = lx:next()
|
||||
f('Id', c[1], c.lineinfo, true)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -515,7 +515,7 @@ function M.require_inspect(name, report, spath)
|
||||
vinfo = T.error'module not found' --IMPROVE: include search paths?
|
||||
end
|
||||
M.package_loaded[name] = {vinfo, mast}
|
||||
return vinfo
|
||||
return vinfo, mast
|
||||
end
|
||||
|
||||
|
||||
@@ -790,11 +790,12 @@ function M.infer_values(top_ast, tokenlist, src, report)
|
||||
-- Any call to require is handled specially (source analysis).
|
||||
if func == require and type(argvalues[1]) == 'string' then
|
||||
local spath = tostring(ast.lineinfo.first):gsub('<C|','<'):match('<([^|]+)') -- a HACK? relies on AST lineinfo
|
||||
local val = M.require_inspect(argvalues[1], report, spath:gsub('[^\\/]+$', ''))
|
||||
local val, mast = M.require_inspect(argvalues[1], report, spath:gsub('[^\\/]+$', ''))
|
||||
if known(val) and val ~= nil then
|
||||
ast.value = val
|
||||
found = true
|
||||
end -- note: on nil value, assumes analysis failed (not found). This is a heuristic only.
|
||||
if mast and mast.valueglobals then ast.valueglobals = mast.valueglobals end
|
||||
end
|
||||
-- Attempt call if safe.
|
||||
if not found and (LS.safe_function[func] or func == pcall and LS.safe_function[argvalues[1]]) then
|
||||
@@ -1089,10 +1090,10 @@ function M.uninspect(top_ast)
|
||||
ast.note = nil
|
||||
|
||||
ast.nocollect = nil
|
||||
end)
|
||||
|
||||
-- undo infer_values
|
||||
top_ast.valueglobals = nil
|
||||
-- undo infer_values
|
||||
ast.valueglobals = nil
|
||||
end)
|
||||
end
|
||||
|
||||
|
||||
@@ -1143,6 +1144,10 @@ function M.inspect(top_ast, tokenlist, src, report)
|
||||
end
|
||||
|
||||
LA.walk(top_ast, function(ast)
|
||||
if top_ast ~= ast and ast.valueglobals then
|
||||
for k in pairs(ast.valueglobals) do globals[k] = {set = ast} end
|
||||
ast.valueglobals = nil
|
||||
end
|
||||
if ast.tag == 'Id' or ast.isfield then
|
||||
local vname = ast[1]
|
||||
--TODO: rename definedglobal to definedfield for clarity
|
||||
|
||||
@@ -202,12 +202,15 @@ lexer.patterns = {
|
||||
--final_short_comment = "^%-%-([^\n]*)()$",
|
||||
long_comment = "^%-%-%[(=*)%[\n?(.-)%]%1%]()",
|
||||
long_string = "^%[(=*)%[\n?(.-)%]%1%]()",
|
||||
number_longint = "^%d+[uU]?[lL][lL]()",
|
||||
number_longint_hex = "^%x+[uU]?[lL][lL]()",
|
||||
number_mantissa = { "^%d+%.?%d*()", "^%d*%.%d+()" },
|
||||
number_mantissa_hex = { "^%x+%.?%x*()", "^%x*%.%x+()" }, --Lua5.1 and Lua5.2
|
||||
number_exponant = "^[eE][%+%-]?%d+()",
|
||||
number_exponant_hex = "^[pP][%+%-]?%d+()", --Lua5.2
|
||||
number_exponent = "^[eE][%+%-]?%d+()",
|
||||
number_exponent_hex = "^[pP][%+%-]?%d+()", --Lua5.2
|
||||
number_hex = "^0[xX]()",
|
||||
word = "^([%a_][%w_]*)()"
|
||||
number_imaginary = "^[iI]()",
|
||||
word = "^([%a_][%w_]*)()",
|
||||
}
|
||||
|
||||
----------------------------------------------------------------------
|
||||
@@ -411,28 +414,31 @@ end
|
||||
-- Extract Number.
|
||||
----------------------------------------------------------------------
|
||||
function lexer :extract_number()
|
||||
local j = self.src:match(self.patterns.number_hex, self.i)
|
||||
if j then
|
||||
j = self.src:match (self.patterns.number_mantissa_hex[1], j) or
|
||||
self.src:match (self.patterns.number_mantissa_hex[2], j)
|
||||
if j then
|
||||
j = self.src:match (self.patterns.number_exponant_hex, j) or j
|
||||
end
|
||||
local patt = self.patterns
|
||||
local s = self.src
|
||||
local j = s:match(patt.number_hex, self.i)
|
||||
local hex = j ~= nil
|
||||
local longint = hex and patt.number_longint_hex or patt.number_longint
|
||||
local mantissa1 = hex and patt.number_mantissa_hex[1] or patt.number_mantissa[1]
|
||||
local mantissa2 = hex and patt.number_mantissa_hex[2] or patt.number_mantissa[2]
|
||||
local exponent = hex and patt.number_exponent_hex or patt.number_exponent
|
||||
if not hex then j = self.i end
|
||||
|
||||
local t = s:match(longint, j)
|
||||
if t then
|
||||
j = t
|
||||
else
|
||||
j = self.src:match (self.patterns.number_mantissa[1], self.i) or
|
||||
self.src:match (self.patterns.number_mantissa[2], self.i)
|
||||
if j then
|
||||
j = self.src:match (self.patterns.number_exponant, j) or j
|
||||
end
|
||||
j = s:match(mantissa1, j) or s:match(mantissa2, j)
|
||||
if not j then return end
|
||||
j = s:match(exponent, j) or j
|
||||
j = s:match(patt.number_imaginary, j) or j
|
||||
end
|
||||
if not j then return end
|
||||
-- Number found, interpret with tonumber() and return it
|
||||
|
||||
local str = self.src:sub (self.i, j-1)
|
||||
-- :TODO: tonumber on Lua5.2 floating hex may or may not work on Lua5.1
|
||||
local n = tonumber (str)
|
||||
if not n then error(str.." is not a valid number according to tonumber()") end
|
||||
self.i = j
|
||||
return 'Number', n
|
||||
-- Number found, interpret with tonumber() and return it
|
||||
-- return str as the fallback when processing formats not supported by the current interpreter
|
||||
return 'Number', (tonumber (str) or str)
|
||||
end
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
@@ -19,7 +19,7 @@ end)("os")
|
||||
|
||||
local mobdebug = {
|
||||
_NAME = "mobdebug",
|
||||
_VERSION = 0.62,
|
||||
_VERSION = 0.628,
|
||||
_COPYRIGHT = "Paul Kulchenko",
|
||||
_DESCRIPTION = "Mobile Remote Debugger for the Lua programming language",
|
||||
port = os and os.getenv and tonumber((os.getenv("MOBDEBUG_PORT"))) or 8172,
|
||||
@@ -37,6 +37,7 @@ local setmetatable = setmetatable
|
||||
local tonumber = tonumber
|
||||
local unpack = table.unpack or unpack
|
||||
local rawget = rawget
|
||||
local gsub, sub, find = string.gsub, string.sub, string.find
|
||||
|
||||
-- if strict.lua is used, then need to avoid referencing some global
|
||||
-- variables, as they can be undefined;
|
||||
@@ -61,6 +62,7 @@ local corocreate = ngx and coroutine._create or coroutine.create
|
||||
local cororesume = ngx and coroutine._resume or coroutine.resume
|
||||
local coroyield = ngx and coroutine._yield or coroutine.yield
|
||||
local corostatus = ngx and coroutine._status or coroutine.status
|
||||
local corowrap = coroutine.wrap
|
||||
|
||||
if not setfenv then -- Lua 5.2+
|
||||
-- based on http://lua-users.org/lists/lua-l/2010-06/msg00314.html
|
||||
@@ -124,34 +126,36 @@ local debugee = function ()
|
||||
for _ = 1, 10 do a = a + 1 end
|
||||
error(deferror)
|
||||
end
|
||||
local function q(s) return s:gsub('([%(%)%.%%%+%-%*%?%[%^%$%]])','%%%1') end
|
||||
local function q(s) return string.gsub(s, '([%(%)%.%%%+%-%*%?%[%^%$%]])','%%%1') end
|
||||
|
||||
local serpent = (function() ---- include Serpent module for serialization
|
||||
local n, v = "serpent", 0.28 -- (C) 2012-15 Paul Kulchenko; MIT License
|
||||
local n, v = "serpent", 0.285 -- (C) 2012-15 Paul Kulchenko; MIT License
|
||||
local c, d = "Paul Kulchenko", "Lua serializer and pretty printer"
|
||||
local snum = {[tostring(1/0)]='1/0 --[[math.huge]]',[tostring(-1/0)]='-1/0 --[[-math.huge]]',[tostring(0/0)]='0/0'}
|
||||
local badtype = {thread = true, userdata = true, cdata = true}
|
||||
local getmetatable = debug and debug.getmetatable or getmetatable
|
||||
local keyword, globals, G = {}, {}, (_G or _ENV)
|
||||
for _,k in ipairs({'and', 'break', 'do', 'else', 'elseif', 'end', 'false',
|
||||
'for', 'function', 'goto', 'if', 'in', 'local', 'nil', 'not', 'or', 'repeat',
|
||||
'return', 'then', 'true', 'until', 'while'}) do keyword[k] = true end
|
||||
for k,v in pairs(G) do globals[v] = k end -- build func to name mapping
|
||||
for _,g in ipairs({'coroutine', 'debug', 'io', 'math', 'string', 'table', 'os'}) do
|
||||
for k,v in pairs(G[g] or {}) do globals[v] = g..'.'..k end end
|
||||
for k,v in pairs(type(G[g]) == 'table' and G[g] or {}) do globals[v] = g..'.'..k end end
|
||||
|
||||
local function s(t, opts)
|
||||
local name, indent, fatal, maxnum = opts.name, opts.indent, opts.fatal, opts.maxnum
|
||||
local sparse, custom, huge = opts.sparse, opts.custom, not opts.nohuge
|
||||
local space, maxl = (opts.compact and '' or ' '), (opts.maxlevel or math.huge)
|
||||
local iname, comm = '_'..(name or ''), opts.comment and (tonumber(opts.comment) or math.huge)
|
||||
local numformat = opts.numformat or "%.17g"
|
||||
local seen, sref, syms, symn = {}, {'local '..iname..'={}'}, {}, 0
|
||||
local function gensym(val) return '_'..(tostring(tostring(val)):gsub("[^%w]",""):gsub("(%d%w+)",
|
||||
-- tostring(val) is needed because __tostring may return a non-string value
|
||||
function(s) if not syms[s] then symn = symn+1; syms[s] = symn end return tostring(syms[s]) end)) end
|
||||
local function safestr(s) return type(s) == "number" and tostring(huge and snum[tostring(s)] or s)
|
||||
local function safestr(s) return type(s) == "number" and tostring(huge and snum[tostring(s)] or numformat:format(s))
|
||||
or type(s) ~= "string" and tostring(s) -- escape NEWLINE/010 and EOF/026
|
||||
or ("%q"):format(s):gsub("\010","n"):gsub("\026","\\026") end
|
||||
local function comment(s,l) return comm and (l or 0) < comm and ' --[['..tostring(s)..']]' or '' end
|
||||
local function comment(s,l) return comm and (l or 0) < comm and ' --[['..select(2, pcall(tostring, s))..']]' or '' end
|
||||
local function globerr(s,l) return globals[s] and globals[s]..comment(s,l) or not fatal
|
||||
and safestr(select(2, pcall(tostring, s))) or error("Can't serialize "..tostring(s)) end
|
||||
local function safename(path, name) -- generates foo.bar, foo[3], or foo['b a r']
|
||||
@@ -175,7 +179,9 @@ local function s(t, opts)
|
||||
if seen[t] then -- already seen this element
|
||||
sref[#sref+1] = spath..space..'='..space..seen[t]
|
||||
return tag..'nil'..comment('ref', level) end
|
||||
if type(mt) == 'table' and (mt.__serialize or mt.__tostring) then -- knows how to serialize itself
|
||||
-- protect from those cases where __tostring may fail
|
||||
if type(mt) == 'table' and pcall(function() return mt.__tostring and mt.__tostring(t) end)
|
||||
and (mt.__serialize or mt.__tostring) then -- knows how to serialize itself
|
||||
seen[t] = insref or spath
|
||||
if mt.__serialize then t = mt.__serialize(t) else t = tostring(t) end
|
||||
ttype = type(t) end -- new value falls through to be serialized
|
||||
@@ -195,6 +201,7 @@ local function s(t, opts)
|
||||
local value, ktype, plainindex = t[key], type(key), n <= maxn and not sparse
|
||||
if opts.valignore and opts.valignore[value] -- skip ignored values; do nothing
|
||||
or opts.keyallow and not opts.keyallow[key]
|
||||
or opts.keyignore and opts.keyignore[key]
|
||||
or opts.valtypeignore and opts.valtypeignore[type(value)] -- skipping ignored value types
|
||||
or sparse and value == nil then -- skipping nils; do nothing
|
||||
elseif ktype == 'table' or ktype == 'function' or badtype[ktype] then
|
||||
@@ -573,26 +580,26 @@ local function debug_hook(event, line)
|
||||
-- Unfortunately, there is no reliable/quick way to figure out
|
||||
-- what is the filename and what is the source code.
|
||||
-- The following will work if the supplied filename uses Unix path.
|
||||
if file:find("^@") then
|
||||
file = file:gsub("^@", ""):gsub("\\", "/")
|
||||
if find(file, "^@") then
|
||||
file = gsub(gsub(file, "^@", ""), "\\", "/")
|
||||
-- need this conversion to be applied to relative and absolute
|
||||
-- file names as you may write "require 'Foo'" to
|
||||
-- load "foo.lua" (on a case insensitive file system) and breakpoints
|
||||
-- set on foo.lua will not work if not converted to the same case.
|
||||
if iscasepreserving then file = string.lower(file) end
|
||||
if file:find("%./") == 1 then file = file:sub(3)
|
||||
else file = file:gsub("^"..q(basedir), "") end
|
||||
if find(file, "%./") == 1 then file = sub(file, 3)
|
||||
else file = gsub(file, "^"..q(basedir), "") end
|
||||
-- some file systems allow newlines in file names; remove these.
|
||||
file = file:gsub("\n", ' ')
|
||||
file = gsub(file, "\n", ' ')
|
||||
else
|
||||
-- this is either a file name coming from loadstring("chunk", "file"),
|
||||
-- or the actual source code that needs to be serialized (as it may
|
||||
-- include newlines); assume it's a file name if it's all on one line.
|
||||
if file:find("[\r\n]") then
|
||||
if find(file, "[\r\n]") then
|
||||
file = mobdebug.line(file)
|
||||
else
|
||||
if iscasepreserving then file = string.lower(file) end
|
||||
file = file:gsub("\\", "/"):gsub(file:find("^%./") and "^%./" or "^"..q(basedir), "")
|
||||
file = gsub(gsub(file, "\\", "/"), find(file, "^%./") and "^%./" or "^"..q(basedir), "")
|
||||
end
|
||||
end
|
||||
|
||||
@@ -648,7 +655,7 @@ local function debug_hook(event, line)
|
||||
-- need to recheck once more as resume after 'stack' command may
|
||||
-- return something else (for example, 'exit'), which needs to be handled
|
||||
if status and res and res ~= 'stack' then
|
||||
if not abort and res == "exit" then os.exit(1, true); return end
|
||||
if not abort and res == "exit" then mobdebug.onexit(1, true); return end
|
||||
if not abort and res == "done" then mobdebug.done(); return end
|
||||
abort = res
|
||||
-- only abort if safe; if not, there is another (earlier) check inside
|
||||
@@ -916,7 +923,6 @@ local function debugger_loop(sev, svars, sfile, sline)
|
||||
elseif command == "SUSPEND" then
|
||||
-- do nothing; it already fulfilled its role
|
||||
elseif command == "DONE" then
|
||||
server:send("200 OK\n")
|
||||
coroyield("done")
|
||||
return -- done with all the debugging
|
||||
elseif command == "STACK" then
|
||||
@@ -945,7 +951,7 @@ local function debugger_loop(sev, svars, sfile, sline)
|
||||
if stream and mode and stream == "stdout" then
|
||||
-- assign "print" in the global environment
|
||||
local default = mode == 'd'
|
||||
genv.print = default and iobase.print or coroutine.wrap(function()
|
||||
genv.print = default and iobase.print or corowrap(function()
|
||||
-- wrapping into coroutine.wrap protects this function from
|
||||
-- being stepped through in the debugger.
|
||||
-- don't use vararg (...) as it adds a reference for its values,
|
||||
@@ -1081,7 +1087,7 @@ local function controller(controller_host, controller_port, scratchpad)
|
||||
else
|
||||
if status then -- normal execution is done
|
||||
break
|
||||
elseif err and not tostring(err):find(deferror) then
|
||||
elseif err and not string.find(tostring(err), deferror) then
|
||||
-- report the error back
|
||||
-- err is not necessarily a string, so convert to string to report
|
||||
report(debug.traceback(coro_debugee), tostring(err))
|
||||
@@ -1174,8 +1180,7 @@ local function handle(params, client, options)
|
||||
local breakpoint = client:receive()
|
||||
if not breakpoint then
|
||||
print("Program finished")
|
||||
os.exit(0, true)
|
||||
return -- use return here for those cases where os.exit() is not wanted
|
||||
return
|
||||
end
|
||||
local _, _, status = string.find(breakpoint, "^(%d+)")
|
||||
if status == "200" then
|
||||
@@ -1204,24 +1209,17 @@ local function handle(params, client, options)
|
||||
if size then
|
||||
local msg = client:receive(tonumber(size))
|
||||
print("Error in remote application: " .. msg)
|
||||
os.exit(1, true)
|
||||
return nil, nil, msg -- use return here for those cases where os.exit() is not wanted
|
||||
return nil, nil, msg
|
||||
end
|
||||
else
|
||||
print("Unknown error")
|
||||
os.exit(1, true)
|
||||
-- use return here for those cases where os.exit() is not wanted
|
||||
return nil, nil, "Debugger error: unexpected response '" .. breakpoint .. "'"
|
||||
end
|
||||
if done then break end
|
||||
end
|
||||
elseif command == "done" then
|
||||
client:send(string.upper(command) .. "\n")
|
||||
if client:receive() ~= "200 OK" then
|
||||
print("Unknown error")
|
||||
os.exit(1, true)
|
||||
return nil, nil, "Debugger error: unexpected response after DONE"
|
||||
end
|
||||
-- no response is expected
|
||||
elseif command == "setb" or command == "asetb" then
|
||||
_, _, _, file, line = string.find(params, "^([a-z]+)%s+(.-)%s+(%d+)%s*$")
|
||||
if file and line then
|
||||
@@ -1508,7 +1506,9 @@ local function handle(params, client, options)
|
||||
print("exit -- exits debugger and the application")
|
||||
else
|
||||
local _, _, spaces = string.find(params, "^(%s*)$")
|
||||
if not spaces then
|
||||
if spaces then
|
||||
return nil, nil, "Empty command"
|
||||
else
|
||||
print("Invalid command")
|
||||
return nil, nil, "Invalid command"
|
||||
end
|
||||
@@ -1547,9 +1547,11 @@ local function listen(host, port)
|
||||
|
||||
while true do
|
||||
io.write("> ")
|
||||
local line = io.read("*line")
|
||||
handle(line, client)
|
||||
local file, line, err = handle(io.read("*line"), client)
|
||||
if not file and not err then break end -- completed debugging
|
||||
end
|
||||
|
||||
client:close()
|
||||
end
|
||||
|
||||
local cocreate
|
||||
@@ -1601,10 +1603,7 @@ mobdebug.coro = coro
|
||||
mobdebug.done = done
|
||||
mobdebug.pause = function() step_into = true end
|
||||
mobdebug.yield = nil -- callback
|
||||
mobdebug.onexit = os and os.exit or done
|
||||
mobdebug.basedir = function(b) if b then basedir = b end return basedir end
|
||||
|
||||
-- this is needed to make "require 'modebug'" to work when mobdebug
|
||||
-- module is loaded manually
|
||||
package.loaded.mobdebug = mobdebug
|
||||
|
||||
return mobdebug
|
||||
|
||||
@@ -10,6 +10,7 @@ local P = {
|
||||
-- Events that are marked with "return false" can return `false` to
|
||||
-- abort further processing.
|
||||
-- For `onEditorPreSave` event it means that file saving will be aborted.
|
||||
-- For `onEditorPreClose` event it means that closing an editor tab will be aborted.
|
||||
-- For `onEditorKeyDown` event it means that the key will be "eaten".
|
||||
-- For `onEditorAction` event it means that the action will not be executed.
|
||||
-- For `onFiletreeActivate` event it means that no further processing is done.
|
||||
@@ -20,6 +21,7 @@ local events = {
|
||||
onRegister = function(self) end,
|
||||
onUnRegister = function(self) end,
|
||||
onEditorLoad = function(self, editor) end,
|
||||
onEditorPreClose = function(self, editor) end, -- return false
|
||||
onEditorClose = function(self, editor) end,
|
||||
onEditorNew = function(self, editor) end,
|
||||
onEditorPreSave = function(self, editor, filepath) end, -- return false
|
||||
@@ -38,7 +40,10 @@ local events = {
|
||||
onFiletreeRDown = function(self, tree, event, item) end,
|
||||
onMenuEditor = function(self, menu, editor, event) end,
|
||||
onMenuEditorTab = function(self, menu, notebook, event, index) end,
|
||||
onMenuOutput = function(self, menu, editor, event) end,
|
||||
onMenuFiletree = function(self, menu, tree, event) end,
|
||||
onMenuOutline = function(self, menu, tree, event) end,
|
||||
onMenuWatch = function(self, menu, tree, event) end,
|
||||
onProjectPreLoad = function(self, project) end, -- before project is changed
|
||||
onProjectLoad = function(self, project) end, -- after project is changed
|
||||
onProjectClose = function(self, project) end,
|
||||
|
||||
@@ -4,11 +4,13 @@ function CMarkSymbols(code, pos, vars)
|
||||
local isfndef = function(str, pos)
|
||||
local s,e,pref,cap
|
||||
while true do
|
||||
s,e,pref,cap,parms = str:find("([\r\n]%s*)"..funcdeftmpl, pos)
|
||||
s,e,pref,cap,parms = str:find("^(%s*)"..funcdeftmpl, pos)
|
||||
if (not s) then
|
||||
s,e,pref,cap,parms = str:find("^(%s*)"..funcdeftmpl, pos)
|
||||
s,e,pref,cap,parms = str:find("([\r\n]%s*)"..funcdeftmpl, pos)
|
||||
end
|
||||
if parms and #parms > 0 and not parms:find(idtmpl) then
|
||||
-- skip strange parameters and things of `else if ()` variety
|
||||
if parms and #parms > 0 and not parms:find(idtmpl)
|
||||
or cap and cap:find("%sif%s*$") then
|
||||
pos = s+#pref+#cap+#parms
|
||||
else
|
||||
break
|
||||
|
||||
18
spec/lua.lua
18
spec/lua.lua
@@ -71,15 +71,19 @@ return {
|
||||
end,
|
||||
isincindent = function(str)
|
||||
-- remove "long" comments and escaped slashes (to process \' and \" below)
|
||||
str = str:gsub('%-%-%[=*%[.-%]=*%]',''):gsub([[\\]],'')
|
||||
str = str:gsub('%-%-%[=*%[.-%]=*%]',''):gsub('\\[\\\'"]','')
|
||||
while true do
|
||||
local num, sep = nil, str:match("['\"]")
|
||||
if not sep then break end
|
||||
str, num = str:gsub(sep..".-\\"..sep,sep):gsub(sep..".-"..sep,"")
|
||||
if num == 0 then break end
|
||||
end
|
||||
-- strip comments after strings are processed and remove all function calls
|
||||
str = str:gsub('%-%-.*',''):gsub("%b()","()")
|
||||
str = (str
|
||||
:gsub('%[=*%[.-%]=*%]','') -- remove long strings
|
||||
:gsub('%[=*%[.*','') -- remove partial long strings
|
||||
:gsub('%-%-.*','') -- strip comments after strings are processed
|
||||
:gsub("%b()","()") -- remove all function calls
|
||||
)
|
||||
|
||||
local term = str:match("^%s*(%w+)%W*")
|
||||
local terminc = term and incindent[term] and 1 or 0
|
||||
@@ -160,6 +164,10 @@ return {
|
||||
local var,typ = tx:match("%s*"..identifier.."%s*=%s*([^;]+)")
|
||||
|
||||
var = var and var:gsub("local",""):gsub("%s","")
|
||||
-- handle `require` as a special case that returns a type that matches its parameter
|
||||
-- (this is without deeper analysis on loaded files and should work most of the time)
|
||||
local req = typ and typ:match("^require%s*%(?%s*['\"](.+)['\"]%s*%)?")
|
||||
typ = req or typ
|
||||
typ = (typ and typ
|
||||
:gsub("%b()","")
|
||||
:gsub("%b{}","")
|
||||
@@ -189,7 +197,7 @@ return {
|
||||
|
||||
if (var and typ) then
|
||||
local class,func = typ:match(varname.."["..q(sep).."]"..varname)
|
||||
if (assigns[typ]) then
|
||||
if (assigns[typ] and not req) then
|
||||
assigns[var] = assigns[typ]
|
||||
elseif (func) then
|
||||
local added
|
||||
@@ -253,6 +261,7 @@ return {
|
||||
[[bit32.arshift bit32.band bit32.bnot bit32.bor bit32.btest bit32.bxor bit32.extract
|
||||
bit32.lrotate bit32.lshift bit32.replace bit32.rrotate bit32.rshift
|
||||
coroutine.create coroutine.resume coroutine.running coroutine.status coroutine.wrap coroutine.yield
|
||||
coroutine.isyieldable
|
||||
debug.debug debug.getfenv debug.gethook debug.getinfo debug.getlocal
|
||||
debug.getmetatable debug.getregistry debug.getupvalue debug.getuservalue debug.setfenv
|
||||
debug.sethook debug.setlocal debug.setmetatable debug.setupvalue debug.setuservalue
|
||||
@@ -262,6 +271,7 @@ return {
|
||||
math.abs math.acos math.asin math.atan math.atan2 math.ceil math.cos math.cosh math.deg math.exp
|
||||
math.floor math.fmod math.frexp math.ldexp math.log math.log10 math.max math.min math.modf
|
||||
math.pow math.rad math.random math.randomseed math.sin math.sinh math.sqrt math.tan math.tanh
|
||||
math.type math.tointeger math.maxinteger math.mininteger math.ult
|
||||
os.clock os.date os.difftime os.execute os.exit os.getenv os.remove os.rename os.setlocale os.time os.tmpname
|
||||
package.loadlib package.searchpath package.seeall package.config
|
||||
package.cpath package.loaded package.loaders package.path package.preload package.searchers
|
||||
|
||||
@@ -3,8 +3,6 @@
|
||||
---------------------------------------------------------
|
||||
|
||||
local ide = ide
|
||||
local statusBar = ide.frame.statusBar
|
||||
|
||||
local q = EscapeMagic
|
||||
|
||||
-- api loading depends on Lua interpreter
|
||||
@@ -226,7 +224,7 @@ local function resolveAssign(editor,tx)
|
||||
local c
|
||||
if (assigns) then
|
||||
-- find assign
|
||||
local change, n, stopat = true, 0, os.clock() + 0.2
|
||||
local change, n, refs, stopat = true, 0, {}, os.clock() + 0.2
|
||||
while (change) do
|
||||
-- abort the check if the auto-complete is taking too long
|
||||
if n > 50 and os.clock() > stopat then
|
||||
@@ -255,6 +253,9 @@ local function resolveAssign(editor,tx)
|
||||
c = c..w..s
|
||||
end
|
||||
end
|
||||
-- check for loops in type assignment
|
||||
if refs[tx] then break end
|
||||
refs[tx] = c
|
||||
tx = c
|
||||
-- if there is any class duplication, abort the loop
|
||||
if classname and select(2, c:gsub(classname, classname)) > 1 then break end
|
||||
@@ -415,6 +416,7 @@ function DynamicWordsRem(editor,content,line,numlines)
|
||||
end
|
||||
|
||||
function DynamicWordsRemoveAll(editor)
|
||||
if ide.config.acandtip.nodynwords then return end
|
||||
DynamicWordsRem(editor,editor:GetText())
|
||||
end
|
||||
|
||||
@@ -526,8 +528,8 @@ function CreateAutoCompList(editor,key,pos)
|
||||
|
||||
local tab,rest = resolveAssign(editor,key)
|
||||
local progress = tab and tab.childs
|
||||
statusBar:SetStatusText(progress and tab.classname or "",1)
|
||||
if not (progress) then return end
|
||||
ide:SetStatusFor(progress and tab.classname and ("Auto-completing '%s'..."):format(tab.classname) or "")
|
||||
if not progress then return end
|
||||
|
||||
if (tab == ac) then
|
||||
local _, krest = rest:match("([%w_]+)["..q(sep).."]([%w_]*)%s*$")
|
||||
@@ -541,33 +543,6 @@ function CreateAutoCompList(editor,key,pos)
|
||||
rest = rest:gsub("[^%w_]","")
|
||||
end
|
||||
|
||||
local last = key:match("([%w_]+)%s*$")
|
||||
|
||||
-- build dynamic word list
|
||||
-- only if api search couldnt descend
|
||||
-- ie we couldnt find matching sub items
|
||||
local dw = ""
|
||||
if (last and #last >= (ide.config.acandtip.startat or 2)) then
|
||||
last = last:lower()
|
||||
if dynamicwords[last] then
|
||||
local list = dynamicwords[last]
|
||||
table.sort(list,function(a,b)
|
||||
local ma,mb = a:sub(1,#last)==last, b:sub(1,#last)==last
|
||||
if (ma and mb) or (not ma and not mb) then return a<b end
|
||||
return ma
|
||||
end)
|
||||
-- ignore if word == last and sole user
|
||||
for i,v in ipairs(list) do
|
||||
if (v:lower() == last and dywordentries[v] == 1) then
|
||||
table.remove(list,i)
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
dw = table.concat(list," ")
|
||||
end
|
||||
end
|
||||
|
||||
-- list from api
|
||||
local apilist = getAutoCompApiList(tab.childs or tab,rest,method)
|
||||
|
||||
@@ -599,7 +574,9 @@ function CreateAutoCompList(editor,key,pos)
|
||||
if token.fpos and pos and token.fpos > pos then break end
|
||||
if token[1] == 'Id' or token[1] == 'Var' then
|
||||
local var = token.name
|
||||
if var ~= key and var:find(key, 1, true) == 1 then
|
||||
if var:find(key, 1, true) == 1
|
||||
-- skip the variable formed by what's being typed
|
||||
and (not token.fpos or not pos or token.fpos < pos-#key) then
|
||||
-- if it's a global variable, store in the auto-complete list,
|
||||
-- but if it's local, store separately as it needs to be checked
|
||||
table.insert(token.context[var] and vars or apilist, var)
|
||||
@@ -612,33 +589,42 @@ function CreateAutoCompList(editor,key,pos)
|
||||
end
|
||||
end
|
||||
|
||||
local compstr = ""
|
||||
-- include dynamic words
|
||||
local last = key:match("([%w_]+)%s*$")
|
||||
if (last and #last >= (ide.config.acandtip.startat or 2)) then
|
||||
last = last:lower()
|
||||
for i,v in ipairs(dynamicwords[last] or {}) do
|
||||
-- ignore if word == last and sole user
|
||||
if (v:lower() == last and dywordentries[v] == 1) then break end
|
||||
table.insert(apilist, v)
|
||||
end
|
||||
end
|
||||
|
||||
local li
|
||||
if apilist then
|
||||
if (#rest > 0) then
|
||||
local strategy = ide.config.acandtip.strategy
|
||||
|
||||
if (strategy == 2 and #apilist < 128) then
|
||||
local pat = rest:gsub(".",function(c)
|
||||
local l = c:lower()..c:upper()
|
||||
return "["..l.."]([^"..l.." ]*)"
|
||||
end)
|
||||
|
||||
local g = string.gsub
|
||||
-- when matching "ret": "ret." < "re.t" < "r.et"
|
||||
local patany = rest:gsub(".", function(c) return "["..c:lower()..c:upper().."](.-)" end)
|
||||
local patcase = rest:gsub(".", function(c) return c.."(.-)" end)
|
||||
local weights = {}
|
||||
local penalty = 0.1
|
||||
local function weight(str)
|
||||
if not weights[str] then
|
||||
local w = 0
|
||||
str:gsub(patany,function(...)
|
||||
local l = {...}
|
||||
-- penalize gaps between matches, more so at the beginning
|
||||
for n, v in ipairs(l) do w = w + #v * (1 + (#l-n)*penalty) end
|
||||
end)
|
||||
weights[str] = w + (str:find(patcase) and 0 or penalty)
|
||||
end
|
||||
return weights[str]
|
||||
end
|
||||
table.sort(apilist,function(a,b)
|
||||
local ma,mb = 0,0
|
||||
g(a,pat,function(...)
|
||||
local l = {...}
|
||||
for _, v in ipairs(l) do
|
||||
ma = ma + ((v=="") and 0 or 1)
|
||||
end
|
||||
end)
|
||||
g(b,pat,function(...)
|
||||
local l = {...}
|
||||
for _, v in ipairs(l) do
|
||||
mb = mb + ((v=="") and 0 or 1)
|
||||
end
|
||||
end)
|
||||
|
||||
local ma, mb = weight(a), weight(b)
|
||||
if (ma == mb) then return a:lower()<b:lower() end
|
||||
return ma<mb
|
||||
end)
|
||||
@@ -660,11 +646,7 @@ function CreateAutoCompList(editor,key,pos)
|
||||
else prev = apilist[i] end
|
||||
end
|
||||
|
||||
compstr = table.concat(apilist," ")
|
||||
li = table.concat(apilist," ")
|
||||
end
|
||||
|
||||
-- concat final, list complete first
|
||||
local li = compstr .. (#compstr > 0 and #dw > 0 and " " or "") .. dw
|
||||
|
||||
return li ~= "" and (#li > 1024 and li:sub(1,1024).."..." or li) or nil
|
||||
return li and #li > 1024 and li:sub(1,1024).."..." or li
|
||||
end
|
||||
|
||||
@@ -3,12 +3,16 @@
|
||||
|
||||
local maxlines = 8
|
||||
local row_height = 46
|
||||
local row_width = 450
|
||||
|
||||
function CommandBarShow(params)
|
||||
local onDone, onUpdate, onItem, onSelection, defaultText, selectedText =
|
||||
params.onDone, params.onUpdate, params.onItem, params.onSelection,
|
||||
params.defaultText, params.selectedText
|
||||
local row_width = ide.config.commandbar.width or 0
|
||||
if row_width < 1 then
|
||||
row_width = math.max(450, math.floor(row_width * ide:GetMainFrame():GetClientSize():GetWidth()))
|
||||
end
|
||||
|
||||
local lines = {}
|
||||
local linesnow = #lines
|
||||
local linenow = 0
|
||||
@@ -259,6 +263,8 @@ function CommandBarShow(params)
|
||||
search:Connect(wx.wxEVT_KILL_FOCUS, function() onExit() end)
|
||||
|
||||
frame:Show(true)
|
||||
frame:Update()
|
||||
frame:Refresh()
|
||||
|
||||
search:SetValue((defaultText or "")..(selectedText or ""))
|
||||
search:SetSelection(#(defaultText or ""), -1)
|
||||
@@ -313,21 +319,36 @@ function CommandBarScoreItems(t, pattern, limit)
|
||||
local r, plen = {}, #pattern
|
||||
local maxp = 0
|
||||
local num = 0
|
||||
local prefilter = ide.config.commandbar and ide.config.commandbar.prefilter <= #t
|
||||
and pattern:gsub("[^%w_]+",""):lower():gsub(".", "%1.*"):gsub("%.%*$","")
|
||||
local prefilter = ide.config.commandbar and ide.config.commandbar.prefilter
|
||||
-- anchor for 1-2 symbol patterns to speed up search
|
||||
local needanchor = prefilter and prefilter * 4 <= #t and plen <= 2
|
||||
local filter = prefilter and prefilter <= #t
|
||||
-- expand `abc` into `a.*b.*c`, but limit the prefix to avoid penalty for `s.*s.*s.*....`
|
||||
and pattern:gsub("[^%w_]+",""):sub(1,4):lower():gsub(".", "%1.*"):gsub("%.%*$","")
|
||||
or nil
|
||||
for _, v in ipairs(t) do
|
||||
if #v >= plen and (not prefilter or v:lower():find(prefilter)) then
|
||||
local p = score(pattern, v)
|
||||
maxp = math.max(p, maxp)
|
||||
if p > 1 and p > maxp / 4 then
|
||||
num = num + 1
|
||||
r[num] = {v, p}
|
||||
if #v >= plen then
|
||||
local match = filter and v:lower():find(filter)
|
||||
-- check if the current name needs to be prefiltered or anchored (for better performance);
|
||||
-- if it needs to be anchored, then anchor it at the beginning of the string or the word
|
||||
if not filter or (match and (not needanchor or match == 1 or v:find("^[%p%s]", match-1))) then
|
||||
local p = score(pattern, v)
|
||||
maxp = math.max(p, maxp)
|
||||
if p > 1 and p > maxp / 4 then
|
||||
num = num + 1
|
||||
r[num] = {v, p}
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
table.sort(r, function(a, b) return a[2] > b[2] end)
|
||||
if limit then r[limit] = nil end -- limit the list to be displayed
|
||||
-- limit the list to be displayed
|
||||
-- `r[limit+1] = nil` is not desired as the resulting table may be sorted incorrectly
|
||||
if tonumber(limit) and limit < #r then
|
||||
local tmp = r
|
||||
r = {}
|
||||
for i = 1, limit do r[i] = tmp[i] end
|
||||
end
|
||||
return r
|
||||
end
|
||||
|
||||
|
||||
@@ -61,54 +61,69 @@ function LoadFile(filePath, editor, file_must_exist, skipselection)
|
||||
end
|
||||
end
|
||||
|
||||
-- if not opened yet, try open now
|
||||
local file_text = FileRead(filePath)
|
||||
if file_text then
|
||||
if GetConfigIOFilter("input") then
|
||||
file_text = GetConfigIOFilter("input")(filePath,file_text)
|
||||
end
|
||||
elseif file_must_exist then
|
||||
return nil
|
||||
end
|
||||
local filesize = FileSize(filePath)
|
||||
if not filesize and file_must_exist then return nil end
|
||||
|
||||
local current = editor and editor:GetCurrentPos()
|
||||
editor = editor or findUnusedEditor() or CreateEditor()
|
||||
|
||||
editor:Freeze()
|
||||
editor:SetupKeywords(GetFileExt(filePath))
|
||||
editor:MarkerDeleteAll(-1)
|
||||
|
||||
-- remove BOM from UTF-8 encoded files; store BOM to add back when saving
|
||||
if filesize then editor:Allocate(filesize) end
|
||||
editor:SetText("")
|
||||
editor.bom = string.char(0xEF,0xBB,0xBF)
|
||||
if file_text and editor:GetCodePage() == wxstc.wxSTC_CP_UTF8
|
||||
and file_text:find("^"..editor.bom) then
|
||||
file_text = file_text:gsub("^"..editor.bom, "")
|
||||
else
|
||||
-- set to 'false' as checks for nil on wxlua objects may fail at run-time
|
||||
editor.bom = false
|
||||
end
|
||||
editor:SetText(file_text or "")
|
||||
|
||||
-- check the editor as it can be empty if the file has malformed UTF8;
|
||||
-- skip binary files with unknown extensions as they may have any sequences;
|
||||
-- can't show them anyway.
|
||||
if file_text and #file_text > 0 and #(editor:GetText()) == 0
|
||||
and (editor.spec ~= ide.specs.none or not IsBinary(file_text)) then
|
||||
local replacement, invalid = "\022"
|
||||
file_text, invalid = FixUTF8(file_text, replacement)
|
||||
if #invalid > 0 then
|
||||
editor:AppendText(file_text)
|
||||
local lastline = nil
|
||||
for _, n in ipairs(invalid) do
|
||||
local line = editor:LineFromPosition(n)
|
||||
if line ~= lastline then
|
||||
DisplayOutputLn(("%s:%d: %s")
|
||||
:format(filePath, line+1, TR("Replaced an invalid UTF8 character with %s."):format(replacement)))
|
||||
lastline = line
|
||||
local inputfilter = GetConfigIOFilter("input")
|
||||
local file_text
|
||||
ide:PushStatus("")
|
||||
FileRead(filePath, 1024*1024, function(s)
|
||||
if not file_text then
|
||||
-- remove BOM from UTF-8 encoded files; store BOM to add back when saving
|
||||
if s and editor:GetCodePage() == wxstc.wxSTC_CP_UTF8 and s:find("^"..editor.bom) then
|
||||
s = s:gsub("^"..editor.bom, "")
|
||||
else
|
||||
-- set to 'false' as checks for nil on wxlua objects may fail at run-time
|
||||
editor.bom = false
|
||||
end
|
||||
file_text = s
|
||||
end
|
||||
if inputfilter then s = inputfilter(filePath, s) end
|
||||
local expected = editor:GetLength() + #s
|
||||
editor:AppendText(s)
|
||||
-- if the length is not as expected, then either it's a binary file or invalid UTF8
|
||||
if editor:GetLength() ~= expected then
|
||||
-- skip binary files with unknown extensions as they may have any sequences
|
||||
if editor.spec == ide.specs.none and IsBinary(s) then
|
||||
DisplayOutputLn(("%s: %s"):format(filePath,
|
||||
TR("Binary file is shown as read-only as it is only partially loaded.")))
|
||||
file_text = ''
|
||||
editor:SetReadOnly(true)
|
||||
return false
|
||||
end
|
||||
|
||||
-- handle invalid UTF8 characters
|
||||
-- fix: doesn't handle characters split by callback buffer
|
||||
local replacement, invalid = "\022"
|
||||
s, invalid = FixUTF8(s, replacement)
|
||||
if #invalid > 0 then
|
||||
editor:AppendText(s)
|
||||
local lastline = nil
|
||||
for _, n in ipairs(invalid) do
|
||||
local line = editor:LineFromPosition(n)
|
||||
if line ~= lastline then
|
||||
DisplayOutputLn(("%s:%d: %s"):format(filePath, line+1,
|
||||
TR("Replaced an invalid UTF8 character with %s."):format(replacement)))
|
||||
lastline = line
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
if filesize and filesize > 0 then
|
||||
ide:PopStatus()
|
||||
ide:PushStatus(TR("%s%% loaded..."):format(math.floor(100*editor:GetLength()/filesize)))
|
||||
end
|
||||
end)
|
||||
ide:PopStatus()
|
||||
|
||||
editor:Colourise(0, -1)
|
||||
editor:ResetTokenList() -- reset list of tokens if this is a reused editor
|
||||
@@ -132,7 +147,7 @@ function LoadFile(filePath, editor, file_must_exist, skipselection)
|
||||
DisplayOutputLn(("%s: %s")
|
||||
:format(filePath, TR("Mixed end-of-line encodings detected.")..' '..
|
||||
TR("Use '%s' to show line endings and '%s' to convert them.")
|
||||
:format("GetEditor():SetViewEOL(1)", "GetEditor():ConvertEOLs(GetEditor():GetEOLMode())")))
|
||||
:format("ide:GetEditor():SetViewEOL(1)", "ide:GetEditor():ConvertEOLs(ide:GetEditor():GetEOLMode())")))
|
||||
elseif foundcrlf then
|
||||
editor:SetEOLMode(wxstc.wxSTC_EOL_CRLF)
|
||||
elseif foundlf then
|
||||
@@ -270,8 +285,8 @@ function SaveFile(editor, filePath)
|
||||
end
|
||||
end
|
||||
|
||||
local st = (editor:GetCodePage() == wxstc.wxSTC_CP_UTF8 and editor.bom or "")
|
||||
.. editor:GetText()
|
||||
local st = ((editor:GetCodePage() == wxstc.wxSTC_CP_UTF8 and editor.bom or "")
|
||||
.. editor:GetText())
|
||||
if GetConfigIOFilter("output") then
|
||||
st = GetConfigIOFilter("output")(filePath,st)
|
||||
end
|
||||
@@ -430,6 +445,11 @@ end
|
||||
function ClosePage(selection)
|
||||
local editor = GetEditor(selection)
|
||||
local id = editor:GetId()
|
||||
|
||||
if PackageEventHandle("onEditorPreClose", editor) == false then
|
||||
return false
|
||||
end
|
||||
|
||||
if SaveModifiedDialog(editor, true) ~= wx.wxID_CANCEL then
|
||||
DynamicWordsRemoveAll(editor)
|
||||
local debugger = ide.debugger
|
||||
@@ -449,7 +469,9 @@ function ClosePage(selection)
|
||||
|
||||
-- disable full screen if the last tab is closed
|
||||
if not (notebook:GetSelection() >= 0) then ShowFullScreen(false) end
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
function CloseAllPagesExcept(selection)
|
||||
@@ -555,6 +577,7 @@ function CompileProgram(editor, params)
|
||||
:format(compileOk/compileTotal*100, compileOk, compileTotal))
|
||||
end
|
||||
else
|
||||
ActivateOutput()
|
||||
DisplayOutputLn(TR("Compilation error").." "..TR("on line %d"):format(line)..":")
|
||||
DisplayOutputLn((err:gsub("\n$", "")))
|
||||
-- check for escapes invalid in LuaJIT/Lua 5.2 that are allowed in Lua 5.1
|
||||
@@ -773,8 +796,7 @@ local function saveAutoRecovery(force)
|
||||
ide.settings:Flush()
|
||||
end
|
||||
ide.session.lastsaved = now
|
||||
ide.frame.statusBar:SetStatusText(
|
||||
TR("Saved auto-recover at %s."):format(os.date("%H:%M:%S")), 1)
|
||||
ide:SetStatus(TR("Saved auto-recover at %s."):format(os.date("%H:%M:%S")))
|
||||
end
|
||||
|
||||
local function fastWrap(func, ...)
|
||||
@@ -831,8 +853,9 @@ function StoreRestoreProjectTabs(curdir, newdir)
|
||||
fastWrap(SetOpenFiles, files, {index = #files + notebook:GetPageCount()})
|
||||
end
|
||||
|
||||
if params and params.interpreter then
|
||||
ProjectSetInterpreter(params.interpreter) -- set the interpreter
|
||||
-- either interpreter is chosen for the project or the default value is set
|
||||
if (params and params.interpreter) or (not params and ide.config.interpreter) then
|
||||
ProjectSetInterpreter(params and params.interpreter or ide.config.interpreter)
|
||||
end
|
||||
|
||||
if ide.osname ~= 'Macintosh' then notebook:Thaw() end
|
||||
@@ -920,7 +943,9 @@ ide.editorApp:Connect(wx.wxEVT_SET_FOCUS, function(event)
|
||||
local class = win:GetClassInfo():GetClassName()
|
||||
-- don't set focus on the main frame or toolbar
|
||||
if ide.infocus and (class == 'wxAuiToolBar' or class == 'wxFrame') then
|
||||
pcall(function() ide.infocus:SetFocus() end)
|
||||
-- check if the window is shown before returning focus to it,
|
||||
-- as it may lead to a recursion in event handlers on OSX (wxwidgets 2.9.5).
|
||||
pcall(function() if ide:IsWindowShown(ide.infocus) then ide.infocus:SetFocus() end end)
|
||||
return
|
||||
end
|
||||
|
||||
@@ -964,14 +989,12 @@ ide.editorApp:Connect(wx.wxEVT_ACTIVATE_APP,
|
||||
-- restore focus to the last element that received it;
|
||||
-- wrap into pcall in case the element has disappeared
|
||||
-- while the application was out of focus
|
||||
pcall(function() ide.infocus:SetFocus() end)
|
||||
pcall(function() if ide:IsWindowShown(ide.infocus) then ide.infocus:SetFocus() end end)
|
||||
end
|
||||
|
||||
local active = event:GetActive()
|
||||
-- save auto-recovery record when making the app inactive
|
||||
if not active then saveAutoRecovery(true) end
|
||||
-- also collect all the garbage
|
||||
if not active then collectgarbage() end
|
||||
|
||||
-- disable UI refresh when app is inactive, but only when not running
|
||||
wx.wxUpdateUIEvent.SetUpdateInterval(
|
||||
@@ -999,3 +1022,28 @@ function PaneFloatToggle(window)
|
||||
end
|
||||
uimgr:Update()
|
||||
end
|
||||
|
||||
local cma, cman = 0, 1
|
||||
frame:Connect(wx.wxEVT_IDLE,
|
||||
function(event)
|
||||
local debugger = ide.debugger
|
||||
if (debugger.update) then debugger.update() end
|
||||
if (debugger.scratchpad) then DebuggerRefreshScratchpad() end
|
||||
if IndicateIfNeeded() then event:RequestMore(true) end
|
||||
PackageEventHandleOnce("onIdleOnce", event)
|
||||
PackageEventHandle("onIdle", event)
|
||||
|
||||
-- process onidle events if any
|
||||
if #ide.onidle > 0 then table.remove(ide.onidle)() end
|
||||
if #ide.onidle > 0 then event:RequestMore(true) end -- request more if anything left
|
||||
|
||||
if ide.config.showmemoryusage then
|
||||
local mem = collectgarbage("count")
|
||||
local alpha = math.max(tonumber(ide.config.showmemoryusage) or 0, 1/cman)
|
||||
cman = cman + 1
|
||||
cma = alpha * mem + (1-alpha) * cma
|
||||
ide:SetStatus(("cur: %sKb; avg: %sKb"):format(math.floor(mem), math.floor(cma)))
|
||||
end
|
||||
|
||||
event:Skip() -- let other EVT_IDLE handlers to work on the event
|
||||
end)
|
||||
|
||||
@@ -20,6 +20,7 @@ debugger.stackCtrl = nil -- the stack ctrl that shows stack information
|
||||
debugger.toggleview = {
|
||||
bottomnotebook = true, -- output/console is "on" by default
|
||||
stackpanel = false, watchpanel = false, toolbar = false }
|
||||
debugger.needrefresh = {} -- track components that may need a refresh
|
||||
debugger.hostname = ide.config.debugger.hostname or (function()
|
||||
local hostname = socket.dns.gethostname()
|
||||
return hostname and socket.dns.toip(hostname) and hostname or "localhost"
|
||||
@@ -65,8 +66,9 @@ local function updateWatchesSync(onlyitem)
|
||||
local watchCtrl = debugger.watchCtrl
|
||||
local pane = ide.frame.uimgr:GetPane("watchpanel")
|
||||
local shown = watchCtrl and (pane:IsOk() and pane:IsShown() or not pane:IsOk() and watchCtrl:IsShown())
|
||||
if shown and debugger.server and not debugger.running
|
||||
and not debugger.scratchpad and not (debugger.options or {}).noeval then
|
||||
local canupdate = (debugger.server and not debugger.running and not debugger.scratchpad
|
||||
and not (debugger.options or {}).noeval)
|
||||
if shown and canupdate then
|
||||
local bgcl = watchCtrl:GetBackgroundColour()
|
||||
local hicl = wx.wxColour(math.floor(bgcl:Red()*.9),
|
||||
math.floor(bgcl:Green()*.9), math.floor(bgcl:Blue()*.9))
|
||||
@@ -114,6 +116,8 @@ local function updateWatchesSync(onlyitem)
|
||||
if onlyitem then break end
|
||||
item = watchCtrl:GetNextSibling(item)
|
||||
end
|
||||
elseif not shown and canupdate then
|
||||
debugger.needrefresh.watches = true
|
||||
end
|
||||
end
|
||||
|
||||
@@ -124,8 +128,8 @@ local function updateStackSync()
|
||||
local stackCtrl = debugger.stackCtrl
|
||||
local pane = ide.frame.uimgr:GetPane("stackpanel")
|
||||
local shown = stackCtrl and (pane:IsOk() and pane:IsShown() or not pane:IsOk() and stackCtrl:IsShown())
|
||||
if shown and debugger.server and not debugger.running
|
||||
and not debugger.scratchpad then
|
||||
local canupdate = debugger.server and not debugger.running and not debugger.scratchpad
|
||||
if shown and canupdate then
|
||||
local stack, _, err = debugger.stack()
|
||||
if not stack or #stack == 0 then
|
||||
stackCtrl:DeleteAll()
|
||||
@@ -196,6 +200,8 @@ local function updateStackSync()
|
||||
stackCtrl:EnsureVisible(stackCtrl:GetFirstChild(root))
|
||||
stackCtrl:SetScrollPos(wx.wxHORIZONTAL, 0, true)
|
||||
stackCtrl:Thaw()
|
||||
elseif not shown and canupdate then
|
||||
debugger.needrefresh.stack = true
|
||||
end
|
||||
end
|
||||
|
||||
@@ -217,6 +223,15 @@ local function updateWatches(item)
|
||||
end
|
||||
end
|
||||
|
||||
local function updateStack()
|
||||
-- check if the debugger is running and may be waiting for a response.
|
||||
-- allow that request to finish, otherwise this function does nothing.
|
||||
if debugger.running then debugger.update() end
|
||||
if debugger.server and not debugger.running then
|
||||
copas.addthread(function() updateStackSync() end)
|
||||
end
|
||||
end
|
||||
|
||||
local function debuggerToggleViews(show)
|
||||
-- don't toggle if the current state is the same as the new one
|
||||
local shown = debugger.toggleview.shown
|
||||
@@ -747,11 +762,8 @@ end
|
||||
|
||||
debugger.handle = function(command, server, options)
|
||||
local verbose = ide.config.debugger.verbose
|
||||
local osexit, gprint
|
||||
osexit, os.exit = os.exit, function () end
|
||||
gprint, _G.print = _G.print, function (...)
|
||||
if verbose then DisplayOutputLn(...) end
|
||||
end
|
||||
local gprint = _G.print
|
||||
_G.print = function (...) if verbose then DisplayOutputLn(...) end end
|
||||
|
||||
nameOutputTab(TR("Output (running)"))
|
||||
debugger.running = true
|
||||
@@ -762,7 +774,6 @@ debugger.handle = function(command, server, options)
|
||||
-- only set suspended if the debugging hasn't been terminated
|
||||
if debugger.server then nameOutputTab(TR("Output (suspended)")) end
|
||||
|
||||
os.exit = osexit
|
||||
_G.print = gprint
|
||||
return file, line, err
|
||||
end
|
||||
@@ -878,6 +889,7 @@ do
|
||||
-- if there is any pending activation
|
||||
if debugger.activate then
|
||||
local file, line, content = unpack(debugger.activate)
|
||||
debugger.activate = nil
|
||||
if content then
|
||||
local editor = NewFile()
|
||||
editor:SetText(content)
|
||||
@@ -894,7 +906,6 @@ do
|
||||
activateDocument(file, line)
|
||||
end
|
||||
end
|
||||
debugger.activate = nil
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -959,7 +970,14 @@ end
|
||||
debugger.over = function() debugger.exec("over") end
|
||||
debugger.out = function() debugger.exec("out") end
|
||||
debugger.run = function() debugger.exec("run") end
|
||||
debugger.detach = function() debugger.exec("done") end
|
||||
debugger.detach = function()
|
||||
if debugger.running then
|
||||
debugger.handleDirect("done")
|
||||
debugger.server = nil
|
||||
else
|
||||
debugger.exec("done")
|
||||
end
|
||||
end
|
||||
debugger.evaluate = function(expression) return debugger.handle('eval ' .. expression) end
|
||||
debugger.execute = function(expression) return debugger.handle('exec ' .. expression) end
|
||||
debugger.stack = function() return debugger.handle('stack') end
|
||||
@@ -1068,6 +1086,13 @@ local function debuggerCreateStackWindow()
|
||||
return true
|
||||
end)
|
||||
|
||||
stackCtrl:Connect(wx.wxEVT_SET_FOCUS, function(event)
|
||||
if debugger.needrefresh.stack then
|
||||
updateStack()
|
||||
debugger.needrefresh.stack = false
|
||||
end
|
||||
end)
|
||||
|
||||
-- register navigation callback
|
||||
stackCtrl:Connect(wx.wxEVT_LEFT_DCLICK, function (event)
|
||||
local item_id = stackCtrl:HitTest(event:GetPosition())
|
||||
@@ -1228,6 +1253,14 @@ local function debuggerCreateWatchWindow()
|
||||
names[value] = nil
|
||||
end)
|
||||
|
||||
watchCtrl:Connect(wx.wxEVT_SET_FOCUS, function(event)
|
||||
if debugger.needrefresh.watches then
|
||||
updateWatches()
|
||||
debugger.needrefresh.watches = false
|
||||
end
|
||||
end)
|
||||
|
||||
|
||||
local item
|
||||
-- wx.wxEVT_CONTEXT_MENU is only triggered over tree items on OSX,
|
||||
-- but it needs to be also triggered below any item to add a watch,
|
||||
@@ -1237,12 +1270,14 @@ local function debuggerCreateWatchWindow()
|
||||
-- store the item to be used in edit/delete actions
|
||||
item = watchCtrl:HitTest(watchCtrl:ScreenToClient(wx.wxGetMousePosition()))
|
||||
local editlabel = watchCtrl:IsWatch(item) and TR("&Edit Watch") or TR("&Edit Value")
|
||||
watchCtrl:PopupMenu(wx.wxMenu {
|
||||
local menu = wx.wxMenu {
|
||||
{ ID_ADDWATCH, TR("&Add Watch")..KSC(ID_ADDWATCH) },
|
||||
{ ID_EDITWATCH, editlabel..KSC(ID_EDITWATCH) },
|
||||
{ ID_DELETEWATCH, TR("&Delete Watch")..KSC(ID_DELETEWATCH) },
|
||||
{ ID_COPYWATCHVALUE, TR("&Copy Value")..KSC(ID_COPYWATCHVALUE) },
|
||||
})
|
||||
}
|
||||
PackageEventHandle("onMenuWatch", menu, watchCtrl, event)
|
||||
watchCtrl:PopupMenu(menu)
|
||||
item = nil
|
||||
end)
|
||||
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
local editorID = 100 -- window id to create editor pages with, incremented for new editors
|
||||
|
||||
local openDocuments = ide.openDocuments
|
||||
local statusBar = ide.frame.statusBar
|
||||
local notebook = ide.frame.notebook
|
||||
local edcfg = ide.config.editor
|
||||
local styles = ide.config.styles
|
||||
@@ -14,7 +13,7 @@ local unpack = table.unpack or unpack
|
||||
local q = EscapeMagic
|
||||
|
||||
local margin = { LINENUMBER = 0, MARKER = 1, FOLD = 2 }
|
||||
local linenummask = "99999"
|
||||
local linenumlen = 4 + 0.5
|
||||
local foldtypes = {
|
||||
[0] = { wxstc.wxSTC_MARKNUM_FOLDEROPEN, wxstc.wxSTC_MARKNUM_FOLDER,
|
||||
wxstc.wxSTC_MARKNUM_FOLDERSUB, wxstc.wxSTC_MARKNUM_FOLDERTAIL, wxstc.wxSTC_MARKNUM_FOLDEREND,
|
||||
@@ -57,7 +56,7 @@ local function updateStatusText(editor)
|
||||
if ide.frame then
|
||||
for n in ipairs(texts) do
|
||||
if (texts[n] ~= statusTextTable[n]) then
|
||||
statusBar:SetStatusText(texts[n], n+1)
|
||||
ide:SetStatus(texts[n], n)
|
||||
statusTextTable[n] = texts[n]
|
||||
end
|
||||
end
|
||||
@@ -168,7 +167,6 @@ end
|
||||
function SetEditorSelection(selection)
|
||||
local editor = GetEditor(selection)
|
||||
updateStatusText(editor) -- update even if nil
|
||||
statusBar:SetStatusText("",1)
|
||||
ide.frame:SetTitle(ExpandPlaceholders(ide.config.format.apptitle))
|
||||
|
||||
if editor then
|
||||
@@ -236,17 +234,10 @@ function EditorAutoComplete(editor)
|
||||
-- know now which string is to be completed
|
||||
local userList = CreateAutoCompList(editor, lt, pos)
|
||||
|
||||
-- remove any suggestions that match the word the cursor is on
|
||||
-- for example, if typing 'foo' in front of 'bar', 'foobar' is not offered
|
||||
-- don't show if what's typed so far matches one of the options
|
||||
local right = linetx:sub(localpos+1,#linetx):match("^([%a_]+[%w_]*)")
|
||||
if userList and right then
|
||||
-- remove all spaces that may be left if "foo" removed from "foo foo"
|
||||
userList = (userList:gsub("%f[%w_]"..lt..right.."%f[%W]","")
|
||||
:gsub("^ +",""):gsub(" +$",""):gsub(" +"," "))
|
||||
end
|
||||
|
||||
-- don't show the list if it only suggests what's already typed
|
||||
if userList and #userList > 0 and not lt:find(userList.."$") then
|
||||
local left = lt:match("[%w_]*$") -- extract one word on the left (without separators)
|
||||
if userList and #userList > 0 and not userList:find("%f[%w_]"..left..(right or "").."%f[^%w_]") then
|
||||
editor:UserListShow(1, userList)
|
||||
elseif editor:AutoCompActive() then
|
||||
editor:AutoCompCancel()
|
||||
@@ -412,8 +403,13 @@ function EditorIsModified(editor)
|
||||
end
|
||||
|
||||
-- Indicator handling for functions and local/global variables
|
||||
-- indicator.MASKED is handled separately, so don't include in MAX
|
||||
local indicator = {FNCALL = 0, LOCAL = 1, GLOBAL = 2, MASKING = 3, MASKED = 4, MAX = 3}
|
||||
local indicator = {
|
||||
FNCALL = ide:GetIndicator("core.fncall"),
|
||||
LOCAL = ide:GetIndicator("core.varlocal"),
|
||||
GLOBAL = ide:GetIndicator("core.varglobal"),
|
||||
MASKING = ide:GetIndicator("core.varmasking"),
|
||||
MASKED = ide:GetIndicator("core.varmasked"),
|
||||
}
|
||||
|
||||
function IndicateFunctionsOnly(editor, lines, linee)
|
||||
local sindic = styles.indicator
|
||||
@@ -573,7 +569,9 @@ function IndicateAll(editor, lines)
|
||||
end
|
||||
|
||||
local cleared = {}
|
||||
for indic = 0, indicator.MAX do cleared[indic] = pos end
|
||||
for _, indic in ipairs {indicator.FNCALL, indicator.LOCAL, indicator.GLOBAL, indicator.MASKING} do
|
||||
cleared[indic] = pos
|
||||
end
|
||||
|
||||
local function IndicateOne(indic, pos, length)
|
||||
editor:SetIndicatorCurrent(indic)
|
||||
@@ -634,11 +632,11 @@ function IndicateAll(editor, lines)
|
||||
-- don't clear "masked" indicators as those can be set out of order (so
|
||||
-- last updated fragment is not always the last in terms of its position);
|
||||
-- these indicators should be up-to-date to the end of the code fragment.
|
||||
-- also don't clear "funccall" indicators as those can be set based on
|
||||
-- IndicateFunctionsOnly processing, which is dealt with separately
|
||||
local funconly = ide.config.editor.showfncall and editor.spec.isfncall
|
||||
for indic = funconly and indicator.LOCAL or indicator.FNCALL, indicator.MAX do
|
||||
IndicateOne(indic, pos, 0)
|
||||
for _, indic in ipairs {indicator.FNCALL, indicator.LOCAL, indicator.GLOBAL, indicator.MASKING} do
|
||||
-- don't clear "funccall" indicators as those can be set based on
|
||||
-- IndicateFunctionsOnly processing, which is dealt with separately
|
||||
if indic ~= indicator.FNCALL or not funconly then IndicateOne(indic, pos, 0) end
|
||||
end
|
||||
|
||||
local needmore = delayed[editor] ~= nil
|
||||
@@ -661,6 +659,7 @@ function CreateEditor(bare)
|
||||
editor.matchon = false
|
||||
editor.assignscache = false
|
||||
editor.bom = false
|
||||
editor.updated = 0
|
||||
editor.jumpstack = {}
|
||||
editor.ctrlcache = {}
|
||||
editor.tokenlist = {}
|
||||
@@ -693,7 +692,7 @@ function CreateEditor(bare)
|
||||
editor:SetTabWidth(tonumber(edcfg.tabwidth) or 2)
|
||||
editor:SetIndent(tonumber(edcfg.tabwidth) or 2)
|
||||
editor:SetUseTabs(edcfg.usetabs and true or false)
|
||||
editor:SetIndentationGuides(edcfg.indentguide and true or false)
|
||||
editor:SetIndentationGuides(tonumber(edcfg.indentguide) or (edcfg.indentguide and true or false))
|
||||
editor:SetViewWhiteSpace(edcfg.whitespace and true or false)
|
||||
|
||||
if (edcfg.usewrap) then
|
||||
@@ -728,7 +727,7 @@ function CreateEditor(bare)
|
||||
editor:SetMarginType(margin.LINENUMBER, wxstc.wxSTC_MARGIN_NUMBER)
|
||||
editor:SetMarginMask(margin.LINENUMBER, 0)
|
||||
editor:SetMarginWidth(margin.LINENUMBER,
|
||||
editor:TextWidth(wxstc.wxSTC_STYLE_DEFAULT, linenummask))
|
||||
math.floor(linenumlen * editor:TextWidth(wxstc.wxSTC_STYLE_DEFAULT, "8")))
|
||||
|
||||
editor:SetMarginWidth(margin.MARKER, 18)
|
||||
editor:SetMarginType(margin.MARKER, wxstc.wxSTC_MARGIN_SYMBOL)
|
||||
@@ -840,6 +839,10 @@ function CreateEditor(bare)
|
||||
editor.assignscache = false
|
||||
end
|
||||
local evtype = event:GetModificationType()
|
||||
if bit.band(evtype, wxstc.wxSTC_MOD_CHANGEMARKER) == 0 then
|
||||
-- this event is being called on OSX too frequently, so skip these notifications
|
||||
editor.updated = TimeGet()
|
||||
end
|
||||
local pos = event:GetPosition()
|
||||
local firstLine = editor:LineFromPosition(pos)
|
||||
local inserted = bit.band(evtype, wxstc.wxSTC_MOD_INSERTTEXT) ~= 0
|
||||
@@ -848,7 +851,13 @@ function CreateEditor(bare)
|
||||
SetAutoRecoveryMark()
|
||||
|
||||
local linesChanged = inserted and event:GetLinesAdded() or 0
|
||||
table.insert(editor.ev, {pos, linesChanged})
|
||||
-- collate events if they are for the same line
|
||||
local events = #editor.ev
|
||||
if events == 0 or editor.ev[events][1] ~= firstLine then
|
||||
editor.ev[events+1] = {firstLine, linesChanged}
|
||||
elseif events > 0 and editor.ev[events][1] == firstLine then
|
||||
editor.ev[events][2] = math.max(editor.ev[events][2], linesChanged)
|
||||
end
|
||||
DynamicWordsAdd(editor, nil, firstLine, linesChanged)
|
||||
end
|
||||
|
||||
@@ -1002,17 +1011,39 @@ function CreateEditor(bare)
|
||||
|
||||
editor:Connect(wx.wxEVT_KILL_FOCUS,
|
||||
function (event)
|
||||
if editor:AutoCompActive() then editor:AutoCompCancel() end
|
||||
-- on OSX clicking on scrollbar in the popup is causing the editor to lose focus,
|
||||
-- which causes canceling of auto-complete, which later cause crash because
|
||||
-- the window is destroyed in wxwidgets after already being closed. Skip on OSX.
|
||||
if ide.osname ~= 'Macintosh' and editor:AutoCompActive() then editor:AutoCompCancel() end
|
||||
PackageEventHandle("onEditorFocusLost", editor)
|
||||
event:Skip()
|
||||
end)
|
||||
|
||||
local eol = {
|
||||
[wxstc.wxSTC_EOL_CRLF] = "\r\n",
|
||||
[wxstc.wxSTC_EOL_LF] = "\n",
|
||||
[wxstc.wxSTC_EOL_CR] = "\r",
|
||||
}
|
||||
local function addOneLine(editor, adj)
|
||||
local pos = editor:GetLineEndPosition(editor:LineFromPosition(editor:GetCurrentPos())+(adj or 0))
|
||||
local added = eol[editor:GetEOLMode()] or "\n"
|
||||
editor:InsertText(pos, added)
|
||||
editor:SetCurrentPos(pos+#added)
|
||||
|
||||
local ev = wxstc.wxStyledTextEvent(wxstc.wxEVT_STC_CHARADDED)
|
||||
ev:SetKey(string.byte("\n"))
|
||||
editor:AddPendingEvent(ev)
|
||||
end
|
||||
|
||||
editor:Connect(wxstc.wxEVT_STC_USERLISTSELECTION,
|
||||
function (event)
|
||||
if PackageEventHandle("onEditorUserlistSelection", editor, event) == false then
|
||||
return
|
||||
end
|
||||
|
||||
-- if used Shift-Enter, then skip auto complete and just do Enter
|
||||
if wx.wxGetKeyState(wx.WXK_SHIFT) then return addOneLine(editor) end
|
||||
|
||||
if ide.wxver >= "2.9.5" and editor:GetSelections() > 1 then
|
||||
local text = event:GetText()
|
||||
-- capture all positions as the selection may change
|
||||
@@ -1027,14 +1058,14 @@ function CreateEditor(bare)
|
||||
editor:BeginUndoAction()
|
||||
for s = #positions, 1, -1 do
|
||||
local pos = positions[s]
|
||||
local start_pos = editor:WordStartPosition(pos, true)
|
||||
editor:SetSelection(start_pos, pos)
|
||||
local startpos = editor:WordStartPosition(pos, true)
|
||||
editor:SetSelection(startpos, pos)
|
||||
editor:ReplaceSelection(text)
|
||||
-- if this is the main position, save new cursor position to restore
|
||||
if pos == mainpos then mainpos = editor:GetCurrentPos()
|
||||
elseif pos < mainpos then
|
||||
-- adjust main position as earlier changes may affect it
|
||||
mainpos = mainpos + #text - (pos - start_pos)
|
||||
mainpos = mainpos + #text - (pos - startpos)
|
||||
end
|
||||
end
|
||||
editor:EndUndoAction()
|
||||
@@ -1042,8 +1073,9 @@ function CreateEditor(bare)
|
||||
editor:GotoPos(mainpos)
|
||||
else
|
||||
local pos = editor:GetCurrentPos()
|
||||
local start_pos = editor:WordStartPosition(pos, true)
|
||||
editor:SetSelection(start_pos, pos)
|
||||
local startpos = editor:WordStartPosition(pos, true)
|
||||
local endpos = editor:WordEndPosition(pos, true)
|
||||
editor:SetSelection(startpos, ide.config.acandtip.droprest and endpos or pos)
|
||||
editor:ReplaceSelection(event:GetText())
|
||||
end
|
||||
end)
|
||||
@@ -1085,6 +1117,14 @@ function CreateEditor(bare)
|
||||
editor:Refresh()
|
||||
end
|
||||
end
|
||||
|
||||
-- adjust line number margin, but only if it's already shown
|
||||
local linecount = #tostring(editor:GetLineCount()) + 0.5
|
||||
local mwidth = editor:GetMarginWidth(margin.LINENUMBER)
|
||||
if mwidth > 0 then
|
||||
local width = math.max(linecount, linenumlen) * editor:TextWidth(wxstc.wxSTC_STYLE_DEFAULT, "8")
|
||||
if mwidth ~= width then editor:SetMarginWidth(margin.LINENUMBER, math.floor(width)) end
|
||||
end
|
||||
end)
|
||||
|
||||
local alreadyProcessed = 0
|
||||
@@ -1113,12 +1153,14 @@ function CreateEditor(bare)
|
||||
updateBraceMatch(editor)
|
||||
local minupdated
|
||||
for _,iv in ipairs(editor.ev) do
|
||||
local line = editor:LineFromPosition(iv[1])
|
||||
local line = iv[1]
|
||||
if not minupdated or line < minupdated then minupdated = line end
|
||||
local ok, res = pcall(IndicateAll, editor, line)
|
||||
if not ok then DisplayOutputLn("Internal error: ",res,line,line+iv[2]) end
|
||||
IndicateFunctionsOnly(editor,line,line+iv[2])
|
||||
end
|
||||
if minupdated then
|
||||
local ok, res = pcall(IndicateAll, editor, minupdated)
|
||||
if not ok then DisplayOutputLn("Internal error: ",res,minupdated) end
|
||||
end
|
||||
local firstvisible = editor:DocLineFromVisible(editor:GetFirstVisibleLine())
|
||||
local lastline = math.min(editor:GetLineCount(),
|
||||
firstvisible + editor:LinesOnScreen())
|
||||
@@ -1260,6 +1302,9 @@ function CreateEditor(bare)
|
||||
or (keycode == wx.WXK_INSERT and mod == wx.wxMOD_CONTROL) then
|
||||
ide.frame:AddPendingEvent(wx.wxCommandEvent(
|
||||
wx.wxEVT_COMMAND_MENU_SELECTED, keycode == wx.WXK_INSERT and ID_COPY or ID_CUT))
|
||||
elseif (keycode == wx.WXK_RETURN or keycode == wx.WXK_NUMPAD_ENTER)
|
||||
and (mod == wx.wxMOD_CONTROL or mod == (wx.wxMOD_CONTROL + wx.wxMOD_SHIFT)) then
|
||||
addOneLine(editor, mod == (wx.wxMOD_CONTROL + wx.wxMOD_SHIFT) and -1 or 0)
|
||||
elseif ide.osname == "Unix" and ide.wxver >= "2.9.5"
|
||||
and mod == wx.wxMOD_CONTROL and editor.ctrlcache[keycode] then
|
||||
ide.frame:AddPendingEvent(wx.wxCommandEvent(
|
||||
@@ -1311,8 +1356,6 @@ function CreateEditor(bare)
|
||||
|
||||
editor:Connect(wxstc.wxEVT_STC_ZOOM,
|
||||
function(event)
|
||||
editor:SetMarginWidth(margin.LINENUMBER,
|
||||
editor:TextWidth(wxstc.wxSTC_STYLE_DEFAULT, linenummask))
|
||||
-- if Shift+Zoom is used, then zoom all editors, not just the current one
|
||||
if wx.wxGetKeyState(wx.WXK_SHIFT) then
|
||||
local zoom = editor:GetZoom()
|
||||
@@ -1354,6 +1397,7 @@ function CreateEditor(bare)
|
||||
{ ID_QUICKADDWATCH, TR("Add Watch Expression") },
|
||||
{ ID_QUICKEVAL, TR("Evaluate In Console") },
|
||||
{ ID_ADDTOSCRATCHPAD, TR("Add To Scratchpad") },
|
||||
{ ID_RUNTO, TR("Run To Cursor") },
|
||||
}
|
||||
|
||||
menu:Enable(ID_GOTODEFINITION, instances and instances[0])
|
||||
@@ -1380,6 +1424,13 @@ function CreateEditor(bare)
|
||||
editor:SetMouseDwellTime(dwelltime) -- restore dwelling
|
||||
end)
|
||||
|
||||
editor:Connect(ID_RUNTO, wx.wxEVT_COMMAND_MENU_SELECTED,
|
||||
function()
|
||||
if pos ~= wxstc.wxSTC_INVALID_POSITION then
|
||||
ide:GetDebugger().runto(editor, editor:LineFromPosition(pos))
|
||||
end
|
||||
end)
|
||||
|
||||
editor:Connect(ID_GOTODEFINITION, wx.wxEVT_COMMAND_MENU_SELECTED,
|
||||
function(event)
|
||||
if value and instances[0] then
|
||||
|
||||
@@ -263,9 +263,10 @@ local function treeSetConnectorsAndIcons(tree)
|
||||
|
||||
local empty = ""
|
||||
local function renameItem(itemsrc, target)
|
||||
local isdir = tree:IsDirectory(itemsrc)
|
||||
local isnew = tree:GetItemText(itemsrc) == empty
|
||||
local source = tree:GetItemFullName(itemsrc)
|
||||
local cache = type(itemsrc) == 'table' and itemsrc or nil
|
||||
local isdir = not cache and tree:IsDirectory(itemsrc) or cache and cache.isdir or false
|
||||
local isnew = not cache and tree:GetItemText(itemsrc) == empty or cache and cache.isnew or false
|
||||
local source = cache and cache.fullname or tree:GetItemFullName(itemsrc)
|
||||
local fn = wx.wxFileName(target)
|
||||
|
||||
-- check if the target is the same as the source;
|
||||
@@ -287,9 +288,9 @@ local function treeSetConnectorsAndIcons(tree)
|
||||
end
|
||||
|
||||
-- check if existing file/dir is going to be overwritten
|
||||
if (wx.wxFileExists(target) or wx.wxDirExists(target))
|
||||
and not wx.wxFileName(source):SameAs(fn)
|
||||
and not ApproveFileOverwrite() then return false end
|
||||
local overwrite = ((wx.wxFileExists(target) or wx.wxDirExists(target))
|
||||
and not wx.wxFileName(source):SameAs(fn))
|
||||
if overwrite and not ApproveFileOverwrite() then return false end
|
||||
|
||||
if not fn:Mkdir(tonumber(755,8), wx.wxPATH_MKDIR_FULL) then
|
||||
ReportError(TR("Unable to create directory '%s'."):format(target))
|
||||
@@ -311,7 +312,7 @@ local function treeSetConnectorsAndIcons(tree)
|
||||
end
|
||||
end
|
||||
|
||||
refreshAncestors(tree:GetItemParent(itemsrc))
|
||||
refreshAncestors(cache and cache.parent or tree:GetItemParent(itemsrc))
|
||||
-- load file(s) into the same editor (if any); will also refresh the tree
|
||||
if #docs > 0 then
|
||||
for _, doc in ipairs(docs) do
|
||||
@@ -321,8 +322,12 @@ local function treeSetConnectorsAndIcons(tree)
|
||||
-- /foo/baz/bar/file.lua, so change /foo/bar to /foo/baz/bar
|
||||
local path = (not iscaseinsensitive and fullpath:gsub(q(source), target)
|
||||
or fullpath:lower():gsub(q(source:lower()), target))
|
||||
LoadFile(path, doc.editor)
|
||||
if not isdir then PackageEventHandle("onEditorSave", doc.editor) end
|
||||
local editor = LoadFile(path)
|
||||
-- check if the file was loaded into another editor;
|
||||
-- this is possible is "foo" is renamed to "bar" and both are opened;
|
||||
-- if this happens, then "bar" is refreshed and "foo" can be closed.
|
||||
if doc.editor:GetId() ~= editor:GetId() then ClosePage(doc.index) end
|
||||
if not isdir and editor then PackageEventHandle("onEditorSave", editor) end
|
||||
end
|
||||
else -- refresh the tree and select the new item
|
||||
local itemdst = tree:FindItem(target)
|
||||
@@ -333,6 +338,13 @@ local function treeSetConnectorsAndIcons(tree)
|
||||
tree:SetScrollPos(wx.wxHORIZONTAL, 0, true)
|
||||
end
|
||||
end
|
||||
|
||||
-- refresh the target if it's open and has been overwritten
|
||||
if overwrite and not isdir then
|
||||
local doc = ide:FindDocument(target)
|
||||
if doc then LoadFile(doc:GetFilePath(), doc:GetEditor()) end
|
||||
end
|
||||
|
||||
return true
|
||||
end
|
||||
local function deleteItem(item_id)
|
||||
@@ -359,7 +371,10 @@ local function treeSetConnectorsAndIcons(tree)
|
||||
else
|
||||
local doc = ide:FindDocument(source)
|
||||
if doc then ClosePage(doc.index) end
|
||||
wx.wxRemoveFile(source)
|
||||
if not wx.wxRemoveFile(source) then
|
||||
ReportError(TR("Unable to delete file '%s': %s")
|
||||
:format(source, wx.wxSysErrorMsg()))
|
||||
end
|
||||
end
|
||||
refreshAncestors(tree:GetItemParent(item_id))
|
||||
return true
|
||||
@@ -580,7 +595,21 @@ local function treeSetConnectorsAndIcons(tree)
|
||||
|
||||
PackageEventHandle("onMenuFiletree", menu, tree, event)
|
||||
|
||||
-- stopping/restarting garbage collection is generally not needed,
|
||||
-- but on Linux not stopping is causing crashes (wxwidgets 2.9.5 and 3.1.0)
|
||||
-- when symbol indexing is done while popup menu is open (with gc methods in the trace).
|
||||
-- this only happens when EVT_IDLE is called when popup menu is open.
|
||||
collectgarbage("stop")
|
||||
|
||||
-- stopping UI updates is generally not needed as well,
|
||||
-- but it's causing a crash on OSX (wxwidgets 2.9.5 and 3.1.0)
|
||||
-- when symbol indexing is done while popup menu is open, so it's disabled
|
||||
local interval = wx.wxUpdateUIEvent.GetUpdateInterval()
|
||||
wx.wxUpdateUIEvent.SetUpdateInterval(-1) -- don't update
|
||||
|
||||
tree:PopupMenu(menu)
|
||||
wx.wxUpdateUIEvent.SetUpdateInterval(interval)
|
||||
collectgarbage("restart")
|
||||
end)
|
||||
|
||||
tree:Connect(wx.wxEVT_RIGHT_DOWN,
|
||||
@@ -637,19 +666,36 @@ local function treeSetConnectorsAndIcons(tree)
|
||||
local label = event:GetLabel():gsub("^%s+$","") -- clean all spaces
|
||||
|
||||
-- edited the root element; set the new project directory if needed
|
||||
local cancelled = event:IsEditCancelled()
|
||||
if tree:IsRoot(itemsrc) then
|
||||
if not event:IsEditCancelled() and wx.wxDirExists(label) then
|
||||
if not cancelled and wx.wxDirExists(label) then
|
||||
ProjectUpdateProjectDir(label)
|
||||
end
|
||||
return
|
||||
end
|
||||
|
||||
if not parent or not parent:IsOk() then return end
|
||||
local sourcedir = tree:GetItemFullName(parent)
|
||||
local target = MergeFullPath(sourcedir, label)
|
||||
if event:IsEditCancelled() or label == empty
|
||||
or target and not renameItem(itemsrc, target)
|
||||
then refreshAncestors(parent) end
|
||||
local target = MergeFullPath(tree:GetItemFullName(parent), label)
|
||||
if cancelled or label == empty then refreshAncestors(parent)
|
||||
elseif target then
|
||||
-- normally, none of this caching would be needed as `renameItem`
|
||||
-- would be called to check if the item can be renamed;
|
||||
-- however, as it may open a dialog box, on Linux it's causing a crash
|
||||
-- (caused by the same END_LABEL_EDIT even triggered one more time),
|
||||
-- so to protect from that, `renameItem` is called from IDLE event.
|
||||
-- Unfortunately, by that time, the filetree item (`itemsrc`) may
|
||||
-- already have incorrect state (as it's removed from the tree),
|
||||
-- so its properties need to be cached to be used from IDLE event.
|
||||
local cache = {
|
||||
isdir = tree:IsDirectory(itemsrc),
|
||||
isnew = tree:GetItemText(itemsrc) == empty,
|
||||
fullname = tree:GetItemFullName(itemsrc),
|
||||
parent = parent,
|
||||
}
|
||||
ide:DoWhenIdle(function()
|
||||
if not renameItem(cache, target) then refreshAncestors(parent) end
|
||||
end)
|
||||
end
|
||||
end)
|
||||
|
||||
local itemsrc
|
||||
|
||||
@@ -118,6 +118,7 @@ function findReplace:SetStatus(msg)
|
||||
end
|
||||
|
||||
function findReplace:SetFind(text)
|
||||
if not self.panel then self:createPanel() end
|
||||
local ctrl = self.findCtrl
|
||||
if text and ctrl then
|
||||
if ctrl:GetValue() ~= text then ctrl:ChangeValue(text) end
|
||||
@@ -131,8 +132,10 @@ function findReplace:GetFind(...) return self:HasText() end
|
||||
function findReplace:GetFlags() return self.settings.flags end
|
||||
|
||||
function findReplace:SetReplace(text)
|
||||
if text and self.replaceCtrl then
|
||||
self.replaceCtrl:ChangeValue(text)
|
||||
if not self.panel then self:createPanel() end
|
||||
local ctrl = self.replaceCtrl
|
||||
if text and ctrl then
|
||||
if ctrl:GetValue() ~= text then ctrl:ChangeValue(text) end
|
||||
return text
|
||||
end
|
||||
return
|
||||
@@ -251,7 +254,9 @@ function findReplace:FindAll(inFileRegister)
|
||||
return found
|
||||
end
|
||||
|
||||
local indicator = {SEARCHMATCH = 5}
|
||||
local indicator = {
|
||||
SEARCHMATCH = ide:GetIndicator("core.searchmatch"),
|
||||
}
|
||||
|
||||
-- returns true if replacements were done
|
||||
function findReplace:Replace(fReplaceAll, resultsEditor)
|
||||
@@ -497,8 +502,6 @@ function findReplace:RunInFiles(replace)
|
||||
ide.config.editor.fold = true
|
||||
if showaseditor then
|
||||
reseditor = NewFile(resultsText)
|
||||
-- set file path to avoid treating results as unsaved document
|
||||
ide:GetDocument(reseditor).filePath = resultsText
|
||||
else
|
||||
reseditor = ide:CreateBareEditor()
|
||||
reseditor:SetupKeywords("")
|
||||
@@ -602,6 +605,13 @@ function findReplace:RunInFiles(replace)
|
||||
local nb = showaseditor and ide:GetEditorNotebook() or nb
|
||||
nb:SetPageText(nb:GetPageIndex(reseditor), previewText .. findText)
|
||||
end
|
||||
if not showaseditor and nb then -- show the bottom notebook if hidden
|
||||
local uimgr = ide:GetUIManager()
|
||||
if not uimgr:GetPane(nb):IsShown() then
|
||||
uimgr:GetPane(nb):Show(true)
|
||||
uimgr:Update()
|
||||
end
|
||||
end
|
||||
|
||||
self:SetStatus(TR("Searching for '%s'."):format(findText))
|
||||
wx.wxSafeYield() -- allow the status to update
|
||||
@@ -643,6 +653,7 @@ function findReplace:RunInFiles(replace)
|
||||
self:SetStatus(not completed and TR("Cancelled by the user.")
|
||||
or TR("Found %d instance.", self.occurrences):format(self.occurrences))
|
||||
if completed and ide.config.search.autohide then self:Hide() end
|
||||
self.oveditor:Destroy()
|
||||
self.oveditor = nil
|
||||
self.toolbar:UpdateWindowUI(wx.wxUPDATE_UI_FROMIDLE)
|
||||
end
|
||||
@@ -823,6 +834,7 @@ function findReplace:createPanel()
|
||||
local replaceCtrl = wx.wxTextCtrl(ctrl, wx.wxID_ANY, replaceHintText,
|
||||
wx.wxDefaultPosition, wx.wxDefaultSize,
|
||||
wx.wxTE_PROCESS_ENTER + wx.wxTE_PROCESS_TAB + wx.wxBORDER_STATIC)
|
||||
self.ac = {[findCtrl:GetId()] = {}, [replaceCtrl:GetId()] = {}, [scope:GetId()] = {}}
|
||||
|
||||
local findSizer = wx.wxBoxSizer(wx.wxHORIZONTAL)
|
||||
findSizer:Add(findCtrl, 1, wx.wxLEFT + wx.wxRIGHT + wx.wxALIGN_LEFT + wx.wxEXPAND + wx.wxFIXED_MINSIZE, 1)
|
||||
@@ -872,10 +884,12 @@ function findReplace:createPanel()
|
||||
if not ide.config.search.autocomplete then return end
|
||||
|
||||
local obj = event:GetEventObject():DynamicCast('wxTextCtrl')
|
||||
local ok, keycode, needac = pcall(
|
||||
function() return obj.lastkeycode, obj.needautocomplete end)
|
||||
obj.needautocomplete = false
|
||||
if not ok or not needac or not keycode then return end
|
||||
local ac = self.ac[obj:GetId()]
|
||||
if not ac then return end
|
||||
|
||||
local keycode, needac = ac.lastkeycode, ac.needautocomplete
|
||||
if needac then ac.needautocomplete = false end
|
||||
if not needac or not keycode then return end
|
||||
|
||||
-- if the last key was Delete or Backspace, don't autocomplete
|
||||
if keycode == wx.WXK_DELETE or keycode == wx.WXK_BACK then return end
|
||||
@@ -904,7 +918,7 @@ function findReplace:createPanel()
|
||||
end
|
||||
-- don't search when used with "infiles", but still trigger autocomplete
|
||||
if self.infiles or self:Find() then
|
||||
event:GetEventObject():DynamicCast('wxTextCtrl').needautocomplete = true
|
||||
self.ac[event:GetEventObject():DynamicCast('wxTextCtrl'):GetId()].needautocomplete = true
|
||||
end
|
||||
end
|
||||
|
||||
@@ -947,7 +961,7 @@ function findReplace:createPanel()
|
||||
local taborder = {findCtrl, replaceCtrl, scope}
|
||||
local function charHandle(event)
|
||||
local keycode = event:GetKeyCode()
|
||||
event:GetEventObject().lastkeycode = keycode
|
||||
self.ac[event:GetEventObject():DynamicCast('wxTextCtrl'):GetId()].lastkeycode = keycode
|
||||
if keycode == wx.WXK_ESCAPE then
|
||||
self:Hide(event:ShiftDown())
|
||||
elseif keycode == wx.WXK_TAB then
|
||||
@@ -974,7 +988,7 @@ function findReplace:createPanel()
|
||||
function(event)
|
||||
event:Skip()
|
||||
local ed = self:GetEditor()
|
||||
if ed then
|
||||
if ed and ed ~= self.oveditor then
|
||||
self.backfocus = {
|
||||
editor = ed,
|
||||
position = (ed:GetSelectionStart() == ed:GetSelectionEnd()
|
||||
@@ -993,7 +1007,7 @@ function findReplace:createPanel()
|
||||
end)
|
||||
replaceCtrl:Connect(wx.wxEVT_COMMAND_TEXT_ENTER, findReplaceNext)
|
||||
replaceCtrl:Connect(wx.wxEVT_COMMAND_TEXT_UPDATED, function(event)
|
||||
event:GetEventObject():DynamicCast('wxTextCtrl').needautocomplete = true
|
||||
self.ac[event:GetEventObject():DynamicCast('wxTextCtrl'):GetId()].needautocomplete = true
|
||||
end)
|
||||
replaceCtrl:Connect(wx.wxEVT_CHAR, charHandle)
|
||||
|
||||
@@ -1100,8 +1114,6 @@ function findReplace:Hide(restorepos)
|
||||
local ctrl = self.panel:FindFocus()
|
||||
if not ctrl or ctrl:GetParent():GetId() ~= self.panel:GetId() then
|
||||
-- if focus outside of the search panel, do nothing
|
||||
elseif self:IsPreview(self.reseditor) then -- there is a preview, go there
|
||||
self.reseditor:SetFocus()
|
||||
elseif self.backfocus and ide:IsValidCtrl(self.backfocus.editor) then
|
||||
local editor = self.backfocus.editor
|
||||
-- restore original position for Shift-Esc or failed search
|
||||
@@ -1109,6 +1121,8 @@ function findReplace:Hide(restorepos)
|
||||
editor:GotoPos(self.backfocus.position)
|
||||
end
|
||||
editor:SetFocus()
|
||||
elseif self:IsPreview(self.reseditor) then -- there is a preview, go there
|
||||
self.reseditor:SetFocus()
|
||||
end
|
||||
|
||||
local mgr = ide:GetUIManager()
|
||||
@@ -1188,6 +1202,7 @@ local package = ide:AddPackage('core.findreplace', {
|
||||
:format(fname, mismatch and "mismatch on line "..mismatch or err))
|
||||
end
|
||||
end
|
||||
oveditor:Destroy() -- destroy the editor to release its memory
|
||||
if report then editor:AppendText("\n"..report) end
|
||||
editor:AppendText(("\n\nUpdated %d %s in %d %s.")
|
||||
:format(
|
||||
|
||||
@@ -44,13 +44,22 @@ local function createFrame()
|
||||
end)
|
||||
|
||||
local menuBar = wx.wxMenuBar()
|
||||
local statusBar = frame:CreateStatusBar(6)
|
||||
local statusBar = frame:CreateStatusBar(5)
|
||||
local section_width = statusBar:GetTextExtent("OVRW")
|
||||
statusBar:SetStatusStyles({wx.wxSB_FLAT, wx.wxSB_FLAT, wx.wxSB_FLAT,
|
||||
wx.wxSB_FLAT, wx.wxSB_FLAT, wx.wxSB_FLAT})
|
||||
statusBar:SetStatusWidths(
|
||||
{-1, section_width*6, section_width, section_width, section_width*5, section_width*4})
|
||||
statusBar:SetStatusStyles({wx.wxSB_FLAT, wx.wxSB_FLAT, wx.wxSB_FLAT, wx.wxSB_FLAT, wx.wxSB_FLAT})
|
||||
statusBar:SetStatusWidths({-1, section_width, section_width, section_width*5, section_width*4})
|
||||
statusBar:SetStatusText(GetIDEString("statuswelcome"))
|
||||
statusBar:Connect(wx.wxEVT_LEFT_DOWN, function (event)
|
||||
local rect = wx.wxRect()
|
||||
statusBar:GetFieldRect(4, rect)
|
||||
if rect:Contains(event:GetPosition()) then -- click on the interpreter
|
||||
local menuitem = ide:FindMenuItem(ID.INTERPRETER)
|
||||
if menuitem then
|
||||
local menu = menuitem:GetSubMenu()
|
||||
if menu then statusBar:PopupMenu(menu) end
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
local mgr = wxaui.wxAuiManager()
|
||||
mgr:SetManagedWindow(frame)
|
||||
@@ -76,8 +85,9 @@ local function menuDropDownPosition(event)
|
||||
end
|
||||
|
||||
local function tbIconSize()
|
||||
-- use large icons by default on OSX and on large screens
|
||||
local iconsize = (tonumber(ide.config.toolbar and ide.config.toolbar.iconsize)
|
||||
or (ide.osname == 'Macintosh' and 24 or 16))
|
||||
or ((ide.osname == 'Macintosh' or wx.wxGetClientDisplayRect():GetWidth() >= 1500) and 24 or 16))
|
||||
if iconsize ~= 24 then iconsize = 16 end
|
||||
return iconsize
|
||||
end
|
||||
@@ -297,6 +307,7 @@ local function addDND(notebook)
|
||||
if winid == ide:GetOutput():GetId()
|
||||
or winid == ide:GetConsole():GetId()
|
||||
or winid == ide:GetProjectTree():GetId()
|
||||
or ide.findReplace:IsPreview(win) -- search results preview
|
||||
then return end
|
||||
|
||||
local mgr = ide.frame.uimgr
|
||||
@@ -420,8 +431,7 @@ local function createBottomNotebook(frame)
|
||||
|
||||
errorlog:Connect(wx.wxEVT_CONTEXT_MENU,
|
||||
function (event)
|
||||
errorlog:PopupMenu(
|
||||
wx.wxMenu {
|
||||
local menu = wx.wxMenu {
|
||||
{ ID_UNDO, TR("&Undo") },
|
||||
{ ID_REDO, TR("&Redo") },
|
||||
{ },
|
||||
@@ -432,7 +442,8 @@ local function createBottomNotebook(frame)
|
||||
{ },
|
||||
{ ID_CLEAROUTPUT, TR("C&lear Output Window") },
|
||||
}
|
||||
)
|
||||
PackageEventHandle("onMenuOutput", menu, errorlog, event)
|
||||
errorlog:PopupMenu(menu)
|
||||
end)
|
||||
|
||||
errorlog:Connect(ID_CLEAROUTPUT, wx.wxEVT_COMMAND_MENU_SELECTED,
|
||||
|
||||
@@ -25,17 +25,6 @@ ID_NEWFILE = NewID()
|
||||
ID_NEWDIRECTORY = NewID()
|
||||
ID_RENAMEFILE = NewID()
|
||||
ID_DELETEFILE = NewID()
|
||||
ID_HIDEEXTENSION = NewID()
|
||||
ID_SETSTARTFILE = NewID()
|
||||
ID_UNSETSTARTFILE = NewID()
|
||||
ID_SHOWEXTENSION = NewID()
|
||||
ID_SHOWEXTENSIONALL = NewID()
|
||||
ID_MAPDIRECTORY = NewID()
|
||||
ID_UNMAPDIRECTORY = NewID()
|
||||
ID_OPENEXTENSION = NewID()
|
||||
ID_COPYFULLPATH = NewID()
|
||||
ID_SHOWLOCATION = NewID()
|
||||
ID_REFRESH = NewID()
|
||||
ID_SAVE = linux and NewID() or wx.wxID_SAVE
|
||||
ID_SAVEAS = linux and NewID() or wx.wxID_SAVEAS
|
||||
ID_SAVEALL = NewID()
|
||||
@@ -143,6 +132,24 @@ ID_REPLACEALLSELECTIONS = NewID()
|
||||
ID_QUICKADDWATCH = NewID()
|
||||
ID_QUICKEVAL = NewID()
|
||||
ID_ADDTOSCRATCHPAD = NewID()
|
||||
-- filetree menu
|
||||
ID_HIDEEXTENSION = NewID()
|
||||
ID_SETSTARTFILE = NewID()
|
||||
ID_UNSETSTARTFILE = NewID()
|
||||
ID_SHOWEXTENSION = NewID()
|
||||
ID_SHOWEXTENSIONALL = NewID()
|
||||
ID_MAPDIRECTORY = NewID()
|
||||
ID_UNMAPDIRECTORY = NewID()
|
||||
ID_OPENEXTENSION = NewID()
|
||||
ID_COPYFULLPATH = NewID()
|
||||
ID_SHOWLOCATION = NewID()
|
||||
ID_REFRESH = NewID()
|
||||
ID_SYMBOLDIRREFRESH = NewID()
|
||||
ID_SYMBOLDIRINDEX = NewID()
|
||||
ID_SYMBOLDIRDISABLE = NewID()
|
||||
ID_SYMBOLDIRENABLE = NewID()
|
||||
-- outline menu
|
||||
ID_OUTLINESORT = NewID()
|
||||
-- search toolbar
|
||||
ID_FINDALL = NewID()
|
||||
ID_FINDREPLACENEXT = NewID()
|
||||
|
||||
@@ -27,8 +27,10 @@ function M.warnings_from_string(src, file)
|
||||
local ast, err, linenum, colnum = LA.ast_from_string(src, file)
|
||||
if not ast and err then return nil, err, linenum, colnum end
|
||||
|
||||
LI.uninspect(ast)
|
||||
if ide.config.staticanalyzer.infervalue then
|
||||
local tokenlist = LA.ast_to_tokenlist(ast, src)
|
||||
LI.clear_cache()
|
||||
LI.inspect(ast, tokenlist, src)
|
||||
LI.mark_related_keywords(ast, tokenlist, src)
|
||||
else
|
||||
@@ -43,7 +45,7 @@ function M.warnings_from_string(src, file)
|
||||
LI.eval_comments, LI.infer_values = ec, iv
|
||||
end
|
||||
|
||||
local globinit = {}
|
||||
local globinit = {arg = true} -- skip `arg` global variable
|
||||
local spec = GetSpec(wx.wxFileName(file):GetExt())
|
||||
for k in pairs(spec and GetApi(spec.apitype or "none").ac.childs or {}) do
|
||||
globinit[k] = true
|
||||
@@ -58,12 +60,15 @@ local function cleanError(err)
|
||||
end
|
||||
|
||||
function AnalyzeFile(file)
|
||||
local warn, err, line, pos = M.warnings_from_string(FileRead(file), file)
|
||||
local src, err = FileRead(file)
|
||||
if not src and err then return nil, TR("Can't open file '%s': %s"):format(file, err) end
|
||||
|
||||
local warn, err, line, pos = M.warnings_from_string(src, file)
|
||||
return warn, cleanError(err), line, pos
|
||||
end
|
||||
|
||||
function AnalyzeString(src)
|
||||
local warn, err, line, pos = M.warnings_from_string(src, "<string>")
|
||||
function AnalyzeString(src, file)
|
||||
local warn, err, line, pos = M.warnings_from_string(src, file or "<string>")
|
||||
return warn, cleanError(err), line, pos
|
||||
end
|
||||
|
||||
@@ -203,10 +208,10 @@ if compilepos then
|
||||
menu:Insert(compilepos+1, ID_ANALYZE, TR("Analyze")..KSC(ID_ANALYZE), TR("Analyze the source code"))
|
||||
end
|
||||
|
||||
local debugger = ide.debugger
|
||||
|
||||
local function analyzeProgram(editor)
|
||||
ClearOutput()
|
||||
-- save all files (if requested) for "infervalue" analysis to keep the changes on disk
|
||||
if ide.config.editor.saveallonrun and ide.config.staticanalyzer.infervalue then SaveAll(true) end
|
||||
if ide:GetLaunchedProcess() == nil and not ide:GetDebugger():IsConnected() then ClearOutput() end
|
||||
DisplayOutput("Analyzing the source code")
|
||||
frame:Update()
|
||||
|
||||
@@ -235,7 +240,4 @@ frame:Connect(ID_ANALYZE, wx.wxEVT_COMMAND_MENU_SELECTED,
|
||||
end
|
||||
end)
|
||||
frame:Connect(ID_ANALYZE, wx.wxEVT_UPDATE_UI,
|
||||
function (event)
|
||||
local editor = GetEditor()
|
||||
event:Enable((debugger.server == nil and debugger.pid == nil) and (editor ~= nil))
|
||||
end)
|
||||
function (event) event:Enable(GetEditor() ~= nil) end)
|
||||
|
||||
@@ -25,88 +25,89 @@ listed below (again, case doesn't matter):
|
||||
|
||||
ide.config.keymap = {
|
||||
-- File menu
|
||||
[ID_NEW] = "Ctrl-N",
|
||||
[ID_OPEN] = "Ctrl-O",
|
||||
[ID_CLOSE] = "Ctrl-W",
|
||||
[ID_SAVE] = "Ctrl-S",
|
||||
[ID_SAVEAS] = "Alt-Shift-S",
|
||||
[ID_SAVEALL] = "",
|
||||
[ID_RECENTFILES] = "",
|
||||
[ID_RECENTFILESPREV] = "Ctrl-,",
|
||||
[ID_RECENTFILESNEXT] = "Ctrl-.",
|
||||
[ID_EXIT] = "Ctrl-Q",
|
||||
[ID_RECENTPROJECTSPREV] = "Ctrl-Shift-<",
|
||||
[ID.NEW] = "Ctrl-N",
|
||||
[ID.OPEN] = "Ctrl-O",
|
||||
[ID.CLOSE] = "Ctrl-W",
|
||||
[ID.SAVE] = "Ctrl-S",
|
||||
[ID.SAVEAS] = "Alt-Shift-S",
|
||||
[ID.SAVEALL] = "",
|
||||
[ID.RECENTFILES] = "",
|
||||
[ID.RECENTFILESPREV] = "Ctrl-,",
|
||||
[ID.RECENTFILESNEXT] = "Ctrl-.",
|
||||
[ID.EXIT] = "Ctrl-Q",
|
||||
[ID.RECENTPROJECTSPREV] = "Ctrl-Shift-<",
|
||||
-- Edit menu
|
||||
[ID_CUT] = "Ctrl-X",
|
||||
[ID_COPY] = "Ctrl-C",
|
||||
[ID_PASTE] = "Ctrl-V",
|
||||
[ID_SELECTALL] = "Ctrl-A",
|
||||
[ID_UNDO] = "Ctrl-Z",
|
||||
[ID_REDO] = "Ctrl-Y",
|
||||
[ID_SHOWTOOLTIP] = "Ctrl-T",
|
||||
[ID_AUTOCOMPLETE] = "Ctrl-K",
|
||||
[ID_AUTOCOMPLETEENABLE] = "",
|
||||
[ID_COMMENT] = "Ctrl-U",
|
||||
[ID_FOLD] = "F12",
|
||||
[ID_CLEARDYNAMICWORDS] = "",
|
||||
[ID_REINDENT] = "Ctrl-I",
|
||||
[ID_BOOKMARKTOGGLE] = "Ctrl-F2",
|
||||
[ID_BOOKMARKNEXT] = "F2",
|
||||
[ID_BOOKMARKPREV] = "Shift-F2",
|
||||
[ID_NAVIGATETOFILE] = "Ctrl-P",
|
||||
[ID_NAVIGATETOLINE] = "Ctrl-G",
|
||||
[ID_NAVIGATETOSYMBOL] = "Ctrl-B",
|
||||
[ID_NAVIGATETOMETHOD] = "Ctrl-;",
|
||||
[ID.CUT] = "Ctrl-X",
|
||||
[ID.COPY] = "Ctrl-C",
|
||||
[ID.PASTE] = "Ctrl-V",
|
||||
[ID.SELECTALL] = "Ctrl-A",
|
||||
[ID.UNDO] = "Ctrl-Z",
|
||||
[ID.REDO] = "Ctrl-Y",
|
||||
[ID.SHOWTOOLTIP] = "Ctrl-T",
|
||||
[ID.AUTOCOMPLETE] = "Ctrl-K",
|
||||
[ID.AUTOCOMPLETEENABLE] = "",
|
||||
[ID.COMMENT] = "Ctrl-U",
|
||||
[ID.FOLD] = "F12",
|
||||
[ID.CLEARDYNAMICWORDS] = "",
|
||||
[ID.REINDENT] = "Ctrl-I",
|
||||
[ID.BOOKMARKTOGGLE] = "Ctrl-F2",
|
||||
[ID.BOOKMARKNEXT] = "F2",
|
||||
[ID.BOOKMARKPREV] = "Shift-F2",
|
||||
[ID.NAVIGATETOFILE] = "Ctrl-P",
|
||||
[ID.NAVIGATETOLINE] = "Ctrl-G",
|
||||
[ID.NAVIGATETOSYMBOL] = "Ctrl-B",
|
||||
[ID.NAVIGATETOMETHOD] = "Ctrl-;",
|
||||
-- Search menu
|
||||
[ID_FIND] = "Ctrl-F",
|
||||
[ID_FINDNEXT] = "F3",
|
||||
[ID_FINDPREV] = "Shift-F3",
|
||||
[ID_FINDSELECTNEXT] = "Ctrl-F3",
|
||||
[ID_FINDSELECTPREV] = "Ctrl-Shift-F3",
|
||||
[ID_REPLACE] = "Ctrl-R",
|
||||
[ID_FINDINFILES] = "Ctrl-Shift-F",
|
||||
[ID_REPLACEINFILES] = "Ctrl-Shift-R",
|
||||
[ID_SORT] = "",
|
||||
[ID.FIND] = "Ctrl-F",
|
||||
[ID.FINDNEXT] = "F3",
|
||||
[ID.FINDPREV] = "Shift-F3",
|
||||
[ID.FINDSELECTNEXT] = "Ctrl-F3",
|
||||
[ID.FINDSELECTPREV] = "Ctrl-Shift-F3",
|
||||
[ID.REPLACE] = "Ctrl-R",
|
||||
[ID.FINDINFILES] = "Ctrl-Shift-F",
|
||||
[ID.REPLACEINFILES] = "Ctrl-Shift-R",
|
||||
[ID.SORT] = "",
|
||||
-- View menu
|
||||
[ID_VIEWFILETREE] = "Ctrl-Shift-P",
|
||||
[ID_VIEWOUTPUT] = "Ctrl-Shift-O",
|
||||
[ID_VIEWWATCHWINDOW] = "Ctrl-Shift-W",
|
||||
[ID_VIEWCALLSTACK] = "Ctrl-Shift-S",
|
||||
[ID_VIEWDEFAULTLAYOUT] = "",
|
||||
[ID_VIEWFULLSCREEN] = "Ctrl-Shift-A",
|
||||
[ID_ZOOMRESET] = "Ctrl-0",
|
||||
[ID_ZOOMIN] = "Ctrl-+",
|
||||
[ID_ZOOMOUT] = "Ctrl--",
|
||||
[ID.VIEWFILETREE] = "Ctrl-Shift-P",
|
||||
[ID.VIEWOUTPUT] = "Ctrl-Shift-O",
|
||||
[ID.VIEWWATCHWINDOW] = "Ctrl-Shift-W",
|
||||
[ID.VIEWCALLSTACK] = "Ctrl-Shift-S",
|
||||
[ID.VIEWDEFAULTLAYOUT] = "",
|
||||
[ID.VIEWFULLSCREEN] = "Ctrl-Shift-A",
|
||||
[ID.ZOOMRESET] = "Ctrl-0",
|
||||
[ID.ZOOMIN] = "Ctrl-+",
|
||||
[ID.ZOOMOUT] = "Ctrl--",
|
||||
-- Project menu
|
||||
[ID_RUN] = "F6",
|
||||
[ID_RUNNOW] = "Ctrl-F6",
|
||||
[ID_COMPILE] = "F7",
|
||||
[ID_ANALYZE] = "Shift-F7",
|
||||
[ID_STARTDEBUG] = "F5",
|
||||
[ID_ATTACHDEBUG] = "",
|
||||
[ID_STOPDEBUG] = "Shift-F5",
|
||||
[ID_STEP] = "F10",
|
||||
[ID_STEPOVER] = "Shift-F10",
|
||||
[ID_STEPOUT] = "Ctrl-F10",
|
||||
[ID_RUNTO] = "Ctrl-Shift-F10",
|
||||
[ID_TRACE] = "",
|
||||
[ID_BREAK] = "Shift-F9",
|
||||
[ID_TOGGLEBREAKPOINT] = "F9",
|
||||
[ID_CLEAROUTPUT] = "",
|
||||
[ID_INTERPRETER] = "",
|
||||
[ID_PROJECTDIR] = "",
|
||||
[ID.RUN] = "F6",
|
||||
[ID.RUNNOW] = "Ctrl-F6",
|
||||
[ID.COMPILE] = "F7",
|
||||
[ID.ANALYZE] = "Shift-F7",
|
||||
[ID.STARTDEBUG] = "F5",
|
||||
[ID.ATTACHDEBUG] = "",
|
||||
[ID.DETACHDEBUG] = "",
|
||||
[ID.STOPDEBUG] = "Shift-F5",
|
||||
[ID.STEP] = "F10",
|
||||
[ID.STEPOVER] = "Shift-F10",
|
||||
[ID.STEPOUT] = "Ctrl-F10",
|
||||
[ID.RUNTO] = "Ctrl-Shift-F10",
|
||||
[ID.TRACE] = "",
|
||||
[ID.BREAK] = "Shift-F9",
|
||||
[ID.TOGGLEBREAKPOINT] = "F9",
|
||||
[ID.CLEAROUTPUT] = "",
|
||||
[ID.INTERPRETER] = "",
|
||||
[ID.PROJECTDIR] = "",
|
||||
-- Help menu
|
||||
[ID_ABOUT] = "F1",
|
||||
[ID.ABOUT] = "F1",
|
||||
-- Watch window menu items
|
||||
[ID_ADDWATCH] = "Ins",
|
||||
[ID_EDITWATCH] = "F2",
|
||||
[ID_DELETEWATCH] = "Del",
|
||||
[ID.ADDWATCH] = "Ins",
|
||||
[ID.EDITWATCH] = "F2",
|
||||
[ID.DELETEWATCH] = "Del",
|
||||
-- Editor popup menu items
|
||||
[ID_QUICKADDWATCH] = "",
|
||||
[ID_QUICKEVAL] = "",
|
||||
[ID.QUICKADDWATCH] = "",
|
||||
[ID.QUICKEVAL] = "",
|
||||
-- Filetree popup menu items
|
||||
[ID_RENAMEFILE] = "F2",
|
||||
[ID_DELETEFILE] = "Del",
|
||||
[ID.RENAMEFILE] = "F2",
|
||||
[ID.DELETEFILE] = "Del",
|
||||
}
|
||||
|
||||
function KSC(id, default)
|
||||
|
||||
@@ -14,13 +14,13 @@ local MD_MARK_BOXD = '|' -- highlight
|
||||
local MD_MARK_MARK = ' ' -- separator
|
||||
local MD_LINK_NEWWINDOW = '+' -- indicator to open a new window for links
|
||||
local markup = {
|
||||
[MD_MARK_BOXD] = {st=25, fg={127,0,127}, b=true},
|
||||
[MD_MARK_CODE] = {st=26, fg={127,127,127}, fs=10},
|
||||
[MD_MARK_HEAD] = {st=27, fn="Lucida Console", b=true},
|
||||
[MD_MARK_LINK] = {st=28, u=true, hs={32,32,127}},
|
||||
[MD_MARK_BOLD] = {st=29, b=true},
|
||||
[MD_MARK_ITAL] = {st=30, i=true},
|
||||
[MD_MARK_MARK] = {st=31, v=false},
|
||||
[MD_MARK_BOXD] = {st=ide:AddIndicator("markup.boxd", 25), fg={127,0,127}, b=true},
|
||||
[MD_MARK_CODE] = {st=ide:AddIndicator("markup.code", 26), fg={127,127,127}, fs=10},
|
||||
[MD_MARK_HEAD] = {st=ide:AddIndicator("markup.head", 27), fn="Lucida Console", b=true},
|
||||
[MD_MARK_LINK] = {st=ide:AddIndicator("markup.link", 28), u=true, hs={32,32,127}},
|
||||
[MD_MARK_BOLD] = {st=ide:AddIndicator("markup.bold", 29), b=true},
|
||||
[MD_MARK_ITAL] = {st=ide:AddIndicator("markup.ital", 30), i=true},
|
||||
[MD_MARK_MARK] = {st=ide:AddIndicator("markup.mark", 31), v=false},
|
||||
}
|
||||
|
||||
-- allow other editor features to recognize this special markup
|
||||
@@ -99,7 +99,7 @@ local function ismarkup (tx)
|
||||
local marksep = "[%s!%?%.,;:%(%)]"
|
||||
while true do
|
||||
-- find a separator first
|
||||
local st,_,sep,more = string.find(tx, "(["..MD_MARK_PTRN.."]+)(.)", start)
|
||||
local st,_,sep,more = string.find(tx, "(["..MD_MARK_PTRN.."])(.)", start)
|
||||
if not st then return end
|
||||
|
||||
-- check if this is a first character of a multi-character separator
|
||||
|
||||
@@ -46,20 +46,36 @@ menuBar:Append(editMenu, TR("&Edit"))
|
||||
|
||||
editMenu:Check(ID_AUTOCOMPLETEENABLE, ide.config.autocomplete)
|
||||
|
||||
local function getCtrlWithFocus(edType)
|
||||
local ctrl = ide:GetMainFrame():FindFocus()
|
||||
return ctrl and ctrl:GetClassInfo():GetClassName() == edType and ctrl:DynamicCast(edType) or nil
|
||||
end
|
||||
|
||||
local function onUpdateUIEditorInFocus(event)
|
||||
event:Enable(GetEditorWithFocus(GetEditor()) ~= nil)
|
||||
end
|
||||
|
||||
local function onUpdateUIEditMenu(event)
|
||||
local menu_id = event:GetId()
|
||||
local editor = GetEditorWithFocus()
|
||||
if editor == nil then event:Enable(false); return end
|
||||
if editor == nil then
|
||||
local editor = getCtrlWithFocus("wxTextCtrl")
|
||||
event:Enable(editor and (
|
||||
menu_id == ID_PASTE and editor:CanPaste() or
|
||||
menu_id == ID_UNDO and editor:CanUndo() or
|
||||
menu_id == ID_REDO and editor:CanRedo() or
|
||||
menu_id == ID_CUT and editor:CanCut() or
|
||||
menu_id == ID_COPY and editor:CanCopy() or
|
||||
menu_id == ID_SELECTALL and true
|
||||
) or false)
|
||||
return
|
||||
end
|
||||
|
||||
local alwaysOn = {
|
||||
[ID_SELECTALL] = true,
|
||||
-- allow Cut and Copy commands as these work on a line if no selection
|
||||
[ID_COPY] = true, [ID_CUT] = true,
|
||||
}
|
||||
local menu_id = event:GetId()
|
||||
local enable =
|
||||
-- pasting is allowed when the document is not read-only and the selection
|
||||
-- (if any) has no protected text; since pasting handles protected text,
|
||||
@@ -72,14 +88,26 @@ local function onUpdateUIEditMenu(event)
|
||||
end
|
||||
|
||||
local function onEditMenu(event)
|
||||
local menu_id = event:GetId()
|
||||
local editor = GetEditorWithFocus()
|
||||
if editor == nil then event:Skip(); return end
|
||||
if editor == nil then
|
||||
local editor = getCtrlWithFocus("wxTextCtrl")
|
||||
if not editor or not (
|
||||
menu_id == ID_PASTE and editor:Paste() or
|
||||
menu_id == ID_UNDO and editor:Undo() or
|
||||
menu_id == ID_REDO and editor:Redo() or
|
||||
menu_id == ID_CUT and editor:Cut() or
|
||||
menu_id == ID_COPY and editor:Copy() or
|
||||
menu_id == ID_SELECTALL and editor:SetSelection(-1, -1) or
|
||||
true
|
||||
) then event:Skip() end
|
||||
return
|
||||
end
|
||||
|
||||
if PackageEventHandle("onEditorAction", editor, event) == false then
|
||||
return
|
||||
end
|
||||
|
||||
local menu_id = event:GetId()
|
||||
local copytext
|
||||
if (menu_id == ID_CUT or menu_id == ID_COPY)
|
||||
and ide.wxver >= "2.9.5" and editor:GetSelections() > 1 then
|
||||
@@ -139,7 +167,7 @@ frame:Connect(ID_COMMENT, wx.wxEVT_UPDATE_UI,
|
||||
|
||||
local function generateConfigMessage(type)
|
||||
return ([==[--[[--
|
||||
Use this file to specify %s preferences.
|
||||
Use this file to specify **%s** preferences.
|
||||
Review [examples](+%s) or check [online documentation](%s) for details.
|
||||
--]]--
|
||||
]==])
|
||||
@@ -150,14 +178,14 @@ end
|
||||
frame:Connect(ID_PREFERENCESSYSTEM, wx.wxEVT_COMMAND_MENU_SELECTED,
|
||||
function ()
|
||||
local editor = LoadFile(ide.configs.system)
|
||||
if editor and #editor:GetText() == 0 then
|
||||
if editor and editor:GetLength() == 0 then
|
||||
editor:AddText(generateConfigMessage("System")) end
|
||||
end)
|
||||
|
||||
frame:Connect(ID_PREFERENCESUSER, wx.wxEVT_COMMAND_MENU_SELECTED,
|
||||
function ()
|
||||
local editor = LoadFile(ide.configs.user)
|
||||
if editor and #editor:GetText() == 0 then
|
||||
if editor and editor:GetLength() == 0 then
|
||||
editor:AddText(generateConfigMessage("User")) end
|
||||
end)
|
||||
frame:Connect(ID_PREFERENCESUSER, wx.wxEVT_UPDATE_UI,
|
||||
@@ -218,14 +246,13 @@ frame:Connect(ID_COMMENT, wx.wxEVT_COMMAND_MENU_SELECTED,
|
||||
-- go last to first as selection positions we captured may be affected
|
||||
-- by text changes
|
||||
for line = eline, sline, -1 do
|
||||
local pos = sel and (sline == eline or rect)
|
||||
and ssel-editor:PositionFromLine(sline)+1 or 1
|
||||
local pos = sel and (sline == eline or rect) and ssel-editor:PositionFromLine(sline)+1 or 1
|
||||
local text = editor:GetLine(line)
|
||||
local validline = (line == sline or line < eline or esel-editor:PositionFromLine(line) > 0)
|
||||
local _, cpos = text:find("^%s*"..qlc, pos)
|
||||
if not comment and cpos then
|
||||
if not comment and cpos and validline then
|
||||
editor:DeleteRange(cpos-#lc+editor:PositionFromLine(line), #lc)
|
||||
elseif comment and text:find("%S")
|
||||
and (line == sline or line < eline or esel-editor:PositionFromLine(line) > 0) then
|
||||
elseif comment and text:find("%S") and validline then
|
||||
editor:SetTargetStart(pos+editor:PositionFromLine(line)-1)
|
||||
editor:SetTargetEnd(editor:GetTargetStart())
|
||||
editor:ReplaceTarget(lc)
|
||||
|
||||
@@ -71,7 +71,7 @@ local function selectInterpreter(id)
|
||||
|
||||
DebuggerShutdown()
|
||||
|
||||
ide.frame.statusBar:SetStatusText(ide.interpreter.name or "", 5)
|
||||
ide:SetStatus(ide.interpreter.name or "", 4)
|
||||
if changed then ReloadLuaAPI() end
|
||||
end
|
||||
|
||||
@@ -116,8 +116,8 @@ function ProjectUpdateInterpreters()
|
||||
local id = (
|
||||
-- interpreter is set and is (still) on the list of known interpreters
|
||||
IDget("debug.interpreter."
|
||||
..(ide.interpreter and ide.interpreters[ide.interpreter.fname]
|
||||
and ide.interpreter.fname or ide.config.interpreter)) or
|
||||
..(ide.interpreter and ide.interpreters[ide.interpreter.fname] and ide.interpreter.fname
|
||||
or ide.config.interpreter or ide.config.default.interpreter)) or
|
||||
-- otherwise use default interpreter
|
||||
ID("debug.interpreter."..ide.config.default.interpreter)
|
||||
)
|
||||
@@ -137,7 +137,7 @@ function ProjectUpdateProjectDir(projdir,skiptree)
|
||||
projdir = dir:GetPath(wx.wxPATH_GET_VOLUME) -- no trailing slash
|
||||
|
||||
ide.config.path.projectdir = projdir ~= "" and projdir or nil
|
||||
frame:SetStatusText(projdir)
|
||||
ide:SetStatus(projdir)
|
||||
frame:SetTitle(ExpandPlaceholders(ide.config.format.apptitle))
|
||||
if (not skiptree) then ide.filetree:updateProjectDir(projdir) end
|
||||
return true
|
||||
@@ -184,6 +184,7 @@ frame:Connect(ID_PROJECTDIRFROMFILE, wx.wxEVT_UPDATE_UI,
|
||||
|
||||
local function getNameToRun(skipcheck)
|
||||
local editor = GetEditor()
|
||||
if not editor then return end
|
||||
|
||||
-- test compile it before we run it, if successful then ask to save
|
||||
-- only compile if lua api
|
||||
@@ -196,18 +197,19 @@ local function getNameToRun(skipcheck)
|
||||
end
|
||||
|
||||
local doc = ide:GetDocument(editor)
|
||||
if not doc:GetFilePath() then doc:SetModified(true) end
|
||||
local name = ide:GetProjectStartFile() or doc:GetFilePath()
|
||||
if not name then doc:SetModified(true) end
|
||||
if not SaveIfModified(editor) then return end
|
||||
if ide.config.editor.saveallonrun then SaveAll(true) end
|
||||
|
||||
return wx.wxFileName(ide:GetProjectStartFile() or doc:GetFilePath())
|
||||
return wx.wxFileName(name or doc:GetFilePath())
|
||||
end
|
||||
|
||||
function ActivateOutput()
|
||||
if not ide.config.activateoutput then return end
|
||||
-- show output/errorlog pane
|
||||
if not uimgr:GetPane("bottomnotebook"):IsShown() then
|
||||
uimgr:GetPane("bottomnotebook"):Show(true)
|
||||
if not uimgr:GetPane(bottomnotebook):IsShown() then
|
||||
uimgr:GetPane(bottomnotebook):Show(true)
|
||||
uimgr:Update()
|
||||
end
|
||||
-- activate output/errorlog window
|
||||
@@ -275,15 +277,13 @@ frame:Connect(ID_TOGGLEBREAKPOINT, wx.wxEVT_UPDATE_UI,
|
||||
|
||||
frame:Connect(ID_COMPILE, wx.wxEVT_COMMAND_MENU_SELECTED,
|
||||
function ()
|
||||
local editor = GetEditor()
|
||||
ActivateOutput()
|
||||
CompileProgram(editor)
|
||||
CompileProgram(GetEditor(), {
|
||||
keepoutput = ide:GetLaunchedProcess() ~= nil or ide:GetDebugger():IsConnected()
|
||||
})
|
||||
end)
|
||||
frame:Connect(ID_COMPILE, wx.wxEVT_UPDATE_UI,
|
||||
function (event)
|
||||
local editor = GetEditor()
|
||||
event:Enable((debugger.server == nil and debugger.pid == nil) and (editor ~= nil))
|
||||
end)
|
||||
function (event) event:Enable(GetEditor() ~= nil) end)
|
||||
|
||||
frame:Connect(ID_RUN, wx.wxEVT_COMMAND_MENU_SELECTED, function () ProjectRun() end)
|
||||
frame:Connect(ID_RUN, wx.wxEVT_UPDATE_UI,
|
||||
@@ -363,8 +363,7 @@ frame:Connect(ID_DETACHDEBUG, wx.wxEVT_COMMAND_MENU_SELECTED,
|
||||
function () debugger.detach() end)
|
||||
frame:Connect(ID_DETACHDEBUG, wx.wxEVT_UPDATE_UI,
|
||||
function (event)
|
||||
event:Enable((debugger.server ~= nil) and (not debugger.running)
|
||||
and (not debugger.scratchpad))
|
||||
event:Enable((debugger.server ~= nil) and (not debugger.scratchpad))
|
||||
end)
|
||||
|
||||
frame:Connect(ID_RUNTO, wx.wxEVT_COMMAND_MENU_SELECTED,
|
||||
@@ -442,13 +441,3 @@ frame:Connect(ID_COMMANDLINEPARAMETERS, wx.wxEVT_UPDATE_UI,
|
||||
function (event)
|
||||
event:Enable(ide.interpreter and ide.interpreter.takeparameters and true or false)
|
||||
end)
|
||||
|
||||
frame:Connect(wx.wxEVT_IDLE,
|
||||
function(event)
|
||||
if (debugger.update) then debugger.update() end
|
||||
if (debugger.scratchpad) then DebuggerRefreshScratchpad() end
|
||||
if IndicateIfNeeded() then event:RequestMore(true) end
|
||||
PackageEventHandleOnce("onIdleOnce", event)
|
||||
PackageEventHandle("onIdle", event)
|
||||
event:Skip() -- let other EVT_IDLE handlers to work on the event
|
||||
end)
|
||||
|
||||
@@ -114,6 +114,11 @@ local markername = "commandbar.background"
|
||||
local mac = ide.osname == 'Macintosh'
|
||||
local win = ide.osname == 'Windows'
|
||||
local special = {SYMBOL = '@', LINE = ':', METHOD = ';'}
|
||||
local tabsep = "\0"
|
||||
local function name2index(name)
|
||||
local p = name:find(tabsep)
|
||||
return p and tonumber(name:sub(p + #tabsep)) or nil
|
||||
end
|
||||
local function navigateTo(default, selected)
|
||||
local styles = ide.config.styles
|
||||
local marker = ide:AddMarker(markername,
|
||||
@@ -121,6 +126,7 @@ local function navigateTo(default, selected)
|
||||
|
||||
local nb = ide:GetEditorNotebook()
|
||||
local selection = nb:GetSelection()
|
||||
local maxitems = ide.config.commandbar.maxitems
|
||||
local files, preview, origline, functions, methods
|
||||
|
||||
local function markLine(ed, toline)
|
||||
@@ -151,10 +157,22 @@ local function navigateTo(default, selected)
|
||||
local fline, sline, tabindex = unpack(t or {})
|
||||
|
||||
-- jump to symbol; tabindex has the position of the symbol
|
||||
if text and text:find(special.SYMBOL) and tabindex then
|
||||
ed:GotoPos(tabindex-1)
|
||||
ed:EnsureVisibleEnforcePolicy(ed:LineFromPosition(tabindex-1))
|
||||
ed:SetFocus() -- in case the focus is on some other panel
|
||||
if text and text:find(special.SYMBOL) then
|
||||
if sline and tabindex then
|
||||
local index = name2index(sline)
|
||||
local editor = index and nb:GetPage(index):DynamicCast("wxStyledTextCtrl")
|
||||
if not editor then
|
||||
local doc = ide:FindDocument(sline)
|
||||
-- reload the file (including the preview to refresh its symbols in the outline)
|
||||
editor = LoadFile(sline, (not doc or doc:GetTabIndex() == pindex) and preview or nil)
|
||||
end
|
||||
if editor then
|
||||
if pindex and pindex ~= ide:GetDocument(editor):GetTabIndex() then ClosePage(pindex) end
|
||||
editor:SetFocus() -- in case the focus is on some other panel
|
||||
editor:GotoPos(tabindex-1)
|
||||
editor:EnsureVisibleEnforcePolicy(editor:LineFromPosition(tabindex-1))
|
||||
end
|
||||
end
|
||||
-- insert selected method
|
||||
elseif text and text:find('^%s*'..special.METHOD) then
|
||||
if ed then -- clean up text and insert at the current location
|
||||
@@ -188,8 +206,11 @@ local function navigateTo(default, selected)
|
||||
-- 3. otherwise use "text"
|
||||
local file = (wx.wxGetKeyState(wx.WXK_CONTROL) and text) or sline or text
|
||||
local fullPath = MergeFullPath(ide:GetProject(), file)
|
||||
if not LoadFile(fullPath, preview or nil)
|
||||
and not ProjectUpdateProjectDir(fullPath) then
|
||||
local doc = ide:FindDocument(fullPath)
|
||||
-- if the document is already opened (not in the preview)
|
||||
-- or can't be opened as a file or folder, then close the preview
|
||||
if doc and doc.index ~= pindex
|
||||
or not LoadFile(fullPath, preview or nil) and not ProjectUpdateProjectDir(fullPath) then
|
||||
if pindex then ClosePage(pindex) end
|
||||
end
|
||||
end
|
||||
@@ -221,24 +242,45 @@ local function navigateTo(default, selected)
|
||||
-- reset cached methods if no method search
|
||||
if text and not text:find(special.METHOD) then methods = nil end
|
||||
|
||||
if ed and text and text:find(special.SYMBOL) then
|
||||
if text and text:find(special.SYMBOL) then
|
||||
local file, symbol = text:match('^(.*)'..special.SYMBOL..'(.*)')
|
||||
if not functions then
|
||||
local funcs, nums = OutlineFunctions(ed), {}
|
||||
local nums, paths = {}, {}
|
||||
functions = {pos = {}, src = {}}
|
||||
for _, func in ipairs(funcs) do
|
||||
table.insert(functions, func.name)
|
||||
nums[func.name] = (nums[func.name] or 0) + 1
|
||||
local num = nums[func.name]
|
||||
local line = ed:LineFromPosition(func.pos-1)
|
||||
functions.src[func.name..num] = ed:GetLine(line):gsub("^%s+","")
|
||||
functions.pos[func.name..num] = func.pos
|
||||
|
||||
local function populateSymbols(path, symbols)
|
||||
for _, func in ipairs(symbols) do
|
||||
table.insert(functions, func.name)
|
||||
nums[func.name] = (nums[func.name] or 0) + 1
|
||||
local num = nums[func.name]
|
||||
functions.src[func.name..num] = path
|
||||
functions.pos[func.name..num] = func.pos
|
||||
end
|
||||
end
|
||||
|
||||
local currentonly = #file > 0 and ed
|
||||
local outline = ide:GetOutline()
|
||||
for _, doc in pairs(currentonly and {ide:GetDocument(ed)} or ide:GetDocuments()) do
|
||||
local path, editor = doc:GetFilePath(), doc:GetEditor()
|
||||
if path then paths[path] = true end
|
||||
populateSymbols(path or doc:GetFileName()..tabsep..doc:GetTabIndex(), outline:GetEditorSymbols(editor))
|
||||
end
|
||||
|
||||
-- now add all other files in the project
|
||||
if not currentonly and ide.config.commandbar.showallsymbols then
|
||||
local n = 0
|
||||
outline:RefreshSymbols(projdir, function(path)
|
||||
local symbols = outline:GetFileSymbols(path)
|
||||
if not paths[path] and symbols then populateSymbols(path, symbols) end
|
||||
if not symbols then n = n + 1 end
|
||||
end)
|
||||
if n > 0 then ide:SetStatusFor(TR("Queued %d files to index."):format(n)) end
|
||||
end
|
||||
end
|
||||
local symbol = text:match(special.SYMBOL..'(.*)')
|
||||
local nums = {}
|
||||
if #symbol > 0 then
|
||||
local topscore
|
||||
for _, item in ipairs(CommandBarScoreItems(functions, symbol, 100)) do
|
||||
for _, item in ipairs(CommandBarScoreItems(functions, symbol, maxitems)) do
|
||||
local func, score = unpack(item)
|
||||
topscore = topscore or score
|
||||
nums[func] = (nums[func] or 0) + 1
|
||||
@@ -250,6 +292,7 @@ local function navigateTo(default, selected)
|
||||
end
|
||||
else
|
||||
for n, name in ipairs(functions) do
|
||||
if n > maxitems then break end
|
||||
nums[name] = (nums[name] or 0) + 1
|
||||
local num = nums[name]
|
||||
lines[n] = {name, functions.src[name..num], functions.pos[name..num]}
|
||||
@@ -275,7 +318,7 @@ local function navigateTo(default, selected)
|
||||
local method = text:match(special.METHOD..'(.*)')
|
||||
if #method > 0 then
|
||||
local topscore
|
||||
for _, item in ipairs(CommandBarScoreItems(methods, method, 100)) do
|
||||
for _, item in ipairs(CommandBarScoreItems(methods, method, maxitems)) do
|
||||
local method, score = unpack(item)
|
||||
topscore = topscore or score
|
||||
if score > topscore / 4 and score > 1 then
|
||||
@@ -283,7 +326,7 @@ local function navigateTo(default, selected)
|
||||
end
|
||||
end
|
||||
end
|
||||
elseif text and text:find(special.LINE..'(%d+)%s*$') then
|
||||
elseif text and text:find(special.LINE..'(%d*)%s*$') then
|
||||
local toline = tonumber(text:match(special.LINE..'(%d+)'))
|
||||
if toline and ed then markLine(ed, toline) end
|
||||
elseif text and #text > 0 and projdir and #projdir > 0 then
|
||||
@@ -291,7 +334,7 @@ local function navigateTo(default, selected)
|
||||
files = files or FileSysGetRecursive(projdir, true, "*",
|
||||
{sort = false, path = false, folder = false, skipbinary = true})
|
||||
local topscore
|
||||
for _, item in ipairs(CommandBarScoreItems(files, text, 100)) do
|
||||
for _, item in ipairs(CommandBarScoreItems(files, text, maxitems)) do
|
||||
local file, score = unpack(item)
|
||||
topscore = topscore or score
|
||||
if score > topscore / 4 and score > 1 then
|
||||
@@ -318,10 +361,9 @@ local function navigateTo(default, selected)
|
||||
end,
|
||||
onSelection = function(t, text)
|
||||
local _, file, tabindex = unpack(t)
|
||||
local pos
|
||||
if text and text:find(special.SYMBOL) then
|
||||
local ed = ide:GetEditor()
|
||||
if ed then markLine(ed, ed:LineFromPosition(tabindex-1)+1) end
|
||||
return
|
||||
pos, tabindex = tabindex, name2index(file)
|
||||
elseif text and text:find(special.METHOD) then
|
||||
return
|
||||
end
|
||||
@@ -356,6 +398,11 @@ local function navigateTo(default, selected)
|
||||
end
|
||||
end
|
||||
nb:SetEvtHandlerEnabled(true)
|
||||
|
||||
if text and text:find(special.SYMBOL) then
|
||||
local ed = ide:GetEditor()
|
||||
if ed then markLine(ed, ed:LineFromPosition(pos-1)+1) end
|
||||
end
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
@@ -2,10 +2,19 @@
|
||||
|
||||
local ide = ide
|
||||
ide.outline = {
|
||||
outlineCtrl = nil,
|
||||
imglist = ide:CreateImageList("OUTLINE", "FILE-NORMAL", "VALUE-LCALL",
|
||||
"VALUE-GCALL", "VALUE-ACALL", "VALUE-SCALL", "VALUE-MCALL"),
|
||||
settings = {
|
||||
symbols = {},
|
||||
ignoredirs = {},
|
||||
},
|
||||
needsaving = false,
|
||||
indexqueue = {[0] = {}},
|
||||
indexpurged = false, -- flag that the index has been purged from old records; once per session
|
||||
}
|
||||
|
||||
local outline = ide.outline
|
||||
local image = { FILE = 0, LFUNCTION = 1, GFUNCTION = 2, AFUNCTION = 3,
|
||||
SMETHOD = 4, METHOD = 5,
|
||||
}
|
||||
@@ -20,22 +29,59 @@ local function setData(ctrl, item, value)
|
||||
end
|
||||
end
|
||||
|
||||
local function resetOutlineTimer()
|
||||
if ide.config.outlineinactivity then
|
||||
ide.timers.outline:Start(ide.config.outlineinactivity*1000, wx.wxTIMER_ONE_SHOT)
|
||||
end
|
||||
end
|
||||
|
||||
local function resetIndexTimer(interval)
|
||||
if ide.config.symbolindexinactivity and not ide.timers.symbolindex:IsRunning() then
|
||||
ide.timers.symbolindex:Start(interval or ide.config.symbolindexinactivity*1000, wx.wxTIMER_ONE_SHOT)
|
||||
end
|
||||
end
|
||||
|
||||
local function outlineRefresh(editor, force)
|
||||
if not editor then return end
|
||||
local tokens = editor:GetTokenList()
|
||||
local text = editor:GetText()
|
||||
local sep = editor.spec.sep
|
||||
local varname = "([%w_][%w_"..q(sep:sub(1,1)).."]*)"
|
||||
local funcs = {}
|
||||
local funcs = {updated = TimeGet()}
|
||||
local var = {}
|
||||
local outcfg = ide.config.outline or {}
|
||||
local scopes = {}
|
||||
local funcnum = 0
|
||||
local SCOPENUM, FUNCNUM = 1, 2
|
||||
local text
|
||||
for _, token in ipairs(tokens) do
|
||||
local op = token[1]
|
||||
if op == 'Var' or op == 'Id' then
|
||||
var = {name = token.name, fpos = token.fpos, global = token.context[token.name] == nil}
|
||||
elseif outcfg.showcurrentfunction and op == 'Scope' then
|
||||
local fundepth = #scopes
|
||||
if token.name == '(' then -- a function starts a new scope
|
||||
funcnum = funcnum + 1 -- increment function count
|
||||
local nested = fundepth == 0 or scopes[fundepth][SCOPENUM] > 0
|
||||
scopes[fundepth + (nested and 1 or 0)] = {1, funcnum}
|
||||
elseif fundepth > 0 then
|
||||
scopes[fundepth][SCOPENUM] = scopes[fundepth][SCOPENUM] + 1
|
||||
end
|
||||
elseif outcfg.showcurrentfunction and op == 'EndScope' then
|
||||
local fundepth = #scopes
|
||||
if fundepth > 0 and scopes[fundepth][SCOPENUM] > 0 then
|
||||
scopes[fundepth][SCOPENUM] = scopes[fundepth][SCOPENUM] - 1
|
||||
if scopes[fundepth][SCOPENUM] == 0 then
|
||||
local funcnum = scopes[fundepth][FUNCNUM]
|
||||
if funcs[funcnum] then
|
||||
funcs[funcnum].poe = token.fpos + (token.name and #token.name or 0)
|
||||
end
|
||||
table.remove(scopes)
|
||||
end
|
||||
end
|
||||
elseif op == 'Function' then
|
||||
local depth = token.context['function'] or 1
|
||||
local name, pos = token.name, token.fpos
|
||||
text = text or editor:GetText()
|
||||
local _, _, rname, params = text:find('([^%(]*)(%b())', pos)
|
||||
if name and rname:find(token.name, 1, true) ~= 1 then
|
||||
name = rname:gsub("%s+$","")
|
||||
@@ -59,18 +105,20 @@ local function outlineRefresh(editor, force)
|
||||
or var.name and name:find('^'..var.name..'['..q(sep)..']') then
|
||||
ftype = var.global and image.GFUNCTION or image.LFUNCTION
|
||||
end
|
||||
if name or outcfg.showanonymous then
|
||||
funcs[#funcs+1] = {
|
||||
name = (name or outcfg.showanonymous)..params,
|
||||
depth = depth,
|
||||
image = ftype,
|
||||
pos = name and pos or token.fpos,
|
||||
}
|
||||
end
|
||||
name = name or outcfg.showanonymous
|
||||
funcs[#funcs+1] = {
|
||||
name = ((name or '~')..params):gsub("%s+", " "),
|
||||
skip = (not name) and true or nil,
|
||||
depth = depth,
|
||||
image = ftype,
|
||||
pos = name and pos or token.fpos,
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
local ctrl = ide.outline.outlineCtrl
|
||||
if force == nil then return funcs end
|
||||
|
||||
local ctrl = outline.outlineCtrl
|
||||
local cache = caches[editor] or {}
|
||||
caches[editor] = cache
|
||||
|
||||
@@ -101,7 +149,7 @@ local function outlineRefresh(editor, force)
|
||||
func.item = prevfuncs[n].item -- carry over cached items
|
||||
if func.depth ~= prevfuncs[n].depth then
|
||||
nochange = false
|
||||
elseif nochange then
|
||||
elseif nochange and prevfuncs[n].item then
|
||||
if func.name ~= prevfuncs[n].name then
|
||||
ctrl:SetItemText(prevfuncs[n].item, func.name)
|
||||
if outcfg.sort then resort[ctrl:GetItemParent(prevfuncs[n].item)] = true end
|
||||
@@ -136,17 +184,25 @@ local function outlineRefresh(editor, force)
|
||||
ctrl:DeleteChildren(fileitem)
|
||||
ctrl:SetEvtHandlerEnabled(true)
|
||||
|
||||
local edpos = editor:GetCurrentPos()+1
|
||||
local stack = {fileitem}
|
||||
local resort = {} -- items that need to be re-sorted
|
||||
for n, func in ipairs(funcs) do
|
||||
local depth = outcfg.showflat and 1 or func.depth
|
||||
local parent = stack[depth]
|
||||
while not parent do depth = depth - 1; parent = stack[depth] end
|
||||
local item = ctrl:AppendItem(parent, func.name, func.image)
|
||||
if outcfg.sort then resort[parent] = true end
|
||||
setData(ctrl, item, n)
|
||||
func.item = item
|
||||
stack[func.depth+1] = item
|
||||
if not func.skip then
|
||||
local item = ctrl:AppendItem(parent, func.name, func.image)
|
||||
if ide.config.outline.showcurrentfunction
|
||||
and edpos >= func.pos and func.poe and edpos <= func.poe then
|
||||
ctrl:SetItemBold(item, true)
|
||||
end
|
||||
if outcfg.sort then resort[parent] = true end
|
||||
setData(ctrl, item, n)
|
||||
func.item = item
|
||||
stack[func.depth+1] = item
|
||||
end
|
||||
func.skip = nil
|
||||
end
|
||||
if outcfg.sort then -- resort items for all parents that have been modified
|
||||
for item in pairs(resort) do ctrl:SortChildren(item) end
|
||||
@@ -164,22 +220,59 @@ local function outlineRefresh(editor, force)
|
||||
if win and win ~= ide:GetMainFrame():FindFocus() then win:SetFocus() end
|
||||
end
|
||||
|
||||
local function indexFromQueue()
|
||||
if #outline.indexqueue == 0 then return end
|
||||
|
||||
local editor = ide:GetEditor()
|
||||
local inactivity = ide.config.symbolindexinactivity
|
||||
if editor and inactivity and editor.updated > TimeGet()-inactivity then
|
||||
-- reschedule timer for later time
|
||||
resetIndexTimer()
|
||||
else
|
||||
local fname = table.remove(outline.indexqueue, 1)
|
||||
outline.indexqueue[0][fname] = nil
|
||||
-- check if fname is already loaded
|
||||
ide:SetStatusFor(TR("Indexing %d files: '%s'..."):format(#outline.indexqueue+1, fname))
|
||||
local content, err = FileRead(fname)
|
||||
if content then
|
||||
local editor = ide:CreateBareEditor()
|
||||
editor:SetupKeywords(GetFileExt(fname))
|
||||
editor:SetText(content)
|
||||
editor:Colourise(0, -1)
|
||||
editor:ResetTokenList()
|
||||
while IndicateAll(editor) do end
|
||||
|
||||
outline:UpdateSymbols(fname, outlineRefresh(editor))
|
||||
editor:Destroy()
|
||||
else
|
||||
DisplayOutputLn(TR("Can't open file '%s': %s"):format(fname, err))
|
||||
end
|
||||
if #outline.indexqueue == 0 then
|
||||
outline:SaveSettings()
|
||||
ide:SetStatusFor(TR("Indexing completed."))
|
||||
end
|
||||
ide:DoWhenIdle(indexFromQueue)
|
||||
end
|
||||
return
|
||||
end
|
||||
|
||||
local function outlineCreateOutlineWindow()
|
||||
local REFRESH, REINDEX = 1, 2
|
||||
local width, height = 360, 200
|
||||
local ctrl = wx.wxTreeCtrl(ide.frame, wx.wxID_ANY,
|
||||
wx.wxDefaultPosition, wx.wxSize(width, height),
|
||||
wx.wxTR_LINES_AT_ROOT + wx.wxTR_HAS_BUTTONS + wx.wxTR_SINGLE
|
||||
wx.wxTR_LINES_AT_ROOT + wx.wxTR_HAS_BUTTONS
|
||||
+ wx.wxTR_HIDE_ROOT + wx.wxNO_BORDER)
|
||||
|
||||
ide.outline.outlineCtrl = ctrl
|
||||
ide.timers.outline = wx.wxTimer(ctrl)
|
||||
outline.outlineCtrl = ctrl
|
||||
ide.timers.outline = wx.wxTimer(ctrl, REFRESH)
|
||||
ide.timers.symbolindex = wx.wxTimer(ctrl, REINDEX)
|
||||
|
||||
ctrl:AddRoot("Outline")
|
||||
ctrl:SetImageList(ide.outline.imglist)
|
||||
ctrl:SetImageList(outline.imglist)
|
||||
ctrl:SetFont(ide.font.fNormal)
|
||||
|
||||
function ctrl:ActivateItem(item_id)
|
||||
ctrl:SelectItem(item_id, true)
|
||||
local data = ctrl:GetItemData(item_id)
|
||||
if ctrl:GetItemImage(item_id) == image.FILE then
|
||||
-- activate editor tab
|
||||
@@ -224,13 +317,41 @@ local function outlineCreateOutlineWindow()
|
||||
return true
|
||||
end
|
||||
|
||||
ctrl:Connect(wx.wxEVT_TIMER, function() outlineRefresh(GetEditor()) end)
|
||||
ctrl:Connect(wx.wxEVT_TIMER, function(event)
|
||||
if event:GetId() == REFRESH then outlineRefresh(GetEditor(), false) end
|
||||
if event:GetId() == REINDEX then ide:DoWhenIdle(indexFromQueue) end
|
||||
end)
|
||||
ctrl:Connect(wx.wxEVT_LEFT_DOWN, activateByPosition)
|
||||
ctrl:Connect(wx.wxEVT_LEFT_DCLICK, activateByPosition)
|
||||
ctrl:Connect(wx.wxEVT_COMMAND_TREE_ITEM_ACTIVATED, function(event)
|
||||
ctrl:ActivateItem(event:GetItem())
|
||||
end)
|
||||
|
||||
ctrl:Connect(ID_OUTLINESORT, wx.wxEVT_COMMAND_MENU_SELECTED,
|
||||
function()
|
||||
ide.config.outline.sort = not ide.config.outline.sort
|
||||
for editor, cache in pairs(caches) do
|
||||
ide:SetStatus(("Refreshing '%s'..."):format(ide:GetDocument(editor):GetFileName()))
|
||||
local isexpanded = ctrl:IsExpanded(cache.fileitem)
|
||||
outlineRefresh(editor, true)
|
||||
if not isexpanded then ctrl:Collapse(cache.fileitem) end
|
||||
end
|
||||
ide:SetStatus('')
|
||||
end)
|
||||
|
||||
ctrl:Connect(wx.wxEVT_COMMAND_TREE_ITEM_MENU,
|
||||
function (event)
|
||||
local menu = wx.wxMenu {
|
||||
{ ID_OUTLINESORT, TR("Sort By Name"), "", wx.wxITEM_CHECK },
|
||||
}
|
||||
menu:Check(ID_OUTLINESORT, ide.config.outline.sort)
|
||||
|
||||
PackageEventHandle("onMenuOutline", menu, ctrl, event)
|
||||
|
||||
ctrl:PopupMenu(menu)
|
||||
end)
|
||||
|
||||
|
||||
local function reconfigure(pane)
|
||||
pane:TopDockable(false):BottomDockable(false)
|
||||
:MinSize(150,-1):BestSize(300,-1):FloatingSize(200,300)
|
||||
@@ -244,36 +365,78 @@ local function outlineCreateOutlineWindow()
|
||||
end
|
||||
end
|
||||
|
||||
local function eachNode(eachFunc, root)
|
||||
local ctrl = ide.outline.outlineCtrl
|
||||
local function eachNode(eachFunc, root, recursive)
|
||||
local ctrl = outline.outlineCtrl
|
||||
local item = ctrl:GetFirstChild(root or ctrl:GetRootItem())
|
||||
while true do
|
||||
if not item:IsOk() then break end
|
||||
if eachFunc and eachFunc(ctrl, item) then break end
|
||||
if recursive and ctrl:ItemHasChildren(item) then eachNode(eachFunc, item, recursive) end
|
||||
item = ctrl:GetNextSibling(item)
|
||||
end
|
||||
end
|
||||
|
||||
outlineCreateOutlineWindow()
|
||||
|
||||
function OutlineFunctions(editor)
|
||||
-- force token refresh (as these may be not updated yet)
|
||||
if #editor:GetTokenList() == 0 then
|
||||
while IndicateAll(editor) do end
|
||||
end
|
||||
|
||||
outlineRefresh(editor, true)
|
||||
return caches[editor].funcs
|
||||
local pathsep = GetPathSeparator()
|
||||
local function isInSubDir(name, path)
|
||||
return #name > #path and path..pathsep == name:sub(1, #path+#pathsep)
|
||||
end
|
||||
|
||||
ide:AddPackage('core.outline', {
|
||||
local function isIgnoredInIndex(name)
|
||||
local ignoredirs = outline.settings.ignoredirs
|
||||
if ignoredirs[name] then return true end
|
||||
|
||||
-- check through ignored dirs to see if any of them match the file
|
||||
for path in pairs(ignoredirs) do
|
||||
if isInSubDir(name, path) then return true end
|
||||
end
|
||||
|
||||
return false
|
||||
end
|
||||
|
||||
local function purgeIndex(path)
|
||||
local symbols = outline.settings.symbols
|
||||
for name in pairs(symbols) do
|
||||
if isInSubDir(name, path) then outline:UpdateSymbols(name, nil) end
|
||||
end
|
||||
end
|
||||
|
||||
local function purgeQueue(path)
|
||||
local curqueue = outline.indexqueue
|
||||
local newqueue = {[0] = {}}
|
||||
for _, name in ipairs(curqueue) do
|
||||
if not isInSubDir(name, path) then
|
||||
table.insert(newqueue, name)
|
||||
newqueue[0][name] = true
|
||||
end
|
||||
end
|
||||
outline.indexqueue = newqueue
|
||||
end
|
||||
|
||||
local function disableIndex(path)
|
||||
outline.settings.ignoredirs[path] = true
|
||||
outline:SaveSettings(true)
|
||||
|
||||
-- purge the path from the index and the (current) queue
|
||||
purgeIndex(path)
|
||||
purgeQueue(path)
|
||||
end
|
||||
|
||||
local function enableIndex(path)
|
||||
outline.settings.ignoredirs[path] = nil
|
||||
outline:SaveSettings(true)
|
||||
outline:RefreshSymbols(path)
|
||||
end
|
||||
|
||||
local package = ide:AddPackage('core.outline', {
|
||||
-- remove the editor from the list
|
||||
onEditorClose = function(self, editor)
|
||||
local cache = caches[editor]
|
||||
local fileitem = cache and cache.fileitem
|
||||
caches[editor] = nil -- remove from cache
|
||||
if (ide.config.outline or {}).showonefile then return end
|
||||
if fileitem then ide.outline.outlineCtrl:Delete(fileitem) end
|
||||
if fileitem then outline.outlineCtrl:Delete(fileitem) end
|
||||
end,
|
||||
|
||||
-- handle rename of the file in the current editor
|
||||
@@ -282,10 +445,15 @@ ide:AddPackage('core.outline', {
|
||||
local cache = caches[editor]
|
||||
local fileitem = cache and cache.fileitem
|
||||
local doc = ide:GetDocument(editor)
|
||||
local ctrl = ide.outline.outlineCtrl
|
||||
local ctrl = outline.outlineCtrl
|
||||
if doc and fileitem and ctrl:GetItemText(fileitem) ~= doc:GetTabText() then
|
||||
ctrl:SetItemText(fileitem, doc:GetTabText())
|
||||
end
|
||||
local path = doc and doc:GetFilePath()
|
||||
if path and cache and cache.funcs then
|
||||
outline:UpdateSymbols(path, cache.funcs.updated > editor.updated and cache.funcs or nil)
|
||||
outline:SaveSettings()
|
||||
end
|
||||
end,
|
||||
|
||||
-- go over the file items to turn bold on/off or collapse/expand
|
||||
@@ -297,10 +465,10 @@ ide:AddPackage('core.outline', {
|
||||
|
||||
local cache = caches[editor]
|
||||
local fileitem = cache and cache.fileitem
|
||||
local ctrl = ide.outline.outlineCtrl
|
||||
local ctrl = outline.outlineCtrl
|
||||
local itemname = ide:GetDocument(editor):GetTabText()
|
||||
|
||||
-- fix file name if it changed in the editor
|
||||
-- update file name if it changed in the editor
|
||||
if fileitem and ctrl:GetItemText(fileitem) ~= itemname then
|
||||
ctrl:SetItemText(fileitem, itemname)
|
||||
end
|
||||
@@ -308,9 +476,8 @@ ide:AddPackage('core.outline', {
|
||||
-- if the editor is not in the cache, which may happen if the user
|
||||
-- quickly switches between tabs that don't have outline generated,
|
||||
-- regenerate it manually
|
||||
if not cache and ide.config.outlineinactivity then
|
||||
ide.timers.outline:Start(ide.config.outlineinactivity*1000, wx.wxTIMER_ONE_SHOT)
|
||||
end
|
||||
if not cache then resetOutlineTimer() end
|
||||
resetIndexTimer()
|
||||
|
||||
eachNode(function(ctrl, item)
|
||||
local found = fileitem and item:GetValue() == fileitem:GetValue()
|
||||
@@ -327,4 +494,177 @@ ide:AddPackage('core.outline', {
|
||||
ctrl:SetScrollPos(wx.wxHORIZONTAL, 0, true)
|
||||
end
|
||||
end,
|
||||
|
||||
onMenuFiletree = function(self, menu, tree, event)
|
||||
local item_id = event:GetItem()
|
||||
local name = tree:GetItemFullName(item_id)
|
||||
local symboldirmenu = wx.wxMenu {
|
||||
{ID_SYMBOLDIRREFRESH, TR("Refresh Index"), TR("Refresh indexed symbols from files in the selected directory")},
|
||||
{ID_SYMBOLDIRDISABLE, TR("Disable Indexing For '%s'"):format(name), TR("Ignore and don't index symbols from files in the selected directory")},
|
||||
}
|
||||
local _, _, projdirpos = ide:FindMenuItem(ID_PROJECTDIR, menu)
|
||||
if projdirpos then
|
||||
local ignored = isIgnoredInIndex(name)
|
||||
local enabledirmenu = wx.wxMenu()
|
||||
local paths = {}
|
||||
for path in pairs(outline.settings.ignoredirs) do table.insert(paths, path) end
|
||||
table.sort(paths)
|
||||
for i, path in ipairs(paths) do
|
||||
local id = ID("file.enablesymboldir."..i)
|
||||
enabledirmenu:Append(id, path, "")
|
||||
tree:Connect(id, wx.wxEVT_COMMAND_MENU_SELECTED, function() enableIndex(path) end)
|
||||
end
|
||||
|
||||
symboldirmenu:Append(wx.wxMenuItem(symboldirmenu, ID_SYMBOLDIRENABLE,
|
||||
TR("Enable Indexing"), "", wx.wxITEM_NORMAL, enabledirmenu))
|
||||
menu:Insert(projdirpos+1, wx.wxMenuItem(menu, ID_SYMBOLDIRINDEX,
|
||||
TR("Symbol Index"), "", wx.wxITEM_NORMAL, symboldirmenu))
|
||||
|
||||
-- disable "enable" if it's empty
|
||||
menu:Enable(ID_SYMBOLDIRENABLE, #paths > 0)
|
||||
-- disable "refresh" and "disable" if the directory is ignored
|
||||
-- or if any of the directories above it are ignored
|
||||
menu:Enable(ID_SYMBOLDIRREFRESH, tree:IsDirectory(item_id) and not ignored)
|
||||
menu:Enable(ID_SYMBOLDIRDISABLE, tree:IsDirectory(item_id) and not ignored)
|
||||
|
||||
tree:Connect(ID_SYMBOLDIRREFRESH, wx.wxEVT_COMMAND_MENU_SELECTED, function()
|
||||
-- purge files in this directory as some might have been removed;
|
||||
-- files will be purged based on time, but this is a good time to clean.
|
||||
purgeIndex(name)
|
||||
outline:RefreshSymbols(name)
|
||||
resetIndexTimer(1) -- start after 1ms
|
||||
end)
|
||||
tree:Connect(ID_SYMBOLDIRDISABLE, wx.wxEVT_COMMAND_MENU_SELECTED, function()
|
||||
disableIndex(name)
|
||||
end)
|
||||
end
|
||||
end,
|
||||
|
||||
onEditorPainted = function(self, editor)
|
||||
local ctrl = ide.outline.outlineCtrl
|
||||
if not ide:IsWindowShown(ctrl) then return end
|
||||
|
||||
local cache = caches[editor]
|
||||
if not cache or not ide.config.outline.showcurrentfunction then return end
|
||||
|
||||
local edpos = editor:GetCurrentPos()+1
|
||||
local edline = editor:LineFromPosition(edpos-1)+1
|
||||
if cache.pos and cache.pos == edpos then return end
|
||||
if cache.line and cache.line == edline then return end
|
||||
|
||||
cache.pos = edpos
|
||||
cache.line = edline
|
||||
|
||||
local n = 0
|
||||
local MIN, MAX = 1, 2
|
||||
local visible = {[MIN] = math.huge, [MAX] = 0}
|
||||
local needshown = {[MIN] = math.huge, [MAX] = 0}
|
||||
|
||||
ctrl:Unselect()
|
||||
-- scan all items recursively starting from the current file
|
||||
eachNode(function(ctrl, item)
|
||||
local func = cache.funcs[ctrl:GetItemData(item):GetData()]
|
||||
local val = edpos >= func.pos and func.poe and edpos <= func.poe
|
||||
if edline == editor:LineFromPosition(func.pos)+1
|
||||
or (func.poe and edline == editor:LineFromPosition(func.poe)+1) then
|
||||
cache.line = nil
|
||||
end
|
||||
ctrl:SetItemBold(item, val)
|
||||
if val then ctrl:SelectItem(item, val) end
|
||||
|
||||
if not ide.config.outline.jumptocurrentfunction then return end
|
||||
n = n + 1
|
||||
-- check that this and the items around it are all visible;
|
||||
-- this is to avoid the situation when the current item is only partially visible
|
||||
local isvisible = ctrl:IsVisible(item) and ctrl:GetNextVisible(item):IsOk() and ctrl:GetPrevVisible(item):IsOk()
|
||||
if val and not isvisible then
|
||||
needshown[MIN] = math.min(needshown[MIN], n)
|
||||
needshown[MAX] = math.max(needshown[MAX], n)
|
||||
elseif isvisible then
|
||||
visible[MIN] = math.min(visible[MIN], n)
|
||||
visible[MAX] = math.max(visible[MAX], n)
|
||||
end
|
||||
end, cache.fileitem, true)
|
||||
|
||||
if not ide.config.outline.jumptocurrentfunction then return end
|
||||
if needshown[MAX] > visible[MAX] then
|
||||
ctrl:ScrollLines(needshown[MAX]-visible[MAX]) -- scroll forward to the last hidden line
|
||||
elseif needshown[MIN] < visible[MIN] then
|
||||
ctrl:ScrollLines(needshown[MIN]-visible[MIN]) -- scroll backward to the first hidden line
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
local function queuePath(path)
|
||||
-- only queue if symbols inactivity is set, so files will be indexed
|
||||
if ide.config.symbolindexinactivity and not outline.indexqueue[0][path] then
|
||||
outline.indexqueue[0][path] = true
|
||||
table.insert(outline.indexqueue, 1, path)
|
||||
end
|
||||
end
|
||||
|
||||
function outline:GetFileSymbols(path)
|
||||
local symbols = self.settings.symbols[path]
|
||||
-- queue path to process when appropriate
|
||||
if not symbols then queuePath(path) end
|
||||
return symbols
|
||||
end
|
||||
|
||||
function outline:GetEditorSymbols(editor)
|
||||
-- force token refresh (as these may be not updated yet)
|
||||
if #editor:GetTokenList() == 0 then
|
||||
while IndicateAll(editor) do end
|
||||
end
|
||||
|
||||
-- only refresh the functions when none is present
|
||||
if not caches[editor] or #caches[editor].funcs == 0 then outlineRefresh(editor, true) end
|
||||
return caches[editor].funcs
|
||||
end
|
||||
|
||||
function outline:RefreshSymbols(path, callback)
|
||||
if isIgnoredInIndex(path) then return end
|
||||
|
||||
local exts = {}
|
||||
for _, ext in pairs(ide:GetKnownExtensions()) do
|
||||
local spec = GetSpec(ext)
|
||||
if spec and spec.marksymbols then table.insert(exts, ext) end
|
||||
end
|
||||
|
||||
local opts = {sort = false, folder = false, skipbinary = true, yield = true,
|
||||
-- skip those directories that are on the "ignore" list
|
||||
ondirectory = function(name) return outline.settings.ignoredirs[name] == nil end
|
||||
}
|
||||
local nextfile = coroutine.wrap(function() FileSysGetRecursive(path, true, table.concat(exts, ";"), opts) end)
|
||||
while true do
|
||||
local file = nextfile()
|
||||
if not file then break end
|
||||
if not isIgnoredInIndex(file) then (callback or queuePath)(file) end
|
||||
end
|
||||
end
|
||||
|
||||
function outline:UpdateSymbols(fname, symb)
|
||||
local symbols = self.settings.symbols
|
||||
symbols[fname] = symb
|
||||
|
||||
-- purge outdated records
|
||||
local threshold = TimeGet() - 60*60*24*7 -- cache for 7 days
|
||||
if not self.indexpurged then
|
||||
for k, v in pairs(symbols) do
|
||||
if v.updated < threshold then symbols[k] = nil end
|
||||
end
|
||||
self.indexpurged = true
|
||||
end
|
||||
|
||||
self.needsaving = true
|
||||
end
|
||||
|
||||
function outline:SaveSettings(force)
|
||||
if self.needsaving or force then
|
||||
ide:PushStatus(TR("Updating symbol index and settings..."))
|
||||
package:SetSettings(self.settings, {keyignore = {depth = true, image = true, poe = true, item = true, skip = true}})
|
||||
ide:PopStatus()
|
||||
self.needsaving = false
|
||||
end
|
||||
end
|
||||
|
||||
MergeSettings(outline.settings, package:GetSettings())
|
||||
|
||||
@@ -318,10 +318,9 @@ errorlog:Connect(wx.wxEVT_END_PROCESS, function(event)
|
||||
-- check if editor still exists; it may not if the window is closed
|
||||
if editor then editor:SetFocus() end
|
||||
end
|
||||
nameTab(errorlog, TR("Output"))
|
||||
|
||||
unHideWindow(0)
|
||||
DebuggerStop(true)
|
||||
nameTab(errorlog, TR("Output"))
|
||||
DisplayOutputLn(TR("Program completed in %.2f seconds (pid: %d).")
|
||||
:format(TimeGet() - customprocs[pid].started, pid))
|
||||
customprocs[pid] = nil
|
||||
|
||||
@@ -66,16 +66,16 @@ function PackageRegister(file, ...)
|
||||
end
|
||||
|
||||
function ide:GetRootPath(path)
|
||||
return MergeFullPath(GetPathWithSep(ide.editorFilename), path or '')
|
||||
return MergeFullPath(GetPathWithSep(self.editorFilename), path or '')
|
||||
end
|
||||
function ide:GetPackagePath(packname)
|
||||
return MergeFullPath(
|
||||
ide.oshome and MergeFullPath(ide.oshome, '.'..ide:GetAppName()..'/') or ide:GetRootPath(),
|
||||
self.oshome and MergeFullPath(self.oshome, '.'..self:GetAppName()..'/') or self:GetRootPath(),
|
||||
MergeFullPath('packages', packname or '')
|
||||
)
|
||||
end
|
||||
function ide:GetApp() return self.editorApp end
|
||||
function ide:GetAppName() return ide.appname end
|
||||
function ide:GetAppName() return self.appname end
|
||||
function ide:GetEditor(index) return GetEditor(index) end
|
||||
function ide:GetEditorWithFocus(ed) return GetEditorWithFocus(ed) end
|
||||
function ide:GetEditorWithLastFocus()
|
||||
@@ -94,7 +94,7 @@ function ide:GetDocument(ed) return self.openDocuments[ed:GetId()] end
|
||||
function ide:GetDocuments() return self.openDocuments end
|
||||
function ide:GetKnownExtensions(ext)
|
||||
local knownexts, extmatch = {}, ext and ext:lower()
|
||||
for _, spec in pairs(ide.specs) do
|
||||
for _, spec in pairs(self.specs) do
|
||||
for _, ext in ipairs(spec.exts or {}) do
|
||||
if not extmatch or extmatch == ext:lower() then
|
||||
table.insert(knownexts, ext)
|
||||
@@ -104,12 +104,14 @@ function ide:GetKnownExtensions(ext)
|
||||
return knownexts
|
||||
end
|
||||
|
||||
function ide:DoWhenIdle(func) table.insert(self.onidle, func) end
|
||||
|
||||
function ide:FindTopMenu(item)
|
||||
local index = ide:GetMenuBar():FindMenu((TR)(item))
|
||||
return ide:GetMenuBar():GetMenu(index), index
|
||||
local index = self:GetMenuBar():FindMenu((TR)(item))
|
||||
return self:GetMenuBar():GetMenu(index), index
|
||||
end
|
||||
function ide:FindMenuItem(itemid, menu)
|
||||
local item, imenu = ide:GetMenuBar():FindItem(itemid, menu)
|
||||
local item, imenu = self:GetMenuBar():FindItem(itemid, menu)
|
||||
if menu and not item then item = menu:FindItem(itemid) end
|
||||
if not item then return end
|
||||
menu = menu or imenu
|
||||
@@ -124,7 +126,7 @@ end
|
||||
|
||||
function ide:FindDocument(path)
|
||||
local fileName = wx.wxFileName(path)
|
||||
for _, doc in pairs(ide.openDocuments) do
|
||||
for _, doc in pairs(self:GetDocuments()) do
|
||||
if doc.filePath and fileName:SameAs(wx.wxFileName(doc.filePath)) then
|
||||
return doc
|
||||
end
|
||||
@@ -139,7 +141,7 @@ function ide:FindDocumentsByPartialPath(path)
|
||||
local lpattern = pattern:lower()
|
||||
|
||||
local docs = {}
|
||||
for _, doc in pairs(ide.openDocuments) do
|
||||
for _, doc in pairs(self:GetDocuments()) do
|
||||
if doc.filePath
|
||||
and (doc.filePath:find(pattern)
|
||||
or iscaseinsensitive and doc.filePath:lower():find(lpattern)) then
|
||||
@@ -155,18 +157,39 @@ function ide:GetOutput() return self.frame.bottomnotebook.errorlog end
|
||||
function ide:GetConsole() return self.frame.bottomnotebook.shellbox end
|
||||
function ide:GetEditorNotebook() return self.frame.notebook end
|
||||
function ide:GetOutputNotebook() return self.frame.bottomnotebook end
|
||||
function ide:GetOutline() return self.outline end
|
||||
function ide:GetProjectNotebook() return self.frame.projnotebook end
|
||||
function ide:GetProject() return FileTreeGetDir() end
|
||||
function ide:GetProjectStartFile()
|
||||
local projectdir = FileTreeGetDir()
|
||||
local startfile = ide.filetree.settings.startfile[projectdir]
|
||||
local startfile = self.filetree.settings.startfile[projectdir]
|
||||
return MergeFullPath(projectdir, startfile), startfile
|
||||
end
|
||||
function ide:GetLaunchedProcess() return self.debugger and self.debugger.pid end
|
||||
function ide:GetProjectTree() return ide.filetree.projtreeCtrl end
|
||||
function ide:GetOutlineTree() return ide.outline.outlineCtrl end
|
||||
function ide:GetProjectTree() return self.filetree.projtreeCtrl end
|
||||
function ide:GetOutlineTree() return self.outline.outlineCtrl end
|
||||
function ide:GetWatch() return self.debugger and self.debugger.watchCtrl end
|
||||
function ide:GetStack() return self.debugger and self.debugger.stackCtrl end
|
||||
|
||||
local statusreset
|
||||
function ide:SetStatusFor(text, interval, field)
|
||||
field = field or 0
|
||||
interval = interval or 2
|
||||
local statusbar = self:GetStatusBar()
|
||||
if not ide.timers.status then
|
||||
ide.timers.status = wx.wxTimer(statusbar)
|
||||
statusbar:Connect(wx.wxEVT_TIMER, function(event) if statusreset then statusreset() end end)
|
||||
end
|
||||
statusreset = function()
|
||||
if statusbar:GetStatusText(field) == text then statusbar:SetStatusText("", field) end
|
||||
end
|
||||
ide.timers.status:Start(interval*1000, wx.wxTIMER_ONE_SHOT)
|
||||
statusbar:SetStatusText(text, field)
|
||||
end
|
||||
function ide:SetStatus(text, field) self:GetStatusBar():SetStatusText(text, field or 0) end
|
||||
function ide:GetStatus(field) return self:GetStatusBar():GetStatusText(field or 0) end
|
||||
function ide:PushStatus(text, field) self:GetStatusBar():PushStatusText(text, field or 0) end
|
||||
function ide:PopStatus(field) self:GetStatusBar():PopStatusText(field or 0) end
|
||||
function ide:Yield() wx.wxYield() end
|
||||
function ide:CreateBareEditor() return CreateEditor(true) end
|
||||
function ide:CreateStyledTextCtrl(...)
|
||||
@@ -291,10 +314,10 @@ function ide:GetSetting(path, setting)
|
||||
end
|
||||
|
||||
function ide:RemoveMenuItem(id, menu)
|
||||
local _, menu, pos = ide:FindMenuItem(id, menu)
|
||||
local _, menu, pos = self:FindMenuItem(id, menu)
|
||||
if menu then
|
||||
ide:GetMainFrame():Disconnect(id, wx.wxID_ANY, wx.wxEVT_COMMAND_MENU_SELECTED)
|
||||
ide:GetMainFrame():Disconnect(id, wx.wxID_ANY, wx.wxEVT_UPDATE_UI)
|
||||
self:GetMainFrame():Disconnect(id, wx.wxID_ANY, wx.wxEVT_COMMAND_MENU_SELECTED)
|
||||
self:GetMainFrame():Disconnect(id, wx.wxID_ANY, wx.wxEVT_UPDATE_UI)
|
||||
menu:Disconnect(id, wx.wxID_ANY, wx.wxEVT_COMMAND_MENU_SELECTED)
|
||||
menu:Disconnect(id, wx.wxID_ANY, wx.wxEVT_UPDATE_UI)
|
||||
menu:Remove(id)
|
||||
@@ -311,7 +334,7 @@ function ide:RemoveMenuItem(id, menu)
|
||||
end
|
||||
|
||||
function ide:ExecuteCommand(cmd, wdir, callback, endcallback)
|
||||
local proc = wx.wxProcess(ide:GetOutput())
|
||||
local proc = wx.wxProcess(self:GetOutput())
|
||||
proc:Redirect()
|
||||
|
||||
local cwd
|
||||
@@ -372,7 +395,7 @@ end
|
||||
|
||||
local icons = {} -- icon cache to avoid reloading the same icons
|
||||
function ide:GetBitmap(id, client, size)
|
||||
local im = ide.config.imagemap
|
||||
local im = self.config.imagemap
|
||||
local width = size:GetWidth()
|
||||
local key = width.."/"..id
|
||||
local keyclient = key.."-"..client
|
||||
@@ -386,35 +409,35 @@ function ide:GetBitmap(id, client, size)
|
||||
keyclient = key.."-"..client
|
||||
end
|
||||
|
||||
local fileClient = ide:GetAppName() .. "/res/" .. keyclient .. ".png"
|
||||
local fileKey = ide:GetAppName() .. "/res/" .. key .. ".png"
|
||||
local fileClient = self:GetAppName() .. "/res/" .. keyclient .. ".png"
|
||||
local fileKey = self:GetAppName() .. "/res/" .. key .. ".png"
|
||||
local isImage = type(mapped) == 'userdata' and mapped:GetClassInfo():GetClassName() == 'wxImage'
|
||||
local file
|
||||
if mapped and (isImage or wx.wxFileName(mapped):FileExists()) then file = mapped
|
||||
elseif wx.wxFileName(fileClient):FileExists() then file = fileClient
|
||||
elseif wx.wxFileName(fileKey):FileExists() then file = fileKey
|
||||
else return wx.wxArtProvider.GetBitmap(id, client, size) end
|
||||
local icon = icons[file] or iconFilter(wx.wxBitmap(file), ide.config.imagetint)
|
||||
local icon = icons[file] or iconFilter(wx.wxBitmap(file), self.config.imagetint)
|
||||
icons[file] = icon
|
||||
return icon, file
|
||||
end
|
||||
|
||||
function ide:AddPackage(name, package)
|
||||
ide.packages[name] = setmetatable(package, ide.proto.Plugin)
|
||||
ide.packages[name].fname = name
|
||||
return ide.packages[name]
|
||||
self.packages[name] = setmetatable(package, self.proto.Plugin)
|
||||
self.packages[name].fname = name
|
||||
return self.packages[name]
|
||||
end
|
||||
function ide:RemovePackage(name) ide.packages[name] = nil end
|
||||
function ide:RemovePackage(name) self.packages[name] = nil end
|
||||
|
||||
function ide:AddWatch(watch, value)
|
||||
local mgr = ide.frame.uimgr
|
||||
local mgr = self.frame.uimgr
|
||||
local pane = mgr:GetPane("watchpanel")
|
||||
if (pane:IsOk() and not pane:IsShown()) then
|
||||
pane:Show()
|
||||
mgr:Update()
|
||||
end
|
||||
|
||||
local watchCtrl = ide.debugger.watchCtrl
|
||||
local watchCtrl = self.debugger.watchCtrl
|
||||
if not watchCtrl then return end
|
||||
|
||||
local root = watchCtrl:GetRootItem()
|
||||
@@ -436,7 +459,7 @@ function ide:AddWatch(watch, value)
|
||||
end
|
||||
|
||||
function ide:AddInterpreter(name, interpreter)
|
||||
self.interpreters[name] = setmetatable(interpreter, ide.proto.Interpreter)
|
||||
self.interpreters[name] = setmetatable(interpreter, self.proto.Interpreter)
|
||||
ProjectUpdateInterpreters()
|
||||
end
|
||||
function ide:RemoveInterpreter(name)
|
||||
@@ -463,18 +486,37 @@ function ide:AddMarker(...) return StylesAddMarker(...) end
|
||||
function ide:GetMarker(marker) return StylesGetMarker(marker) end
|
||||
function ide:RemoveMarker(marker) StylesRemoveMarker(marker) end
|
||||
|
||||
local indicators = {}
|
||||
function ide:AddIndicator(indic, num)
|
||||
num = num or indicators[indic]
|
||||
if not num then -- new indicator; find the smallest available number
|
||||
local nums = {}
|
||||
for _, indicator in pairs(indicators) do
|
||||
if indicator >= wxstc.wxSTC_INDIC_CONTAINER then
|
||||
nums[indicator-wxstc.wxSTC_INDIC_CONTAINER+1] = true
|
||||
end
|
||||
end
|
||||
num = #nums + wxstc.wxSTC_INDIC_CONTAINER
|
||||
if num > wxstc.wxSTC_INDIC_MAX then return end
|
||||
end
|
||||
indicators[indic] = num
|
||||
return num
|
||||
end
|
||||
function ide:GetIndicator(indic) return indicators[indic] end
|
||||
function ide:RemoveIndicator(indic) indicators[indic] = nil end
|
||||
|
||||
-- this provides a simple stack for saving/restoring current configuration
|
||||
local configcache = {}
|
||||
function ide:AddConfig(name, files)
|
||||
if not name or configcache[name] then return end -- don't overwrite existing slots
|
||||
configcache[name] = require('mobdebug').dump(ide.config, {nocode = true})
|
||||
configcache[name] = require('mobdebug').dump(self.config, {nocode = true})
|
||||
for _, file in pairs(files) do LoadLuaConfig(MergeFullPath(name, file)) end
|
||||
ReApplySpecAndStyles() -- apply current config to the UI
|
||||
end
|
||||
function ide:RemoveConfig(name)
|
||||
if not name or not configcache[name] then return end
|
||||
local ok, res = LoadSafe(configcache[name])
|
||||
if ok then ide.config = res
|
||||
if ok then self.config = res
|
||||
else
|
||||
DisplayOutputLn(("Error while restoring configuration: '%s'."):format(res))
|
||||
end
|
||||
@@ -485,7 +527,7 @@ end
|
||||
local panels = {}
|
||||
function ide:AddPanel(ctrl, panel, name, conf)
|
||||
local width, height = 360, 200
|
||||
local notebook = wxaui.wxAuiNotebook(ide.frame, wx.wxID_ANY,
|
||||
local notebook = wxaui.wxAuiNotebook(self.frame, wx.wxID_ANY,
|
||||
wx.wxDefaultPosition, wx.wxDefaultSize,
|
||||
wxaui.wxAUI_NB_DEFAULT_STYLE + wxaui.wxAUI_NB_TAB_EXTERNAL_MOVE
|
||||
- wxaui.wxAUI_NB_CLOSE_ON_ACTIVE_TAB + wx.wxNO_BORDER)
|
||||
@@ -495,7 +537,7 @@ function ide:AddPanel(ctrl, panel, name, conf)
|
||||
notebook:Connect(wxaui.wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE,
|
||||
function(event) event:Veto() end)
|
||||
|
||||
local mgr = ide.frame.uimgr
|
||||
local mgr = self.frame.uimgr
|
||||
mgr:AddPane(notebook, wxaui.wxAuiPaneInfo():
|
||||
Name(panel):Float():CaptionVisible(false):PaneBorder(false):
|
||||
MinSize(width/2,height/2):
|
||||
@@ -514,7 +556,7 @@ function ide:AddPanelDocked(notebook, ctrl, panel, name, conf, activate)
|
||||
return notebook
|
||||
end
|
||||
function ide:IsPanelDocked(panel)
|
||||
local layout = ide:GetSetting("/view", "uimgrlayout")
|
||||
local layout = self:GetSetting("/view", "uimgrlayout")
|
||||
return layout and not layout:find(panel)
|
||||
end
|
||||
|
||||
@@ -522,9 +564,17 @@ function ide:IsValidCtrl(ctrl)
|
||||
return ctrl and pcall(function() ctrl:GetId() end)
|
||||
end
|
||||
|
||||
function ide:IsWindowShown(win)
|
||||
while win do
|
||||
if not win:IsShown() then return false end
|
||||
win = win:GetParent()
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
function ide:RestorePanelByLabel(name)
|
||||
if not panels[name] then return end
|
||||
return ide:AddPanel(unpack(panels[name]))
|
||||
return self:AddPanel(unpack(panels[name]))
|
||||
end
|
||||
|
||||
function ide:AddTool(name, command, updateui)
|
||||
|
||||
@@ -25,7 +25,8 @@ ide.proto.Document = {__index = {
|
||||
return ide:GetEditorNotebook():GetPageText(self.index):gsub("^"..q(modpref), "")
|
||||
end,
|
||||
SetActive = function(self) SetEditorSelection(self.index) end,
|
||||
Save = function(self) return SaveFile(self.editor, self.filePath) end
|
||||
Save = function(self) return SaveFile(self.editor, self.filePath) end,
|
||||
Close = function(self) return ClosePage(self.index) end,
|
||||
}}
|
||||
|
||||
ide.proto.Plugin = {__index = {
|
||||
@@ -33,7 +34,7 @@ ide.proto.Plugin = {__index = {
|
||||
GetFileName = function(self) return self.fname end,
|
||||
GetConfig = function(self) return ide.config[self.fname] or {} end,
|
||||
GetSettings = function(self) return SettingsRestorePackage(self.fname) end,
|
||||
SetSettings = function(self, settings) SettingsSavePackage(self.fname, settings) end,
|
||||
SetSettings = function(self, settings, opts) SettingsSavePackage(self.fname, settings, opts) end,
|
||||
}}
|
||||
|
||||
ide.proto.Interpreter = {__index = {
|
||||
|
||||
@@ -18,8 +18,24 @@ local layoutlabel = {
|
||||
-- ----------------------------------------------------------------------------
|
||||
-- Initialize the wxConfig for loading/saving the preferences
|
||||
|
||||
local settings = wx.wxFileConfig(GetIDEString("settingsapp"),
|
||||
GetIDEString("settingsvendor"), ide.config.ini or "")
|
||||
local ini = ide.config.ini
|
||||
-- if ini path is relative and includes a directory name, make it relative to the IDE location
|
||||
ini = ini and (not wx.wxIsAbsolutePath(ini) and wx.wxFileName(ini):GetDirCount() > 0
|
||||
and MergeFullPath(GetPathWithSep(ide.editorFilename), ini) or ini)
|
||||
-- check that the ini file doesn't point to a directory
|
||||
if ini and (wx.wxFileName(ini):IsDir() or wx.wxIsAbsolutePath(ini) and wx.wxDirExists(ini)) then
|
||||
print(("Can't use 'ini' configuration setting '%s' that points to a directory instead of a file; ignored.")
|
||||
:format(ini))
|
||||
ini = nil
|
||||
end
|
||||
-- check that the directory is writable
|
||||
if ini and wx.wxIsAbsolutePath(ini) and not wx.wxFileName(ini):IsDirWritable() then
|
||||
print(("Can't use 'ini' configuration setting '%s' that points to a non-writable directory; ignored.")
|
||||
:format(ini))
|
||||
ini = nil
|
||||
end
|
||||
|
||||
local settings = wx.wxFileConfig(GetIDEString("settingsapp"), GetIDEString("settingsvendor"), ini or "")
|
||||
ide.settings = settings
|
||||
|
||||
local function settingsReadSafe(settings,what,default)
|
||||
@@ -238,13 +254,18 @@ function SettingsRestorePackage(package)
|
||||
local path = settings:GetPath()
|
||||
settings:SetPath(packagename)
|
||||
local outtab = {}
|
||||
local report = DisplayOutputLn or print
|
||||
local ismore, key, index = settings:GetFirstEntry("", 0)
|
||||
while (ismore) do
|
||||
local couldread, value = settings:Read(key, "")
|
||||
if couldread then
|
||||
local ok, res = LoadSafe("return "..value)
|
||||
if ok then outtab[key] = res
|
||||
else outtab[key] = nil end
|
||||
else
|
||||
outtab[key] = nil
|
||||
report(("Couldn't load and ignored '%s' settings for package '%s': %s")
|
||||
:format(key, package, res))
|
||||
end
|
||||
end
|
||||
ismore, key, index = settings:GetNextEntry(index)
|
||||
end
|
||||
@@ -252,16 +273,41 @@ function SettingsRestorePackage(package)
|
||||
return outtab
|
||||
end
|
||||
|
||||
function SettingsSavePackage(package, values)
|
||||
local function plaindump(val, opts, done)
|
||||
local keyignore = opts and opts.keyignore or {}
|
||||
local final = done == nil
|
||||
opts, done = opts or {}, done or {}
|
||||
local t = type(val)
|
||||
if t == "table" then
|
||||
done[#done+1] = '{'
|
||||
done[#done+1] = ''
|
||||
for key, value in pairs (val) do
|
||||
if not keyignore[key] then
|
||||
done[#done+1] = '['
|
||||
plaindump(key, opts, done)
|
||||
done[#done+1] = ']='
|
||||
plaindump(value, opts, done)
|
||||
done[#done+1] = ","
|
||||
end
|
||||
end
|
||||
done[#done] = '}'
|
||||
elseif t == "string" then
|
||||
done[#done+1] = ("%q"):format(val):gsub("\010","n"):gsub("\026","\\026")
|
||||
elseif t == "number" then
|
||||
done[#done+1] = ("%.17g"):format(val)
|
||||
else
|
||||
done[#done+1] = tostring(val)
|
||||
end
|
||||
return final and table.concat(done, '')
|
||||
end
|
||||
|
||||
function SettingsSavePackage(package, values, opts)
|
||||
local packagename = "/package/"..package
|
||||
local path = settings:GetPath()
|
||||
local mdb = require('mobdebug')
|
||||
|
||||
settings:DeleteGroup(packagename)
|
||||
settings:SetPath(packagename)
|
||||
for k,v in pairs(values or {}) do
|
||||
settings:Write(k, mdb.line(v, {comment = false, nocode = true}))
|
||||
end
|
||||
for k,v in pairs(values or {}) do settings:Write(k, plaindump(v, opts)) end
|
||||
settings:SetPath(path)
|
||||
end
|
||||
|
||||
@@ -520,8 +566,9 @@ function SettingsRestoreEditorSettings()
|
||||
local path = settings:GetPath()
|
||||
settings:SetPath(listname)
|
||||
|
||||
ide.config.interpreter = settingsReadSafe(settings,"interpreter",ide.config.interpreter)
|
||||
ProjectSetInterpreter(ide.config.interpreter)
|
||||
local interpreter = settingsReadSafe(settings, "interpreter",
|
||||
ide.config.interpreter or ide.config.default.interpreter)
|
||||
ProjectSetInterpreter(interpreter)
|
||||
|
||||
settings:SetPath(path)
|
||||
end
|
||||
|
||||
@@ -80,7 +80,7 @@ function StylesGetDefault()
|
||||
|
||||
-- indicators
|
||||
indicator = {
|
||||
fncall = {st = wxstc.wxSTC_INDIC_HIDDEN}, -- hide by default
|
||||
fncall = {},
|
||||
varlocal = {},
|
||||
varglobal = {},
|
||||
varmasking = {},
|
||||
@@ -360,18 +360,25 @@ function StylesApplyToEditor(styles,editor,font,fontitalic,lexerconvert)
|
||||
if type(styles.fncall) == 'table' and next(styles.fncall)
|
||||
and not (type(indic.fncall) == 'table' and next(indic.fncall)) then indic.fncall = styles.fncall end
|
||||
|
||||
editor:IndicatorSetStyle(0, indic.fncall and indic.fncall.st or ide.wxver >= "2.9.5" and wxstc.wxSTC_INDIC_ROUNDBOX or wxstc.wxSTC_INDIC_TT)
|
||||
editor:IndicatorSetForeground(0, wx.wxColour(unpack(indic.fncall and indic.fncall.fg or {128, 128, 255})))
|
||||
editor:IndicatorSetStyle(1, indic.varlocal and indic.varlocal.st or wxstc.wxSTC_INDIC_DOTS or wxstc.wxSTC_INDIC_TT)
|
||||
editor:IndicatorSetForeground(1, wx.wxColour(unpack(indic.varlocal and indic.varlocal.fg or defaultfg)))
|
||||
editor:IndicatorSetStyle(2, indic.varglobal and indic.varglobal.st or wxstc.wxSTC_INDIC_PLAIN)
|
||||
editor:IndicatorSetForeground(2, wx.wxColour(unpack(indic.varglobal and indic.varglobal.fg or defaultfg)))
|
||||
editor:IndicatorSetStyle(3, indic.varmasking and indic.varmasking.st or wxstc.wxSTC_INDIC_DASH or wxstc.wxSTC_INDIC_DIAGONAL)
|
||||
editor:IndicatorSetForeground(3, wx.wxColour(unpack(indic.varmasking and indic.varmasking.fg or defaultfg)))
|
||||
editor:IndicatorSetStyle(4, indic.varmasked and indic.varmasked.st or wxstc.wxSTC_INDIC_STRIKE)
|
||||
editor:IndicatorSetForeground(4, wx.wxColour(unpack(indic.varmasked and indic.varmasked.fg or defaultfg)))
|
||||
editor:IndicatorSetStyle(5, indic.searchmatch and indic.searchmatch.st or wxstc.wxSTC_INDIC_BOX)
|
||||
editor:IndicatorSetForeground(5, wx.wxColour(unpack(indic.searchmatch and indic.searchmatch.fg or {196, 0, 0})))
|
||||
local fncall = ide:AddIndicator("core.fncall")
|
||||
local varlocal = ide:AddIndicator("core.varlocal")
|
||||
local varglobal = ide:AddIndicator("core.varglobal")
|
||||
local varmasking = ide:AddIndicator("core.varmasking")
|
||||
local varmasked = ide:AddIndicator("core.varmasked")
|
||||
local searchmatch = ide:AddIndicator("core.searchmatch")
|
||||
|
||||
editor:IndicatorSetStyle(fncall, indic.fncall and indic.fncall.st or ide.wxver >= "2.9.5" and wxstc.wxSTC_INDIC_ROUNDBOX or wxstc.wxSTC_INDIC_TT)
|
||||
editor:IndicatorSetForeground(fncall, wx.wxColour(unpack(indic.fncall and indic.fncall.fg or {128, 128, 255})))
|
||||
editor:IndicatorSetStyle(varlocal, indic.varlocal and indic.varlocal.st or wxstc.wxSTC_INDIC_DOTS or wxstc.wxSTC_INDIC_TT)
|
||||
editor:IndicatorSetForeground(varlocal, wx.wxColour(unpack(indic.varlocal and indic.varlocal.fg or defaultfg)))
|
||||
editor:IndicatorSetStyle(varglobal, indic.varglobal and indic.varglobal.st or wxstc.wxSTC_INDIC_PLAIN)
|
||||
editor:IndicatorSetForeground(varglobal, wx.wxColour(unpack(indic.varglobal and indic.varglobal.fg or defaultfg)))
|
||||
editor:IndicatorSetStyle(varmasking, indic.varmasking and indic.varmasking.st or wxstc.wxSTC_INDIC_DASH or wxstc.wxSTC_INDIC_DIAGONAL)
|
||||
editor:IndicatorSetForeground(varmasking, wx.wxColour(unpack(indic.varmasking and indic.varmasking.fg or defaultfg)))
|
||||
editor:IndicatorSetStyle(varmasked, indic.varmasked and indic.varmasked.st or wxstc.wxSTC_INDIC_STRIKE)
|
||||
editor:IndicatorSetForeground(varmasked, wx.wxColour(unpack(indic.varmasked and indic.varmasked.fg or defaultfg)))
|
||||
editor:IndicatorSetStyle(searchmatch, indic.searchmatch and indic.searchmatch.st or wxstc.wxSTC_INDIC_BOX)
|
||||
editor:IndicatorSetForeground(searchmatch, wx.wxColour(unpack(indic.searchmatch and indic.searchmatch.fg or {196, 0, 0})))
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -3,52 +3,52 @@
|
||||
local TR = function(...) return ... end
|
||||
|
||||
ide.config.toolbar.icons = {
|
||||
ID_NEW, ID_OPEN, ID_SAVE, ID_SAVEALL, ID_PROJECTDIRFROMFILE, ID_PROJECTDIRCHOOSE,
|
||||
ID_SEPARATOR,
|
||||
ID_FIND, ID_REPLACE, ID_FINDINFILES,
|
||||
ID_SEPARATOR,
|
||||
ID_RUN, ID_STARTDEBUG, ID_RUNNOW, ID_STOPDEBUG, ID_DETACHDEBUG, ID_BREAK,
|
||||
ID_STEP, ID_STEPOVER, ID_STEPOUT, ID_RUNTO,
|
||||
ID_SEPARATOR,
|
||||
ID_TOGGLEBREAKPOINT, ID_BOOKMARKTOGGLE, ID_VIEWCALLSTACK, ID_VIEWWATCHWINDOW,
|
||||
[ID_FINDINFILES] = false,
|
||||
ID.NEW, ID.OPEN, ID.SAVE, ID.SAVEALL, ID.PROJECTDIRFROMFILE, ID.PROJECTDIRCHOOSE,
|
||||
ID.SEPARATOR,
|
||||
ID.FIND, ID.REPLACE, ID.FINDINFILES,
|
||||
ID.SEPARATOR,
|
||||
ID.RUN, ID.STARTDEBUG, ID.RUNNOW, ID.STOPDEBUG, ID.DETACHDEBUG, ID.BREAK,
|
||||
ID.STEP, ID.STEPOVER, ID.STEPOUT, ID.RUNTO,
|
||||
ID.SEPARATOR,
|
||||
ID.TOGGLEBREAKPOINT, ID.BOOKMARKTOGGLE, ID.VIEWCALLSTACK, ID.VIEWWATCHWINDOW,
|
||||
[ID.FINDINFILES] = false,
|
||||
}
|
||||
|
||||
ide.config.toolbar.iconmap = {
|
||||
[ID_NEW] = {"FILE-NEW", TR("Create an empty document")},
|
||||
[ID_OPEN] = {"FILE-OPEN", TR("Open an existing document")},
|
||||
[ID_SAVE] = {"FILE-SAVE", TR("Save the current document")},
|
||||
[ID_SAVEALL] = {"FILE-SAVE-ALL", TR("Save all open documents")},
|
||||
[ID_PROJECTDIRFROMFILE]= {"DIR-SETUP-FILE", TR("Set project directory from current file")},
|
||||
[ID_PROJECTDIRCHOOSE] = {"DIR-SETUP", TR("Choose a project directory")},
|
||||
[ID_FIND] = {"FIND", TR("Find text")},
|
||||
[ID_REPLACE] = {"FIND-AND-REPLACE", TR("Find and replace text")},
|
||||
[ID_FINDINFILES] = {"FIND-IN-FILES", TR("Find in files")},
|
||||
[ID_RUN] = {"RUN", TR("Execute the current project/file")},
|
||||
[ID_RUNNOW] = {"RUN-NOW", TR("Run as Scratchpad")},
|
||||
[ID_STARTDEBUG] = {"DEBUG-START", TR("Start or continue debugging")},
|
||||
[ID_STOPDEBUG] = {"DEBUG-STOP", TR("Stop the currently running process")},
|
||||
[ID_DETACHDEBUG]= {"DEBUG-DETACH", TR("Stop debugging and continue running the process")},
|
||||
[ID_BREAK] = {"DEBUG-BREAK", TR("Break execution at the next executed line of code")},
|
||||
[ID_RUNTO] = {"DEBUG-RUN-TO", TR("Run to cursor")},
|
||||
[ID_STEP] = {"DEBUG-STEP-INTO", TR("Step into")},
|
||||
[ID_STEPOVER] = {"DEBUG-STEP-OVER", TR("Step over")},
|
||||
[ID_STEPOUT] = {"DEBUG-STEP-OUT", TR("Step out of the current function")},
|
||||
[ID_TOGGLEBREAKPOINT] = {"DEBUG-BREAKPOINT-TOGGLE", TR("Toggle breakpoint")},
|
||||
[ID_BOOKMARKTOGGLE] = {"BOOKMARK-TOGGLE", TR("Toggle bookmark")},
|
||||
[ID_VIEWCALLSTACK] = {"DEBUG-CALLSTACK", TR("View the stack window")},
|
||||
[ID_VIEWWATCHWINDOW] = {"DEBUG-WATCH", TR("View the watch window")},
|
||||
[ID.NEW] = {"FILE-NEW", TR("Create an empty document")},
|
||||
[ID.OPEN] = {"FILE-OPEN", TR("Open an existing document")},
|
||||
[ID.SAVE] = {"FILE-SAVE", TR("Save the current document")},
|
||||
[ID.SAVEALL] = {"FILE-SAVE-ALL", TR("Save all open documents")},
|
||||
[ID.PROJECTDIRFROMFILE]= {"DIR-SETUP-FILE", TR("Set project directory from current file")},
|
||||
[ID.PROJECTDIRCHOOSE] = {"DIR-SETUP", TR("Choose a project directory")},
|
||||
[ID.FIND] = {"FIND", TR("Find text")},
|
||||
[ID.REPLACE] = {"FIND-AND-REPLACE", TR("Find and replace text")},
|
||||
[ID.FINDINFILES] = {"FIND-IN-FILES", TR("Find in files")},
|
||||
[ID.RUN] = {"RUN", TR("Execute the current project/file")},
|
||||
[ID.RUNNOW] = {"RUN-NOW", TR("Run as Scratchpad")},
|
||||
[ID.STARTDEBUG] = {"DEBUG-START", TR("Start or continue debugging")},
|
||||
[ID.STOPDEBUG] = {"DEBUG-STOP", TR("Stop the currently running process")},
|
||||
[ID.DETACHDEBUG]= {"DEBUG-DETACH", TR("Stop debugging and continue running the process")},
|
||||
[ID.BREAK] = {"DEBUG-BREAK", TR("Break execution at the next executed line of code")},
|
||||
[ID.RUNTO] = {"DEBUG-RUN-TO", TR("Run to cursor")},
|
||||
[ID.STEP] = {"DEBUG-STEP-INTO", TR("Step into")},
|
||||
[ID.STEPOVER] = {"DEBUG-STEP-OVER", TR("Step over")},
|
||||
[ID.STEPOUT] = {"DEBUG-STEP-OUT", TR("Step out of the current function")},
|
||||
[ID.TOGGLEBREAKPOINT] = {"DEBUG-BREAKPOINT-TOGGLE", TR("Toggle breakpoint")},
|
||||
[ID.BOOKMARKTOGGLE] = {"BOOKMARK-TOGGLE", TR("Toggle bookmark")},
|
||||
[ID.VIEWCALLSTACK] = {"DEBUG-CALLSTACK", TR("View the stack window")},
|
||||
[ID.VIEWWATCHWINDOW] = {"DEBUG-WATCH", TR("View the watch window")},
|
||||
-- search toolbar
|
||||
[ID_FINDNEXT] = {"FIND", TR("Find")},
|
||||
[ID_FINDREPLACENEXT] = {"FIND-REPLACE-NEXT", TR("Replace next instance")},
|
||||
[ID_FINDREPLACEALL] = {"FIND-AND-REPLACE", TR("Replace all")},
|
||||
[ID_FINDSETDIR] = {"FIND-OPT-SETDIR", TR("Set search directory")},
|
||||
[ID_FINDOPTDIRECTION] = {"FIND-OPT-DOWN", TR("Search direction")},
|
||||
[ID_FINDOPTWRAPWROUND] = {"FIND-OPT-WRAP-AROUND", TR("Wrap around")},
|
||||
[ID_FINDOPTWORD] = {"FIND-OPT-WORD", TR("Match whole word")},
|
||||
[ID_FINDOPTCASE] = {"FIND-OPT-CASE-SENSITIVE", TR("Match case")},
|
||||
[ID_FINDOPTREGEX] = {"FIND-OPT-REGEX", TR("Regular expression")},
|
||||
[ID_FINDOPTCONTEXT] = {"FIND-OPT-CONTEXT", TR("Show context")},
|
||||
[ID_FINDOPTSUBDIR] = {"FIND-OPT-SUBDIR", TR("Search in subdirectories")},
|
||||
[ID_FINDOPTMULTIRESULTS] = {"FIND-OPT-MULTI-RESULTS", TR("Show multiple result windows")},
|
||||
[ID.FINDNEXT] = {"FIND", TR("Find")},
|
||||
[ID.FINDREPLACENEXT] = {"FIND-REPLACE-NEXT", TR("Replace next instance")},
|
||||
[ID.FINDREPLACEALL] = {"FIND-AND-REPLACE", TR("Replace all")},
|
||||
[ID.FINDSETDIR] = {"FIND-OPT-SETDIR", TR("Set search directory")},
|
||||
[ID.FINDOPTDIRECTION] = {"FIND-OPT-DOWN", TR("Search direction")},
|
||||
[ID.FINDOPTWRAPWROUND] = {"FIND-OPT-WRAP-AROUND", TR("Wrap around")},
|
||||
[ID.FINDOPTWORD] = {"FIND-OPT-WORD", TR("Match whole word")},
|
||||
[ID.FINDOPTCASE] = {"FIND-OPT-CASE-SENSITIVE", TR("Match case")},
|
||||
[ID.FINDOPTREGEX] = {"FIND-OPT-REGEX", TR("Regular expression")},
|
||||
[ID.FINDOPTCONTEXT] = {"FIND-OPT-CONTEXT", TR("Show context")},
|
||||
[ID.FINDOPTSUBDIR] = {"FIND-OPT-SUBDIR", TR("Search in subdirectories")},
|
||||
[ID.FINDOPTMULTIRESULTS] = {"FIND-OPT-MULTI-RESULTS", TR("Show multiple result windows")},
|
||||
}
|
||||
|
||||
60
src/main.lua
60
src/main.lua
@@ -34,6 +34,8 @@ package.path = 'lualibs/?.lua;lualibs/?/?.lua;lualibs/?/init.lua;lualibs/?/?/?.
|
||||
|
||||
require("wx")
|
||||
require("bit")
|
||||
require("mobdebug")
|
||||
if jit and jit.on then jit.on() end -- turn jit "on" as "mobdebug" may turn it off for LuaJIT
|
||||
|
||||
dofile "src/util.lua"
|
||||
|
||||
@@ -49,11 +51,12 @@ ide = {
|
||||
app = nil,
|
||||
},
|
||||
editor = {
|
||||
autoactivate = false,
|
||||
foldcompact = true,
|
||||
checkeol = true,
|
||||
saveallonrun = false,
|
||||
caretline = true,
|
||||
showfncall = true,
|
||||
showfncall = false,
|
||||
autotabs = false,
|
||||
usetabs = false,
|
||||
tabwidth = 2,
|
||||
@@ -88,7 +91,9 @@ ide = {
|
||||
mousemove = true,
|
||||
},
|
||||
outline = {
|
||||
jumptocurrentfunction = true,
|
||||
showanonymous = '~',
|
||||
showcurrentfunction = true,
|
||||
showflat = false,
|
||||
showmethodindicator = false,
|
||||
showonefile = false,
|
||||
@@ -96,6 +101,9 @@ ide = {
|
||||
},
|
||||
commandbar = {
|
||||
prefilter = 250, -- number of records after which to apply filtering
|
||||
maxitems = 30, -- max number of items to show
|
||||
width = 0.35, -- <1 -- size in proportion to the app frame width; >1 -- size in pixels
|
||||
showallsymbols = true,
|
||||
},
|
||||
staticanalyzer = {
|
||||
infervalue = false, -- off by default as it's a slower mode
|
||||
@@ -104,7 +112,7 @@ ide = {
|
||||
autocomplete = true,
|
||||
contextlinesbefore = 2,
|
||||
contextlinesafter = 2,
|
||||
showaseditor = true,
|
||||
showaseditor = false,
|
||||
zoom = 0,
|
||||
autohide = false,
|
||||
},
|
||||
@@ -131,6 +139,7 @@ ide = {
|
||||
nodynwords = true,
|
||||
ignorecase = false,
|
||||
symbols = true,
|
||||
droprest = true,
|
||||
strategy = 2,
|
||||
width = 60,
|
||||
maxlength = 450,
|
||||
@@ -150,13 +159,14 @@ ide = {
|
||||
projectautoopen = true,
|
||||
autorecoverinactivity = 10, -- seconds
|
||||
outlineinactivity = 0.250, -- seconds
|
||||
symbolindexinactivity = 2, -- seconds
|
||||
filehistorylength = 20,
|
||||
projecthistorylength = 20,
|
||||
bordersize = 2,
|
||||
savebak = false,
|
||||
singleinstance = false,
|
||||
singleinstanceport = 0xe493,
|
||||
interpreter = "luadeb",
|
||||
showmemoryusage = false,
|
||||
hidpi = false, -- HiDPI/Retina display support
|
||||
hotexit = false,
|
||||
-- file exclusion lists
|
||||
@@ -174,6 +184,7 @@ ide = {
|
||||
packages = {},
|
||||
apis = {},
|
||||
timers = {},
|
||||
onidle = {},
|
||||
|
||||
proto = {}, -- prototypes for various classes
|
||||
|
||||
@@ -384,15 +395,14 @@ local function loadPackages(filter)
|
||||
end
|
||||
|
||||
-- check dependencies and assign file names to each package
|
||||
local report = DisplayOutputLn or print
|
||||
local unload = {}
|
||||
for fname, package in pairs(ide.packages) do
|
||||
if type(package.dependencies) == 'table'
|
||||
and package.dependencies.osname
|
||||
and not package.dependencies.osname:find(ide.osname, 1, true) then
|
||||
(DisplayOutputLn or print)(
|
||||
("Package '%s' not loaded: requires %s platform, but you are running %s.")
|
||||
:format(fname, package.dependencies.osname, ide.osname)
|
||||
)
|
||||
report(("Package '%s' not loaded: requires %s platform, but you are running %s.")
|
||||
:format(fname, package.dependencies.osname, ide.osname))
|
||||
table.insert(unload, fname)
|
||||
end
|
||||
|
||||
@@ -401,10 +411,8 @@ local function loadPackages(filter)
|
||||
or -1
|
||||
local isversion = tonumber(ide.VERSION)
|
||||
if isversion and needsversion > isversion then
|
||||
(DisplayOutputLn or print)(
|
||||
("Package '%s' not loaded: requires version %s, but you are running version %s.")
|
||||
:format(fname, needsversion, ide.VERSION)
|
||||
)
|
||||
report(("Package '%s' not loaded: requires version %s, but you are running version %s.")
|
||||
:format(fname, needsversion, ide.VERSION))
|
||||
table.insert(unload, fname)
|
||||
end
|
||||
package.fname = fname
|
||||
@@ -467,9 +475,13 @@ end
|
||||
|
||||
-- set ide.config environment
|
||||
setmetatable(ide.config, {__index = {os = os, wxstc = wxstc, wx = wx, ID = ID}})
|
||||
ide.config.load = { interpreters = loadInterpreters, specs = loadSpecs,
|
||||
tools = loadTools }
|
||||
ide.config.load = {interpreters = loadInterpreters, specs = loadSpecs, tools = loadTools}
|
||||
do
|
||||
ide.configs = {
|
||||
system = MergeFullPath("cfg", "user.lua"),
|
||||
user = ide.oshome and MergeFullPath(ide.oshome, "."..ide.appname.."/user.lua"),
|
||||
}
|
||||
|
||||
local num = 0
|
||||
ide.config.package = function(p)
|
||||
if p then
|
||||
@@ -478,6 +490,18 @@ do
|
||||
ide.packages[name] = setmetatable(p, ide.proto.Plugin)
|
||||
end
|
||||
end
|
||||
|
||||
local includes = {}
|
||||
ide.config.include = function(c)
|
||||
if c then
|
||||
for _, config in ipairs({ide.configs.system, ide.configs.user}) do
|
||||
local p = config and MergeFullPath(config.."/../", c)
|
||||
includes[p] = (includes[p] or 0) + 1
|
||||
if includes[p] > 1 or LoadLuaConfig(p) then return end
|
||||
end
|
||||
print(("Can't find configuration file '%s' to process."):format(c))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
LoadLuaConfig(ide.appname.."/config.lua")
|
||||
@@ -508,11 +532,6 @@ loadSpecs()
|
||||
loadTools()
|
||||
|
||||
do
|
||||
ide.configs = {
|
||||
system = MergeFullPath("cfg", "user.lua"),
|
||||
user = ide.oshome and MergeFullPath(ide.oshome, "."..ide.appname.."/user.lua"),
|
||||
}
|
||||
|
||||
-- process configs
|
||||
LoadLuaConfig(ide.configs.system)
|
||||
LoadLuaConfig(ide.configs.user)
|
||||
@@ -546,7 +565,7 @@ loadPackages()
|
||||
-- Load App
|
||||
|
||||
for _, file in ipairs({
|
||||
"markup", "settings", "singleinstance", "iofilters", "package",
|
||||
"settings", "singleinstance", "iofilters", "package", "markup",
|
||||
"gui", "filetree", "output", "debugger", "outline", "commandbar",
|
||||
"editor", "findreplace", "commands", "autocomplete", "shellbox",
|
||||
"menu_file", "menu_edit", "menu_search",
|
||||
@@ -620,7 +639,8 @@ local function remapkey(event)
|
||||
local keycode = event:GetKeyCode()
|
||||
local mod = event:GetModifiers()
|
||||
for id, obj in pairs(remap) do
|
||||
if obj:FindFocus():GetId() == obj:GetId() then
|
||||
local focus = obj:FindFocus()
|
||||
if focus and focus:GetId() == obj:GetId() then
|
||||
local ae = wx.wxAcceleratorEntry(); ae:FromString(KSC(id))
|
||||
if ae:GetFlags() == mod and ae:GetKeyCode() == keycode then
|
||||
rerouteMenuCommand(obj, id)
|
||||
|
||||
62
src/util.lua
62
src/util.lua
@@ -148,6 +148,7 @@ function FileSysGetRecursive(path, recursive, spec, opts)
|
||||
local optsort = (opts or {}).sort ~= false
|
||||
local optpath = (opts or {}).path ~= false
|
||||
local optskipbinary = (opts or {}).skipbinary
|
||||
local optondirectory = (opts or {}).ondirectory
|
||||
|
||||
local function spec2list(spec, list)
|
||||
-- return empty list if no spec is provided
|
||||
@@ -221,14 +222,15 @@ function FileSysGetRecursive(path, recursive, spec, opts)
|
||||
local found, file = dir:GetFirst("*", wx.wxDIR_DIRS)
|
||||
while found do
|
||||
local fname = wx.wxFileName(path, file):GetFullPath()
|
||||
if optfolder and ismatch(fname..sep, nil, exmasks) then
|
||||
if optfolder and ismatch(fname..sep, inmasks, exmasks) then
|
||||
report((optpath and fname or fname:gsub(pathpatt, ""))..sep)
|
||||
end
|
||||
|
||||
if recursive and ismatch(fname..sep, nil, exmasks)
|
||||
and (not optondirectory or optondirectory(fname) ~= false)
|
||||
-- check if this name already appears in the path earlier;
|
||||
-- Skip the processing if it does as it could lead to infinite
|
||||
-- recursion with circular references created by symlinks.
|
||||
if recursive and ismatch(fname..sep, nil, exmasks)
|
||||
and select(2, fname:gsub(EscapeMagic(file..sep),'')) <= 2 then
|
||||
table.insert(queue, fname)
|
||||
end
|
||||
@@ -292,12 +294,23 @@ function FileWrite(file, content)
|
||||
local file = wx.wxFile(file, wx.wxFile.write)
|
||||
if not file:IsOpened() then return nil, wx.wxSysErrorMsg() end
|
||||
|
||||
file:Write(content, #content)
|
||||
local ok = file:Write(content, #content) == #content
|
||||
file:Close()
|
||||
return true
|
||||
return ok, not ok and wx.wxSysErrorMsg() or nil
|
||||
end
|
||||
|
||||
function FileRead(fname, length)
|
||||
function FileSize(fname)
|
||||
if not wx.wxFileExists(fname) then return end
|
||||
local size = wx.wxFileSize(fname)
|
||||
-- size can be returned as 0 for symlinks, so check with wxFile:Length();
|
||||
-- can't use wxFile:Length() as it's reported incorrectly for some non-seekable files
|
||||
-- (see https://github.com/pkulchenko/ZeroBraneStudio/issues/458);
|
||||
-- the combination of wxFileSize and wxFile:Length() should do the right thing.
|
||||
if size == 0 then size = wx.wxFile(fname, wx.wxFile.read):Length() end
|
||||
return size
|
||||
end
|
||||
|
||||
function FileRead(fname, length, callback)
|
||||
-- on OSX "Open" dialog allows to open applications, which are folders
|
||||
if wx.wxDirExists(fname) then return nil, "Can't read directory as file." end
|
||||
|
||||
@@ -305,7 +318,21 @@ function FileRead(fname, length)
|
||||
local file = wx.wxFile(fname, wx.wxFile.read)
|
||||
if not file:IsOpened() then return nil, wx.wxSysErrorMsg() end
|
||||
|
||||
local _, content = file:Read(length or wx.wxFileSize(fname))
|
||||
if type(callback) == 'function' then
|
||||
length = length or 8192
|
||||
local pos = 0
|
||||
while true do
|
||||
local len, content = file:Read(length)
|
||||
local res, msg = callback(content) -- may return `false` to signal to stop
|
||||
if res == false then return false, msg or "Unknown error" end
|
||||
if len < length then break end
|
||||
pos = pos + len
|
||||
file:Seek(pos)
|
||||
end
|
||||
return true, wx.wxSysErrorMsg()
|
||||
end
|
||||
|
||||
local _, content = file:Read(length or FileSize(fname))
|
||||
file:Close()
|
||||
return content, wx.wxSysErrorMsg()
|
||||
end
|
||||
@@ -342,15 +369,15 @@ end
|
||||
function FixUTF8(s, repl)
|
||||
local p, len, invalid = 1, #s, {}
|
||||
while p <= len do
|
||||
if p == s:find("[%z\1-\127]", p) then p = p + 1
|
||||
elseif p == s:find("[\194-\223][\128-\191]", p) then p = p + 2
|
||||
elseif p == s:find( "\224[\160-\191][\128-\191]", p)
|
||||
or p == s:find("[\225-\236][\128-\191][\128-\191]", p)
|
||||
or p == s:find( "\237[\128-\159][\128-\191]", p)
|
||||
or p == s:find("[\238-\239][\128-\191][\128-\191]", p) then p = p + 3
|
||||
elseif p == s:find( "\240[\144-\191][\128-\191][\128-\191]", p)
|
||||
or p == s:find("[\241-\243][\128-\191][\128-\191][\128-\191]", p)
|
||||
or p == s:find( "\244[\128-\143][\128-\191][\128-\191]", p) then p = p + 4
|
||||
if s:find("^[%z\1-\127]", p) then p = p + 1
|
||||
elseif s:find("^[\194-\223][\128-\191]", p) then p = p + 2
|
||||
elseif s:find( "^\224[\160-\191][\128-\191]", p)
|
||||
or s:find("^[\225-\236][\128-\191][\128-\191]", p)
|
||||
or s:find( "^\237[\128-\159][\128-\191]", p)
|
||||
or s:find("^[\238-\239][\128-\191][\128-\191]", p) then p = p + 3
|
||||
elseif s:find( "^\240[\144-\191][\128-\191][\128-\191]", p)
|
||||
or s:find("^[\241-\243][\128-\191][\128-\191][\128-\191]", p)
|
||||
or s:find( "^\244[\128-\143][\128-\191][\128-\191]", p) then p = p + 4
|
||||
else
|
||||
local repl = type(repl) == 'function' and repl(s:sub(p,p)) or repl
|
||||
s = s:sub(1, p-1)..repl..s:sub(p+1)
|
||||
@@ -403,11 +430,11 @@ function TR(msg, count)
|
||||
-- if there is count and no corresponding message, then
|
||||
-- get the message from the (default) english language,
|
||||
-- otherwise the message is not going to be pluralized properly
|
||||
if count and not message then
|
||||
if count and (not message or type(message) == 'table' and not next(message)) then
|
||||
message, counter = messages.en[msg], messages.en[0]
|
||||
end
|
||||
return count and counter and message and type(message) == 'table'
|
||||
and message[counter(count)] or message or msg
|
||||
and message[counter(count)] or (type(message) == 'string' and message or msg)
|
||||
end
|
||||
|
||||
-- wxwidgets 2.9.x may report the last folder twice (depending on how the
|
||||
@@ -490,6 +517,7 @@ function LoadLuaConfig(filename,isstring)
|
||||
report(("Error while processing configuration %s: '%s'."):format(msg, err))
|
||||
end
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
function LoadSafe(data)
|
||||
|
||||
@@ -88,8 +88,14 @@ editor:MarkerAdd(0, FILE_MARKER)
|
||||
ide:GetDocument(editor):Save()
|
||||
is(editor:GetText():match("Updated %d"), "Updated 0", "Replace fails on invalid line numbers.")
|
||||
|
||||
|
||||
findReplace:SetFind("something")
|
||||
findReplace:Show() -- set focus on the find
|
||||
ide.frame:ProcessEvent(wx.wxCommandEvent(wx.wxEVT_COMMAND_MENU_SELECTED, ID_CUT))
|
||||
ok(findReplace:GetFind() == nil, "`Cut` command cuts content of the `Find` control in the search panel.")
|
||||
|
||||
-- cleanup
|
||||
findReplace.panel:Hide()
|
||||
findReplace:Hide()
|
||||
while editor:CanUndo() do editor:Undo() end
|
||||
ide:GetDocument(editor):SetModified(false)
|
||||
ClosePage()
|
||||
|
||||
@@ -96,8 +96,29 @@ ok(c == 1,
|
||||
("Auto-complete doesn't offer duplicates with the same name ('%s').")
|
||||
:format(ac))
|
||||
|
||||
for k, v in pairs({
|
||||
ree = "repeat require",
|
||||
ret = "return repeat rawget rawset",
|
||||
}) do
|
||||
local ac = CreateAutoCompList(editor, k)
|
||||
is(ac, v,
|
||||
("Auto-complete for '%s' offers results in the expected order."):format(k))
|
||||
end
|
||||
|
||||
ProjectSetInterpreter(interpreter)
|
||||
|
||||
editor:SetText('')
|
||||
editor:AddText('local t = require("table")\nt.')
|
||||
local ac = CreateAutoCompList(editor, "t.")
|
||||
ok(ac ~= nil and ac:find("concat") ~= nil,
|
||||
"Auto-complete recognizes variables set based on `require`.")
|
||||
|
||||
editor:SetText('')
|
||||
editor:AddText('local table = require("io")\nt = require("table")\nt.')
|
||||
local ac = CreateAutoCompList(editor, "t.")
|
||||
ok(ac ~= nil and ac:find("concat") ~= nil,
|
||||
"Auto-complete recognizes variables set based on `require` even when it's re-assigned.")
|
||||
|
||||
editor:SetText('')
|
||||
editor:AddText('print(1,io.')
|
||||
|
||||
@@ -112,6 +133,15 @@ ok(value and value:find("close"), "Auto-complete is shown after comma.")
|
||||
ok(not (CreateAutoCompList(editor, "pri.") or ""):match('print'),
|
||||
"Auto-complete doesn't offer 'print' after 'pri.'.")
|
||||
|
||||
editor:SetText('')
|
||||
editor:AddText('local name = "abc"; local namelen = #name')
|
||||
IndicateAll(editor)
|
||||
EditorAutoComplete(editor)
|
||||
local isactive = editor:AutoCompActive()
|
||||
editor:AutoCompCancel() -- cleanup
|
||||
|
||||
ok(not isactive, "Auto-complete is not shown if typed sequence matches one of the options.")
|
||||
|
||||
editor:SetText('')
|
||||
editor:AddText(' -- a = io\na:')
|
||||
editor:Colourise(0, -1) -- set proper styles
|
||||
|
||||
@@ -2,6 +2,8 @@ ok(not LoadFile(''), "Don't load file with an empty name.")
|
||||
ok(not LoadFile("\r\n "), "Don't load file with name that only has whitespaces.")
|
||||
ok(not LoadFile('t'), "Don't load file with directory as the name (1/2).")
|
||||
ok(not LoadFile('./'), "Don't load file with directory as the name (2/2).")
|
||||
ok(pcall(function() LoadFile('some-nonexisting-name') end), "Load non-existing files.")
|
||||
ClosePage()
|
||||
|
||||
local fullpath = MergeFullPath(wx.wxFileName.GetCwd(), 't/test.lua')
|
||||
ok(ActivateFile('t/test.lua:10'), "Load file:line.")
|
||||
@@ -13,7 +15,10 @@ ClosePage() -- close activated file
|
||||
local luas = FileSysGetRecursive('.', true, '*.lua')
|
||||
local more = FileSysGetRecursive('.', true, '*.lua; *.more')
|
||||
cmp_ok(#luas, '>', 0, "List of files is returned for '.lua' extension")
|
||||
is(#luas, #more, "List of files is returned for '.lua' and '.lua; .more' is the same")
|
||||
is(#luas, #more, "List of files is returned for '.lua' and '.lua; .more' is the same.")
|
||||
|
||||
local luasnodir = FileSysGetRecursive('.', true, '*.lua', {folder = false})
|
||||
is(#luas, #luasnodir, "List of files is returned for '.lua' does not include folders.")
|
||||
|
||||
local fcopy = "t/copy.lua!"
|
||||
ok(FileCopy("t/test.lua", fcopy), "File copied successfully.")
|
||||
|
||||
43
t/9-misc.lua
Normal file
43
t/9-misc.lua
Normal file
@@ -0,0 +1,43 @@
|
||||
for _, ln in ipairs({'cn', 'de', 'eo', 'pt-br', 'es', 'fr', 'it', 'ru'}) do
|
||||
local func = loadfile(("cfg/i18n/%s.lua"):format(ln))
|
||||
ok(type(func) == 'function' and func() ~= nil, ("Loaded '%s' language file."):format(ln))
|
||||
end
|
||||
|
||||
local fixed, invalid = FixUTF8("+\128\129\130+\194\127+", "+")
|
||||
is(fixed, "++++++\127+", "Invalid UTF8 is fixed (1/2).")
|
||||
is(#invalid, 4, "Invalid UTF8 is fixed (2/2).")
|
||||
|
||||
local UTF8s = {
|
||||
"ABCDE", -- 1 byte codes
|
||||
"\194\160\194\161\194\162\194\163\194\164", -- 2 byte codes
|
||||
"\225\160\160\225\161\161\225\162\162\225\163\163\225\164\164", -- 3 byte codes
|
||||
}
|
||||
|
||||
for n, code in ipairs(UTF8s) do
|
||||
is(FixUTF8(code), code, ("Valid UTF8 code is left unmodified (%d/%d)."):format(n, #UTF8s))
|
||||
end
|
||||
|
||||
|
||||
local editor = NewFile()
|
||||
|
||||
for _, tst in ipairs({
|
||||
"_ = .1 + 1. + 1.1 + 0xa",
|
||||
"_ = 1e1 + 0xa.ap1",
|
||||
"_ = 0xabcULL + 0x1LL + 1LL + 1ULL",
|
||||
"_ = .1e1i + 0x1.1p1i + 0xa.ap1i",
|
||||
}) do
|
||||
ok(AnalyzeString(tst) ~= nil,
|
||||
("Numeric expression '%s' can be checked with static analysis."):format(tst))
|
||||
|
||||
editor:SetText(tst)
|
||||
editor:ResetTokenList()
|
||||
while IndicateAll(editor) do end
|
||||
local defonly = true
|
||||
for _, token in ipairs(GetEditor():GetTokenList()) do
|
||||
if token.name ~= '_' then defonly = false end
|
||||
end
|
||||
ok(defonly == true, ("Numeric expression '%s' can be checked with inline parser."):format(tst))
|
||||
end
|
||||
|
||||
ide:GetDocument(editor).isModified = false
|
||||
ClosePage()
|
||||
@@ -14,6 +14,7 @@ return binpath and {
|
||||
local myMenu = wx.wxMenu{
|
||||
{ ID "glslc.compile.input", "&Custom Args", "when set a popup for custom compiler args will be envoked", wx.wxITEM_CHECK },
|
||||
{ ID "glslc.compile.separable", "Separable", "when set separable programs are used", wx.wxITEM_CHECK },
|
||||
{ ID "glslc.compile.preproc", "Preprocess File", "Pre-process the files only, resolving #inlcudes", wx.wxITEM_CHECK },
|
||||
{ },
|
||||
{ ID "glslc.compile.ext", "Compile from .ext\tCtrl-1", "Compile based on file extension" },
|
||||
{ ID "glslc.compile.all", "Link multiple .ext\tCtrl-2", "Tries to link multiple shaders based on filename" },
|
||||
@@ -31,6 +32,7 @@ return binpath and {
|
||||
local data = {}
|
||||
data.customarg = false
|
||||
data.separable = false
|
||||
data.preproc = false
|
||||
data.custom = ""
|
||||
data.domains = {
|
||||
[ID "glslc.compile.vertex"] = 1,
|
||||
@@ -312,7 +314,11 @@ return binpath and {
|
||||
data.separable = event:IsChecked()
|
||||
end)
|
||||
|
||||
|
||||
frame:Connect(ID "glslc.compile.preproc",wx.wxEVT_COMMAND_MENU_SELECTED,
|
||||
function(event)
|
||||
data.preproc = event:IsChecked()
|
||||
end)
|
||||
|
||||
-- Compile
|
||||
local function evCompile(event)
|
||||
local filename,info = GetEditorFileAndCurInfo()
|
||||
@@ -346,7 +352,11 @@ return binpath and {
|
||||
end
|
||||
|
||||
local function getCompileArg(filename,domain)
|
||||
return "-profile "..data.domainprofiles[domain]..' "'..filename:GetFullPath()..'" '
|
||||
local str = ""
|
||||
if (data.preproc) then
|
||||
str = '-P "'..filename:GetPath(wx.wxPATH_GET_VOLUME + wx.wxPATH_GET_SEPARATOR).."_"..filename:GetFullName()..'" '
|
||||
end
|
||||
return str.."-profile "..data.domainprofiles[domain]..' "'..filename:GetFullPath()..'" '
|
||||
end
|
||||
|
||||
|
||||
@@ -408,6 +418,7 @@ return binpath and {
|
||||
|
||||
local cmdline = binpath.."/glslc.exe "
|
||||
cmdline = cmdline..(args and args.." " or "")
|
||||
cmdline = cmdline..(data.preproc and "-E " or "")
|
||||
cmdline = cmdline..(data.separable and "-separable " or "")
|
||||
cmdline = cmdline.."-o "..outname.." "
|
||||
cmdline = cmdline..compileargs
|
||||
@@ -431,7 +442,7 @@ return binpath and {
|
||||
return str,postfunc
|
||||
end
|
||||
|
||||
local wdir = filename:GetPath()
|
||||
local wdir = filename:GetPath(wx.wxPATH_GET_VOLUME)
|
||||
|
||||
-- run compiler process
|
||||
CommandLineRun(cmdline,wdir,true,nil,compilecallback)
|
||||
|
||||
BIN
zbstudio.exe
BIN
zbstudio.exe
Binary file not shown.
@@ -2,7 +2,8 @@
|
||||
|
||||
ZBS_PATH=${0%/*/*}
|
||||
if [ ! -d $ZBS_PATH ]; then ZBS_PATH=${PWD%/*}; fi
|
||||
export DYLD_LIBRARY_PATH="$ZBS_PATH/ZeroBraneStudio/bin"
|
||||
if [[ ! -e $DYLD_LIBRARY_PATH/libedit.3.dylib && ! -e /usr/lib/libedit.3.dylib ]]
|
||||
then ln -s /usr/lib/libedit.2.dylib $DYLD_LIBRARY_PATH/libedit.3.dylib; fi
|
||||
ZBS_BIN="$ZBS_PATH/ZeroBraneStudio/bin"
|
||||
if [[ ! -e "$ZBS_BIN/libedit.3.dylib" && ! -e /usr/lib/libedit.3.dylib ]]
|
||||
then ln -s /usr/lib/libedit.2.dylib "$ZBS_BIN/libedit.3.dylib"; fi
|
||||
export DYLD_LIBRARY_PATH="$ZBS_BIN:${DYLD_LIBRARY_PATH}"
|
||||
(cd "$ZBS_PATH/ZeroBraneStudio"; bin/lua src/main.lua zbstudio "$@")
|
||||
|
||||
@@ -31,6 +31,7 @@ unhidewindow = { -- allow unhiding of GUI windows
|
||||
ConsoleWindowClass = 2,
|
||||
-- ignore the following windows when "showing all"
|
||||
IME = 0,
|
||||
wxDisplayHiddenWindow = 0,
|
||||
['MSCTFIME UI'] = 0,
|
||||
-- GLUT/opengl/SDL applications (for example, moai or love2d)
|
||||
GLUT = 1, FREEGLUT = 1, SDL_app = 1,
|
||||
|
||||
Reference in New Issue
Block a user