Compare commits
198 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
41041733c4 | ||
|
|
16257035ca | ||
|
|
4fde42e919 | ||
|
|
d08ac51fee | ||
|
|
1116365a43 | ||
|
|
9c05c8e31a | ||
|
|
3ce020c0e3 | ||
|
|
27ea52e5bd | ||
|
|
cc598490fa | ||
|
|
b361a0b6a5 | ||
|
|
2b4c5eafc8 | ||
|
|
e910f945b5 | ||
|
|
7a838227c7 | ||
|
|
d86582ebc6 | ||
|
|
d8d1fc6f67 | ||
|
|
0ee46ba55f | ||
|
|
e179a63b8c | ||
|
|
0018964637 | ||
|
|
7010d51bc7 | ||
|
|
7b09399ede | ||
|
|
a36e746d45 | ||
|
|
f7ec693b03 | ||
|
|
056dd6dedf | ||
|
|
1c8b0d1101 | ||
|
|
bc5d2eed97 | ||
|
|
35692e3f00 | ||
|
|
bb06087881 | ||
|
|
9442292c0f | ||
|
|
b1eba7ff3c | ||
|
|
d69a3724ac | ||
|
|
353fa0dff5 | ||
|
|
af241fffe7 | ||
|
|
227db9a10f | ||
|
|
2cf79f22a8 | ||
|
|
798a31a64f | ||
|
|
59a90c7030 | ||
|
|
ee1a4a5752 | ||
|
|
01ef664895 | ||
|
|
2f339302d1 | ||
|
|
aaf7723014 | ||
|
|
89751b430d | ||
|
|
b9de69d4e9 | ||
|
|
b4c7d6deaa | ||
|
|
71667d2912 | ||
|
|
fa704f5e2c | ||
|
|
967a7fb8ad | ||
|
|
3e7fb7f8b8 | ||
|
|
3e0abc6953 | ||
|
|
216a1e5350 | ||
|
|
ea3c98c65f | ||
|
|
fb1c754532 | ||
|
|
3585de0f21 | ||
|
|
3bd4fc0305 | ||
|
|
0e355074cd | ||
|
|
7e6249ef3f | ||
|
|
af2a000af1 | ||
|
|
1a9efa6e5b | ||
|
|
dd97978d56 | ||
|
|
81aaaef538 | ||
|
|
205c71fcf9 | ||
|
|
3ea892018f | ||
|
|
6c14118f32 | ||
|
|
824cbdfec5 | ||
|
|
67e2a71e63 | ||
|
|
49e1e86457 | ||
|
|
9525511b61 | ||
|
|
51ce63c256 | ||
|
|
58ba572e21 | ||
|
|
bf6352936b | ||
|
|
3100e1022d | ||
|
|
2ea70b6d4b | ||
|
|
a6501ffb44 | ||
|
|
519ed0bd3a | ||
|
|
974726dac9 | ||
|
|
efc0b277fe | ||
|
|
23d1e03dde | ||
|
|
9d07d80b5b | ||
|
|
1829e78d05 | ||
|
|
a71df9a2ac | ||
|
|
62f72a7daa | ||
|
|
2601c3f562 | ||
|
|
1f7f96b8fd | ||
|
|
e142566496 | ||
|
|
9824a1290f | ||
|
|
a5d244f594 | ||
|
|
3b119a0efa | ||
|
|
c9898f7839 | ||
|
|
5ed5032c94 | ||
|
|
96c3f838d6 | ||
|
|
707c0d8f64 | ||
|
|
367a7abadb | ||
|
|
076a48c378 | ||
|
|
5cffb33c25 | ||
|
|
9107b369f9 | ||
|
|
a721217996 | ||
|
|
09599f8b7b | ||
|
|
c65d14f759 | ||
|
|
9aa0bf200f | ||
|
|
4fb73d0eef | ||
|
|
9bbf4308d5 | ||
|
|
e1d6f594d5 | ||
|
|
b609038b3f | ||
|
|
79e7695af4 | ||
|
|
fef069abd9 | ||
|
|
e1195631f4 | ||
|
|
63b018c321 | ||
|
|
9f2f1a1b9b | ||
|
|
8170111c9b | ||
|
|
812000751e | ||
|
|
8e59efb236 | ||
|
|
3b7b0891d9 | ||
|
|
e9b97650f3 | ||
|
|
661ecf094e | ||
|
|
f3d6188756 | ||
|
|
eeb44e6ba5 | ||
|
|
c8fa7b77ac | ||
|
|
3d54e08bee | ||
|
|
43b90458d9 | ||
|
|
be331ca054 | ||
|
|
c57ad47a0e | ||
|
|
be298b0741 | ||
|
|
0d4cd7821c | ||
|
|
e3d16402c1 | ||
|
|
ad044c9cc9 | ||
|
|
ce53c92e32 | ||
|
|
4a58901580 | ||
|
|
e0cbd25254 | ||
|
|
aacb686b55 | ||
|
|
38c466c839 | ||
|
|
64789b868d | ||
|
|
9914cf9943 | ||
|
|
9970e8194c | ||
|
|
93545f7b8e | ||
|
|
cf5c468267 | ||
|
|
c7a4967bde | ||
|
|
2ee9599863 | ||
|
|
bcc0d50562 | ||
|
|
d6593abda4 | ||
|
|
395fb2ee48 | ||
|
|
0f98d10af1 | ||
|
|
7b35439f4b | ||
|
|
7c5a63d97e | ||
|
|
a91ea001f2 | ||
|
|
29b9da14a1 | ||
|
|
c26e2f5f73 | ||
|
|
c2f2e2094a | ||
|
|
6f974cc680 | ||
|
|
223adbc385 | ||
|
|
931bd8173f | ||
|
|
d68de22496 | ||
|
|
51a539ae78 | ||
|
|
7c1b8c70c7 | ||
|
|
3bf164c109 | ||
|
|
42d9da815a | ||
|
|
36fbb1ca96 | ||
|
|
320fa6e89f | ||
|
|
bc78623d53 | ||
|
|
b171da7620 | ||
|
|
fd00ee6ee1 | ||
|
|
e9f4b654e8 | ||
|
|
0be23569f9 | ||
|
|
5504029af6 | ||
|
|
fb53b619b0 | ||
|
|
6ccc47c5c4 | ||
|
|
88572edfad | ||
|
|
9f8d5ae06c | ||
|
|
9b26cec444 | ||
|
|
db77afc787 | ||
|
|
71e78c3595 | ||
|
|
ce6a740530 | ||
|
|
23445bb2b9 | ||
|
|
0dac8a221f | ||
|
|
bcc17ca3ad | ||
|
|
5b882697c4 | ||
|
|
85043df0f6 | ||
|
|
d2a12c55e7 | ||
|
|
c66fc390b6 | ||
|
|
0ea7b9f281 | ||
|
|
02dff1e588 | ||
|
|
4acb113ab3 | ||
|
|
5f872039af | ||
|
|
66ae840e66 | ||
|
|
5441950fc7 | ||
|
|
5a312dee65 | ||
|
|
1bbf76d339 | ||
|
|
cf4e4a9edd | ||
|
|
e0ab26cb2b | ||
|
|
1ead741fe2 | ||
|
|
62bcc65337 | ||
|
|
fde1a8998f | ||
|
|
7ab528edd7 | ||
|
|
9f59dd5542 | ||
|
|
ff136b025f | ||
|
|
8e49682ea0 | ||
|
|
be4c0d646a | ||
|
|
9960b046f9 | ||
|
|
5d86cc51bc | ||
|
|
03c0677789 |
178
CHANGELOG.md
178
CHANGELOG.md
@@ -1,5 +1,183 @@
|
||||
# ZeroBrane Studio Changelog
|
||||
|
||||
## v1.00 (Mar 13 2015)
|
||||
|
||||
### Highlights
|
||||
- Added directory mapping to the project tree (closes #223).
|
||||
- Added `Run to Cursor` (closes #413).
|
||||
- Added support to set/unset start file for a project (closes #411).
|
||||
- Added opening/creating file from the command bar (#31).
|
||||
- Added `staticanalyzer.infervalue` to enable deeper/slower analysis (#414).
|
||||
- Updated Corona API for v2015.2576.
|
||||
|
||||
### Improvements
|
||||
- Added `staticanalyzer.infervalue` to enable deeper/slower analysis (#414).
|
||||
- Added project path in the error reporting for love2d/corona interpreters.
|
||||
- Added an example with enabling Emacs bindings in the editor.
|
||||
- Added Russian translations for new messages (#70).
|
||||
- Added a warning on class resolution taking too much time in auto-complete.
|
||||
- Added check for empty/comment lines when breakpoints are set.
|
||||
- Added directory mapping to the project tree (closes #223).
|
||||
- Added `Run to Cursor` (closes #413).
|
||||
- Added document method `GetTabText` (#166).
|
||||
- Added showing love2d console when requested.
|
||||
- Added support to set/unset start file for a project (closes #411).
|
||||
- Added requesting attention for debugger even when the file is not activated.
|
||||
- Added reporting of location in more cases when debugging is suspended.
|
||||
- Added starting debugging even when the file is not opened in the IDE.
|
||||
- Added switching project directory from the command bar (#31).
|
||||
- Added trimming of trailing spaces in the directory name when switching projects.
|
||||
- Added closing preview if the file failed to load in commandbar (#31).
|
||||
- Added handling of `Ctrl/Cmd-Enter` in commandbar to force open file (#31).
|
||||
- Added skipping loading files with empty and directory names.
|
||||
- Added trimming of trailing spaces in the file name when loading a file.
|
||||
- Added file selection in the project tree after saving a new file.
|
||||
- Added opening/creating file from the command bar (#31).
|
||||
- Disabled menu item for renaming/editing for mapped directories (#223).
|
||||
- Disabled field checks for local parameters in staic analyzer (closes #421).
|
||||
- Improved static analyzer to handle more cases with `infervalue` set (#414).
|
||||
- Refactored use of image constants in the project tree.
|
||||
- Refactored document modification tracking to remove `SetDocumentModified`.
|
||||
- Refactored path normalization for project directory.
|
||||
- Updated Corona API for v2015.2576.
|
||||
- Updated static analyzer output formatting.
|
||||
- Updated analyzer to also check value of `pairs` parameter (#414).
|
||||
- Updated `debugging suspended` message to not trigger with `runonstart`.
|
||||
- Updated messages in interpreters to fix line endings.
|
||||
- Updated lettercase in menu items for consistency.
|
||||
- Updated UpdateUI handling to fix multi-view refresh, as in DocumentMap (#352).
|
||||
- Updated Outline to use editor tab text (instead of a file name).
|
||||
- Updated message on failure to start debugging to add the file name.
|
||||
- Updated `debugging suspended` message to put location in quotes.
|
||||
- Updated line check in command bar to not trigger on Windows file names.
|
||||
- updated glewgl api (glew 1.12.0)
|
||||
|
||||
### Fixes
|
||||
- Fixed analyzer to check value of `ipairs` parameter (fixes #414).
|
||||
- Fixed OS detection on Linux that sets `DYLD_LIBRARY_PATH` (fixes #417).
|
||||
- Fixed saving auto-recovery record with no editor tabs opened (fixes #418).
|
||||
- Fixed looping in auto-complete when processing recursive assignments.
|
||||
- Fixed filename used in the recovery message.
|
||||
- Fixed Output/Console window to stay shown after failure to start debugging.
|
||||
- Fixed an issue with search initiated from Output/Console panels (fixes #406).
|
||||
- Fixed auto-complete for non-default `acandtip.strategy` values (fixed #409).
|
||||
- Fixed loading file with absolute name and line number (fixes #408).
|
||||
|
||||
## v0.95 (Jan 30 2015)
|
||||
|
||||
### Highlights
|
||||
- Added fuzzy search with `Go To File`, `Go To Symbol`, `Go To Line`, and `Insert Library Function`.
|
||||
- Added auto-complete support for LDoc '@tparam' and '@param[type=...]'.
|
||||
- Added armhf architecture support (thanks to Ard van Breemen).
|
||||
- Updated static analyzer to support `goto`/labels and bitops for Lua 5.2/5.3.
|
||||
- Updated internal parser to support Lua 5.2/5.3 syntax.
|
||||
- Updated Mobdebug to improve Lua 5.3 compatibility (thanks to Andrew Starks).
|
||||
- Update API descriptions with functions new in Lua 5.3.
|
||||
|
||||
### Special thanks
|
||||
- To [Ard van Breemen](https://github.com/ardje) for armhf architecture support.
|
||||
- To [Evandro Costa](https://github.com/evandro-costa) for Brazilian Portuguese (pt-br) translation.
|
||||
- To [Andrew Starks](https://github.com/andrewstarks) for Lua 5.3 compatibility improvements.
|
||||
- To [Alexis Jarreau](https://github.com/Fringale) for French translation update.
|
||||
- To [Leo Bartoloni](https://github.com/bartoleo) for Italian translation update.
|
||||
- To [riidom](https://github.com/riidom) for German translation update.
|
||||
|
||||
### Improvements
|
||||
- Added showing/hiding Output/Console panel during debugging.
|
||||
- Added `bordersize` to configure sash size.
|
||||
- Added package `LoadFile` method (#166).
|
||||
- Added Russian translation for new messages (#70).
|
||||
- Added syntax highlighting for functions new in Lua 5.3.
|
||||
- Added `commandbar.prefilter` to commandbar to improve performance (#31).
|
||||
- Added custom formatting for APIs.
|
||||
- Added `Insert Library Function` to `Navigate` menu.
|
||||
- Added hiding tooltip/auto-complete popup after undo/redo/delete operations.
|
||||
- Added `api` handling to the config to support custom APIs.
|
||||
- Added Lapis and Moonscript debugging links to README.
|
||||
- Added `Contributing` section to README.
|
||||
- Added LICENSE link to README.
|
||||
- Added Lua 5.3 links to README; updated links to remove '.html'.
|
||||
- Added `PgUp` and `PgDn` navigation for commandbar (#31).
|
||||
- Added auto-complete support for LDoc '@tparam' and '@param[type=...]'.
|
||||
- Added Brazilian Portuguese (pt-br) translation.
|
||||
- Added showing the symbol under cursor in `Go To Symbol` (#385).
|
||||
- Added `editor:ValueFromPosition` method (#166).
|
||||
- Added `Go To Symbol` support to the commandbar (#31, closes #385).
|
||||
- Allowed renaming of files with different case in the project tree.
|
||||
- Added update of file name in the Outline when editor tab is updated (#337).
|
||||
- Added check for `styles` being reset in the config file (closes #383).
|
||||
- Added loading file from project directory with "proj file" on command line.
|
||||
- Added skipping of binary files in commandbar preview (#31).
|
||||
- Added CONTRIBUTING file.
|
||||
- Added clearing Output window before showing Find-in-Files results.
|
||||
- Added default values for Outline config settings (#337).
|
||||
- Added package `GetProjectNotebook` method (#166).
|
||||
- Added saving Outline tab configuration in the Project notebook (#337).
|
||||
- Added `outline.sort` option to sort items in the outline (#337).
|
||||
- Added `outline.showflat` option to show flat outline (#337).
|
||||
- Added package `GetOutlineTree` method (#166).
|
||||
- Add support for armhf architecture
|
||||
- Added document `Save` method (#166).
|
||||
- Added `init.lua` to the search path (fixes `require 'dist'`).
|
||||
- Added forced garbage collection when switching from the app.
|
||||
- Added penalty for missing characters in fuzzy search (#31).
|
||||
- Added line navigation to `Navigate` menu (#31).
|
||||
- Added handling of line numbers in command bar (#31).
|
||||
- Added caching to improve commandbar performance on large folders (#31).
|
||||
- Added setting explicit focus on preview tab in commandbar (#31).
|
||||
- Added preview on first selection in commandbar (#31).
|
||||
- Added file preview to commandbar (#31).
|
||||
- Added fuzzy search for files in commandbar (closes #31).
|
||||
- Added displaying the list of current tabs for commandbar (#31).
|
||||
- Added commandbar prototype for file navigation (#31).
|
||||
- Added reset of tokens when editor content is reloaded (#337).
|
||||
- Enabled html and C/cpp specs by default (#395).
|
||||
- Improved handling of complex types in LDoc expressions in auto-complete.
|
||||
- Improved failed search 'shake' visualization by forcing window redraw.
|
||||
- Improved command line file check for relative files on Windows.
|
||||
- Split console output into shorter lines to improve memory usage and handling.
|
||||
- Renamed `debugger.stackmax*` settings to `debugger.maxdata*`.
|
||||
- Removed double check for invalid UTF-8 output in console.
|
||||
- Refactored ID handling to allow using `ID.COMMENT` in config files.
|
||||
- Removed `wxwidgets` from the list of default APIs for Lua interpreters.
|
||||
- Refactored handling of special symbols in commandbar (#31).
|
||||
- Removed border from tree controls (#305).
|
||||
- Updated language files with new messages (#70).
|
||||
- Update API descriptions with functions new in Lua 5.3.
|
||||
- Updated loose parser to support Lua 5.2+ labels.
|
||||
- Updated loose parser to support `goto` and Lua 5.3 bitops.
|
||||
- Updated Metalua to support Lua 5.3 bitops.
|
||||
- Updated Metalua to support `goto`/labels in static analysis for Lua 5.2/5.3.
|
||||
- Upgraded Mobdebug (v0.611) to fix tooltips during Corona debugging (closes #387).
|
||||
- Updated `CommandBarShow` to accept text fragment to select (#31).
|
||||
- Updated `GetKnownExtensions` to accept an optional extension to match against.
|
||||
- Updated `FileRead` to accept optional length.
|
||||
- Updated layout settings to use constants and new package API.
|
||||
- Updated parser to avoid splitting `foo.bar` in incremental processing.
|
||||
- Upgraded MobDebug (0.61) to add `basedir` support.
|
||||
- Updated status refresh to only happen for the active editor.
|
||||
- Updated toolbar UI checks to happen when running/debugging (#352).
|
||||
- Updated Corona integration to hide console on OSX (2014.2393+).
|
||||
- Upgraded Mobdebug to 0.613 to improve Lua 5.3 compatibility (#401); thanks to @andrewstarks.
|
||||
- Updated usage instructions in README.
|
||||
- Update de.lua
|
||||
|
||||
### Incompatibilities
|
||||
- Renamed `debugger.stackmax*` settings to `debugger.maxdata*`.
|
||||
- Removed `wxwidgets` from the list of default APIs for Lua interpreters; use `api` config setting to include it.
|
||||
|
||||
### Fixes
|
||||
- Fixed search navigation to shift horizontally when `usewrap` is off.
|
||||
- Fixed indentation for lines with mixed string separators (#324, #388).
|
||||
- Fixed indentation for lines with escaped slashes (#324, closes #388).
|
||||
- Fixed find-and-replace to replace in already selected fragment if matched.
|
||||
- Fixed refresh of files in command bar preview when selected (#31).
|
||||
- Fixed recovery of empty (`untitled`) tabs.
|
||||
- Fixed an auto-complete issue after `repeat until <var>`.
|
||||
- Fixed setting focus to the editor in commandbar with one tab (#31).
|
||||
- Fixed auto-complete after text not separated by a whitespace or bracket.
|
||||
- Fixed an error when disabling outline by setting `outlineinactivity=nil`.
|
||||
|
||||
## v0.90 (Nov 08 2014)
|
||||
|
||||
### Highlights
|
||||
|
||||
30
CONTRIBUTING.md
Normal file
30
CONTRIBUTING.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# Help
|
||||
|
||||
For questions and feature discussions, please use the the maillist or the IRC channel as described in the [community section](http://studio.zerobrane.com/community) of the project website.
|
||||
|
||||
# Bugs
|
||||
|
||||
When filing a bug, please help us reproduce the issue by including the following information:
|
||||
|
||||
* Steps to reproduce the issue as well as the expected result. Screenshots also help.
|
||||
* Your operating system and the IDE version (or the latest commit if you are using the development version).
|
||||
* Any relevant configuration from the config file, if you cannot reproduce the issue with an empty config.
|
||||
* Any relevant plugins, if you cannot reproduce the issue without plugins.
|
||||
|
||||
It always helps to make sure that the issue is still reproducible with the most recent version of the IDE.
|
||||
|
||||
If you think that the issue is with the *debugger* (this also includes serialization issues), then open an issue in the [MobDebug repository](https://github.com/pkulchenko/MobDebug/issues).
|
||||
If the issue is with one of the *plugins*, then open an issue in the [ZeroBranePackage repository](https://github.com/pkulchenko/ZeroBranePackage/issues).
|
||||
|
||||
# Contributing
|
||||
|
||||
_By contributing to ZeroBrane Studio you are agreeing to release your contribution under the MIT License._
|
||||
|
||||
Thank you for contributing to ZeroBrane Studio! Here are some things you can do to improve it:
|
||||
|
||||
* **Fixing issues**: If you have ideas or suggestions on [fixing existing issues](https://github.com/pkulchenko/ZeroBraneStudio/issues), please update the tickets directly or send a pull request.
|
||||
* **Adding translations**: See [translation documentation](http://studio.zerobrane.com/doc-translation) for details.
|
||||
* **Implementing new features**: Please [discuss with us](http://studio.zerobrane.com/community) any significant changes you plan as early as possible.
|
||||
Try to implement the changes as a plugin first; the project already provides [plugin API](http://studio.zerobrane.com/doc-plugin) with more than [45 plugins](https://github.com/pkulchenko/ZeroBranePackage) already available.
|
||||
* **Improving documentation**: All the existing documentation is generated based on pages in [gh-pages branch](https://github.com/pkulchenko/ZeroBraneStudio/tree/gh-pages). You can provide clarifications, check the documentation for errors/typos, or fill any gaps.
|
||||
* **Spreading the word**!
|
||||
2
LICENSE
2
LICENSE
@@ -2,7 +2,7 @@
|
||||
|
||||
ZeroBrane Studio sources are released under the MIT License
|
||||
|
||||
Copyright (c) 2011-2012 Paul Kulchenko (paul@kulchenko.com)
|
||||
Copyright (c) 2011-2015 Paul Kulchenko (paul@kulchenko.com)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
53
README.md
53
README.md
@@ -2,7 +2,11 @@
|
||||
|
||||
[ZeroBrane Studio](http://studio.zerobrane.com/) is a lightweight cross-platform Lua IDE with code completion,
|
||||
syntax highlighting, remote debugger, code analyzer, live coding,
|
||||
and debugging support for several Lua engines (Lua 5.1, Lua 5.2, Lua 5.3, LuaJIT,
|
||||
and debugging support for several Lua engines
|
||||
([Lua 5.1](http://studio.zerobrane.com/doc-lua-debugging),
|
||||
[Lua 5.2](http://studio.zerobrane.com/doc-lua52-debugging),
|
||||
[Lua 5.3](http://studio.zerobrane.com/doc-lua53-debugging),
|
||||
[LuaJIT](http://studio.zerobrane.com/doc-luajit-debugging),
|
||||
[Löve 2D](http://notebook.kulchenko.com/zerobrane/love2d-debugging),
|
||||
[Moai](http://notebook.kulchenko.com/zerobrane/moai-debugging-with-zerobrane-studio),
|
||||
[Gideros](http://notebook.kulchenko.com/zerobrane/gideros-debugging-with-zerobrane-studio-ide),
|
||||
@@ -11,7 +15,9 @@ and debugging support for several Lua engines (Lua 5.1, Lua 5.2, Lua 5.3, LuaJIT
|
||||
[Cocos2d-x](http://notebook.kulchenko.com/zerobrane/cocos2d-x-simulator-and-on-device-debugging-with-zerobrane-studio),
|
||||
[GSL-shell](http://notebook.kulchenko.com/zerobrane/gsl-shell-debugging-with-zerobrane-studio),
|
||||
[Adobe Lightroom](http://notebook.kulchenko.com/zerobrane/debugging-lightroom-plugins-zerobrane-studio-ide),
|
||||
[OpenResty/Nginx](http://notebook.kulchenko.com/zerobrane/debugging-openresty-nginx-lua-scripts-with-zerobrane-studio)
|
||||
[OpenResty/Nginx](http://notebook.kulchenko.com/zerobrane/debugging-openresty-nginx-lua-scripts-with-zerobrane-studio),
|
||||
[Lapis](http://notebook.kulchenko.com/zerobrane/lapis-debugging-with-zerobrane-studio),
|
||||
[Moonscript](http://notebook.kulchenko.com/zerobrane/moonscript-debugging-with-zerobrane-studio),
|
||||
and others). It originated from the [Estrela Editor](http://www.luxinia.de/index.php/Estrela/).
|
||||
|
||||

|
||||
@@ -22,33 +28,36 @@ and others). It originated from the [Estrela Editor](http://www.luxinia.de/index
|
||||
* Small, portable, and cross-platform (Windows, Mac OSX, and Linux).
|
||||
* Auto-completion for functions, keywords, and custom APIs.
|
||||
* Interactive console to directly test code snippets with local and remote execution.
|
||||
* Integrated debugger with local and [remote debugging](http://studio.zerobrane.com/doc-remote-debugging.html) for Lua 5.1,
|
||||
[Lua 5.2](http://studio.zerobrane.com/doc-lua52-debugging.html),
|
||||
Lua 5.3,
|
||||
[LuaJIT](http://studio.zerobrane.com/doc-luajit-debugging.html),
|
||||
and [other Lua engines](http://studio.zerobrane.com/documentation.html#debugging).
|
||||
* [Live coding](http://studio.zerobrane.com/documentation.html#live_coding)
|
||||
* Integrated debugger with local and [remote debugging](http://studio.zerobrane.com/doc-remote-debugging)
|
||||
for [Lua 5.1](http://studio.zerobrane.com/doc-lua-debugging),
|
||||
[Lua 5.2](http://studio.zerobrane.com/doc-lua52-debugging),
|
||||
[Lua 5.3](http://studio.zerobrane.com/doc-lua53-debugging),
|
||||
[LuaJIT](http://studio.zerobrane.com/doc-luajit-debugging),
|
||||
and [other Lua engines](http://studio.zerobrane.com/documentation#debugging).
|
||||
* [Live coding](http://studio.zerobrane.com/documentation#live_coding)
|
||||
with [Lua](http://notebook.kulchenko.com/zerobrane/live-coding-in-lua-bret-victor-style),
|
||||
[Löve 2D](http://notebook.kulchenko.com/zerobrane/live-coding-with-love),
|
||||
[Gideros](http://notebook.kulchenko.com/zerobrane/gideros-live-coding-with-zerobrane-studio-ide),
|
||||
[Moai](http://notebook.kulchenko.com/zerobrane/live-coding-with-moai-and-zerobrane-studio),
|
||||
[Corona SDK](http://notebook.kulchenko.com/zerobrane/debugging-and-live-coding-with-corona-sdk-applications-and-zerobrane-studio),
|
||||
GSL-shell, and other engines.
|
||||
* Function outline.
|
||||
* Fuzzy search with `Go To File`, `Go To Symbol`, and `Insert Library Function`.
|
||||
* Several ways to extend the current functionality:
|
||||
- specs (`spec/`): specifications for file syntax, lexer, and keywords;
|
||||
- apis (`api/`): descriptions for [code completion and tooltips](http://studio.zerobrane.com/doc-api-auto-complete.html);
|
||||
- apis (`api/`): descriptions for [code completion and tooltips](http://studio.zerobrane.com/doc-api-auto-complete);
|
||||
- interpreters (`interpreters/`): components for setting debugging and run-time project environment;
|
||||
- packages (`packages/`): [plugins](http://studio.zerobrane.com/doc-plugin.html) that provide additional functionality;
|
||||
- packages (`packages/`): [plugins](http://studio.zerobrane.com/doc-plugin) that provide additional functionality;
|
||||
- config (`cfg/`): settings for styles, color themes, and other preferences;
|
||||
- translations (`cfg/i18n/`): [translations](http://studio.zerobrane.com/doc-translation.html) of the menus and messages to other languages;
|
||||
- translations (`cfg/i18n/`): [translations](http://studio.zerobrane.com/doc-translation) of the menus and messages to other languages;
|
||||
- tools (`tools/`): additional tools.
|
||||
|
||||
## Documentation
|
||||
|
||||
* A [short and simple overview](http://studio.zerobrane.com/doc-getting-started.html) for those who are new to this development environment.
|
||||
* A list of [frequently asked questions](http://studio.zerobrane.com/doc-faq.html) about the IDE.
|
||||
* [Tutorials and demos](http://studio.zerobrane.com/tutorials.html) that cover debugging and live coding for different environments.
|
||||
* [Tips and tricks](http://studio.zerobrane.com/doc-tips-and-tricks.html).
|
||||
* A [short and simple overview](http://studio.zerobrane.com/doc-getting-started) for those who are new to this development environment.
|
||||
* A list of [frequently asked questions](http://studio.zerobrane.com/doc-faq) about the IDE.
|
||||
* [Tutorials and demos](http://studio.zerobrane.com/tutorials) that cover debugging and live coding for different environments.
|
||||
* [Tips and tricks](http://studio.zerobrane.com/doc-tips-and-tricks).
|
||||
|
||||
## Installation
|
||||
|
||||
@@ -59,24 +68,28 @@ No compilation is needed, although the scripts to compile required libraries for
|
||||
|
||||
```
|
||||
Open file(s):
|
||||
zbstudio <filename> [<filename>...]
|
||||
any non-option will be treated as a file to open or a directory to set as the project directory
|
||||
zbstudio [option] [<project directory>] <filename> [<filename>...]
|
||||
non-options are treated as a project directory to set or a file to open
|
||||
|
||||
Set project directory:
|
||||
zbstudio <project directory> [<filename>...]
|
||||
(0.39+) a directory passed as a parameter will be set as the project directory
|
||||
|
||||
Overriding default configuration:
|
||||
Override default configuration:
|
||||
zbstudio -cfg "<luacode overriding config>" [<filename>]
|
||||
e.g.: zbstudio -cfg "editor.fontsize=12" somefile.lua
|
||||
|
||||
Loading custom configuration:
|
||||
Load custom configuration:
|
||||
zbstudio -cfg path/file.lua [<filename>]
|
||||
e.g.: zbstudio -cfg cfg/estrela.lua
|
||||
```
|
||||
|
||||
If you are loading a file, you can also request the cursor to be set on a particular line or at a particular position by using `filename:<line>` and `filename:p<pos>` syntax (0.71+).
|
||||
|
||||
## Contributing
|
||||
|
||||
See [CONTRIBUTING](CONTRIBUTING.md).
|
||||
|
||||
## Author
|
||||
|
||||
### ZeroBrane Studio and MobDebug
|
||||
@@ -99,4 +112,4 @@ again.
|
||||
|
||||
## License
|
||||
|
||||
See LICENSE file.
|
||||
See [LICENSE](LICENSE).
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
return {
|
||||
-- covers both Lua 5.1 and Lua 5.2; All Lua 5.2 specific items are marked
|
||||
-- with FUNCTION/ARGUMENT/ARGS/VALUE ADDED/DEPRECATED IN Lua 5.2.
|
||||
-- covers Lua 5.1, Lua 5.2, and Lua 5.3;
|
||||
-- Lua 5.2 and Lua 5.3 specific items are marked with
|
||||
-- FUNCTION/ARGUMENT/ARGS/VALUE ADDED/DEPRECATED IN Lua 5.2 or Lua 5.3.
|
||||
|
||||
-- Keywords
|
||||
["and"] = {type = "keyword"},
|
||||
@@ -206,7 +207,7 @@ return {
|
||||
type = "lib",
|
||||
description = "The operations related to coroutines comprise a sub-library of the basic library and come inside the table coroutine.\nLua supports coroutines, also called collaborative multithreading. A coroutine in Lua represents an independent thread of execution. Unlike threads in multithread systems, however, a coroutine only suspends its execution by explicitly calling a yield function.",
|
||||
childs = {
|
||||
getfenv = {
|
||||
create = {
|
||||
type = "function",
|
||||
description = "Creates a new coroutine, with body f.\nf must be a Lua function. Returns this new coroutine, an object with type \"thread\".",
|
||||
args = "(f: function)",
|
||||
@@ -355,6 +356,25 @@ return {
|
||||
args = "(s: string, pattern: string)",
|
||||
returns = "(function)",
|
||||
},
|
||||
pack = {
|
||||
type = "function",
|
||||
description = "Returns a binary string containing the values v1, v2, etc. packed (that is, serialized in binary form) according to the format string fmt.\nFUNCTION ADDED IN Lua 5.3.",
|
||||
args = "(fmt: string, v1, v2, ...)",
|
||||
returns = "(string)",
|
||||
valuetype = "string",
|
||||
},
|
||||
unpack = {
|
||||
type = "function",
|
||||
description = "Returns the values packed in string s (see string.pack) according to the format string fmt. An optional pos marks where to start reading in s (default is 1). After the read values, this function also returns the index of the first unread byte in s.\nFUNCTION ADDED IN Lua 5.3.",
|
||||
args = "(fmt: string, s: string [, pos: number])",
|
||||
returns = "(values)",
|
||||
},
|
||||
packsize = {
|
||||
type = "function",
|
||||
description = "Returns the size of a string resulting from string.pack with the given format. The format string cannot have the variable-length options 's' or 'z'.\nFUNCTION ADDED IN Lua 5.3.",
|
||||
args = "(fmt: string)",
|
||||
returns = "(number)",
|
||||
},
|
||||
gsub = {
|
||||
type = "function",
|
||||
description = "Returns a copy of s in which all (or the first n, if given) occurrences of the pattern have been replaced by a replacement string specified by repl, which can be a string, a table, or a function.\ngsub also returns, as its second value, the total number of matches that occurred. The name gsub comes from Global SUBstitution.\nIf repl is a string, then its value is used for replacement. The character % works as an escape character: any sequence in repl of the form %d, with d between 1 and 9, stands for the value of the d-th captured substring. The sequence %0 stands for the whole match. The sequence %% stands for a single %.\nIf repl is a table, then the table is queried for every match, using the first capture as the key.\nIf repl is a function, then this function is called every time a match occurs, with all captured substrings passed as arguments, in order.\nIn any case, if the pattern specifies no captures, then it behaves as if the whole pattern was inside a capture.\nIf the value returned by the table query or by the function call is a string or a number, then it is used as the replacement string; otherwise, if it is false or nil, then there is no replacement (that is, the original match is kept in the string).",
|
||||
@@ -443,6 +463,12 @@ return {
|
||||
args = "(...)",
|
||||
returns = "(table)",
|
||||
},
|
||||
move = {
|
||||
type = "function",
|
||||
description = "Moves elements from table a1 to table a2. This function performs the equivalent to the following multiple assignment: a2[t],··· = a1[f],···,a1[e]. The default for a2 is a1. The destination range can overlap with the source range. Index f must be positive.\nFUNCTION ADDED IN Lua 5.3.",
|
||||
args = "(a1: table, f, e, t [,a2: table])",
|
||||
returns = "()",
|
||||
},
|
||||
remove = {
|
||||
type = "function",
|
||||
description = "Removes from list the element at position pos, shifting down the elements list[pos+1], list[pos+2], ···, list[#list] and erasing element list[#list].\nReturns the value of the removed element.\nThe default value for pos is #list, so that a call table.remove(t) removes the last element of list t.",
|
||||
|
||||
1228
api/lua/corona.lua
1228
api/lua/corona.lua
File diff suppressed because it is too large
Load Diff
@@ -1082,6 +1082,8 @@ GL_COMPRESSED_RGBA_BPTC_UNORM = 0x8E8C,
|
||||
GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM = 0x8E8D,
|
||||
GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT = 0x8E8E,
|
||||
GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT = 0x8E8F,
|
||||
GL_COPY_READ_BUFFER_BINDING = 0x8F36,
|
||||
GL_COPY_WRITE_BUFFER_BINDING = 0x8F37,
|
||||
GL_NUM_SHADING_LANGUAGE_VERSIONS = 0x82E9,
|
||||
GL_VERTEX_ATTRIB_ARRAY_LONG = 0x874E,
|
||||
GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED = 0x8221,
|
||||
@@ -1811,7 +1813,7 @@ GL_ALREADY_SIGNALED = 0x911A,
|
||||
GL_TIMEOUT_EXPIRED = 0x911B,
|
||||
GL_CONDITION_SATISFIED = 0x911C,
|
||||
GL_WAIT_FAILED = 0x911D,
|
||||
GL_TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFF,
|
||||
//GL_TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFF,
|
||||
GL_PATCHES = 0xE,
|
||||
GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = 0x84F0,
|
||||
GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x84F1,
|
||||
@@ -2119,6 +2121,8 @@ GL_HSL_HUE_KHR = 0x92AD,
|
||||
GL_HSL_SATURATION_KHR = 0x92AE,
|
||||
GL_HSL_COLOR_KHR = 0x92AF,
|
||||
GL_HSL_LUMINOSITY_KHR = 0x92B0,
|
||||
GL_CONTEXT_RELEASE_BEHAVIOR = 0x82FB,
|
||||
GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = 0x82FC,
|
||||
GL_CONTEXT_FLAG_DEBUG_BIT = 0x00000002,
|
||||
//GL_STACK_OVERFLOW = 0x0503,
|
||||
//GL_STACK_UNDERFLOW = 0x0504,
|
||||
@@ -2276,6 +2280,10 @@ GL_MINUS_CLAMPED_NV = 0x92B3,
|
||||
GL_INVERT_OVG_NV = 0x92B4,
|
||||
GL_COMPUTE_PROGRAM_NV = 0x90FB,
|
||||
GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV = 0x90FC,
|
||||
GL_CONSERVATIVE_RASTERIZATION_NV = 0x9346,
|
||||
GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV = 0x9347,
|
||||
GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV = 0x9348,
|
||||
GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV = 0x9349,
|
||||
GL_DEPTH_STENCIL_TO_RGBA_NV = 0x886E,
|
||||
GL_DEPTH_STENCIL_TO_BGRA_NV = 0x886F,
|
||||
GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV = 0x90D0,
|
||||
@@ -2317,6 +2325,7 @@ GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV = 0x8E58,
|
||||
GL_ALL_COMPLETED_NV = 0x84F2,
|
||||
GL_FENCE_STATUS_NV = 0x84F3,
|
||||
GL_FENCE_CONDITION_NV = 0x84F4,
|
||||
GL_FILL_RECTANGLE_NV = 0x933C,
|
||||
GL_FLOAT_R_NV = 0x8880,
|
||||
GL_FLOAT_RG_NV = 0x8881,
|
||||
GL_FLOAT_RGB_NV = 0x8882,
|
||||
@@ -2335,6 +2344,8 @@ GL_FLOAT_RGBA_MODE_NV = 0x888E,
|
||||
GL_FOG_DISTANCE_MODE_NV = 0x855A,
|
||||
GL_EYE_RADIAL_NV = 0x855B,
|
||||
GL_EYE_PLANE_ABSOLUTE_NV = 0x855C,
|
||||
GL_FRAGMENT_COVERAGE_TO_COLOR_NV = 0x92DD,
|
||||
GL_FRAGMENT_COVERAGE_COLOR_NV = 0x92DE,
|
||||
GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV = 0x8868,
|
||||
GL_FRAGMENT_PROGRAM_NV = 0x8870,
|
||||
GL_FRAGMENT_PROGRAM_BINDING_NV = 0x8873,
|
||||
@@ -2344,6 +2355,20 @@ GL_MAX_PROGRAM_CALL_DEPTH_NV = 0x88F5,
|
||||
GL_MAX_PROGRAM_IF_DEPTH_NV = 0x88F6,
|
||||
GL_MAX_PROGRAM_LOOP_DEPTH_NV = 0x88F7,
|
||||
GL_MAX_PROGRAM_LOOP_COUNT_NV = 0x88F8,
|
||||
//GL_COLOR_SAMPLES_NV = 0x8E20,
|
||||
//GL_RASTER_MULTISAMPLE_EXT = 0x9327,
|
||||
//GL_RASTER_SAMPLES_EXT = 0x9328,
|
||||
//GL_MAX_RASTER_SAMPLES_EXT = 0x9329,
|
||||
//GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT = 0x932A,
|
||||
//GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT = 0x932B,
|
||||
//GL_EFFECTIVE_RASTER_SAMPLES_EXT = 0x932C,
|
||||
//GL_DEPTH_SAMPLES_NV = 0x932D,
|
||||
//GL_STENCIL_SAMPLES_NV = 0x932E,
|
||||
//GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV = 0x932F,
|
||||
//GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV = 0x9330,
|
||||
//GL_COVERAGE_MODULATION_TABLE_NV = 0x9331,
|
||||
//GL_COVERAGE_MODULATION_NV = 0x9332,
|
||||
//GL_COVERAGE_MODULATION_TABLE_SIZE_NV = 0x9333,
|
||||
GL_RENDERBUFFER_COVERAGE_SAMPLES_NV = 0x8CAB,
|
||||
GL_RENDERBUFFER_COLOR_SAMPLES_NV = 0x8E10,
|
||||
GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV = 0x8E11,
|
||||
@@ -2387,9 +2412,13 @@ GL_FLOAT16_NV = 0x8FF8,
|
||||
GL_FLOAT16_VEC2_NV = 0x8FF9,
|
||||
GL_FLOAT16_VEC3_NV = 0x8FFA,
|
||||
GL_FLOAT16_VEC4_NV = 0x8FFB,
|
||||
GL_MULTISAMPLES_NV = 0x9371,
|
||||
GL_SUPERSAMPLE_SCALE_X_NV = 0x9372,
|
||||
GL_SUPERSAMPLE_SCALE_Y_NV = 0x9373,
|
||||
GL_CONFORMANT_NV = 0x9374,
|
||||
GL_MAX_SHININESS_NV = 0x8504,
|
||||
GL_MAX_SPOT_EXPONENT_NV = 0x8505,
|
||||
GL_COLOR_SAMPLES_NV = 0x8E20,
|
||||
//GL_COLOR_SAMPLES_NV = 0x8E20,
|
||||
GL_MULTISAMPLE_FILTER_HINT_NV = 0x8534,
|
||||
GL_PIXEL_COUNTER_BITS_NV = 0x8864,
|
||||
GL_CURRENT_OCCLUSION_QUERY_ID_NV = 0x8865,
|
||||
@@ -2432,19 +2461,31 @@ GL_LARGE_CCW_ARC_TO_NV = 0x16,
|
||||
GL_RELATIVE_LARGE_CCW_ARC_TO_NV = 0x17,
|
||||
GL_LARGE_CW_ARC_TO_NV = 0x18,
|
||||
GL_RELATIVE_LARGE_CW_ARC_TO_NV = 0x19,
|
||||
GL_CONIC_CURVE_TO_NV = 0x1A,
|
||||
GL_RELATIVE_CONIC_CURVE_TO_NV = 0x1B,
|
||||
GL_GLYPH_VERTICAL_BEARING_X_BIT_NV = 0x20,
|
||||
GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV = 0x40,
|
||||
GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV = 0x80,
|
||||
GL_ROUNDED_RECT_NV = 0xE8,
|
||||
GL_RELATIVE_ROUNDED_RECT_NV = 0xE9,
|
||||
GL_ROUNDED_RECT2_NV = 0xEA,
|
||||
GL_RELATIVE_ROUNDED_RECT2_NV = 0xEB,
|
||||
GL_ROUNDED_RECT4_NV = 0xEC,
|
||||
GL_RELATIVE_ROUNDED_RECT4_NV = 0xED,
|
||||
GL_ROUNDED_RECT8_NV = 0xEE,
|
||||
GL_RELATIVE_ROUNDED_RECT8_NV = 0xEF,
|
||||
GL_RESTART_PATH_NV = 0xF0,
|
||||
GL_DUP_FIRST_CUBIC_CURVE_TO_NV = 0xF2,
|
||||
GL_DUP_LAST_CUBIC_CURVE_TO_NV = 0xF4,
|
||||
GL_RECT_NV = 0xF6,
|
||||
GL_RELATIVE_RECT_NV = 0xF7,
|
||||
GL_CIRCULAR_CCW_ARC_TO_NV = 0xF8,
|
||||
GL_CIRCULAR_CW_ARC_TO_NV = 0xFA,
|
||||
GL_CIRCULAR_TANGENT_ARC_TO_NV = 0xFC,
|
||||
GL_ARC_TO_NV = 0xFE,
|
||||
GL_RELATIVE_ARC_TO_NV = 0xFF,
|
||||
GL_GLYPH_HAS_KERNING_BIT_NV = 0x100,
|
||||
GL_SECONDARY_COLOR_NV = 0x852D,
|
||||
//GL_PRIMARY_COLOR = 0x8577,
|
||||
GL_PATH_FORMAT_SVG_NV = 0x9070,
|
||||
GL_PATH_FORMAT_PS_NV = 0x9071,
|
||||
@@ -2467,6 +2508,7 @@ GL_PATH_FILL_MASK_NV = 0x9081,
|
||||
GL_PATH_FILL_COVER_MODE_NV = 0x9082,
|
||||
GL_PATH_STROKE_COVER_MODE_NV = 0x9083,
|
||||
GL_PATH_STROKE_MASK_NV = 0x9084,
|
||||
GL_PATH_STROKE_BOUND_NV = 0x9086,
|
||||
GL_COUNT_UP_NV = 0x9088,
|
||||
GL_COUNT_DOWN_NV = 0x9089,
|
||||
GL_PATH_OBJECT_BOUNDING_BOX_NV = 0x908A,
|
||||
@@ -2515,6 +2557,12 @@ GL_PATH_STENCIL_VALUE_MASK_NV = 0x90B9,
|
||||
GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV = 0x90BD,
|
||||
GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV = 0x90BE,
|
||||
GL_PATH_COVER_DEPTH_FUNC_NV = 0x90BF,
|
||||
GL_FONT_GLYPHS_AVAILABLE_NV = 0x9368,
|
||||
GL_FONT_TARGET_UNAVAILABLE_NV = 0x9369,
|
||||
GL_FONT_UNAVAILABLE_NV = 0x936A,
|
||||
GL_FONT_UNINTELLIGIBLE_NV = 0x936B,
|
||||
GL_STANDARD_FONT_FORMAT_NV = 0x936C,
|
||||
GL_FRAGMENT_INPUT_NV = 0x936D,
|
||||
GL_FONT_X_MIN_BOUNDS_BIT_NV = 0x00010000,
|
||||
GL_FONT_Y_MIN_BOUNDS_BIT_NV = 0x00020000,
|
||||
GL_FONT_X_MAX_BOUNDS_BIT_NV = 0x00040000,
|
||||
@@ -2528,6 +2576,8 @@ GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV = 0x02000000,
|
||||
GL_FONT_UNDERLINE_POSITION_BIT_NV = 0x04000000,
|
||||
GL_FONT_UNDERLINE_THICKNESS_BIT_NV = 0x08000000,
|
||||
GL_FONT_HAS_KERNING_BIT_NV = 0x10000000,
|
||||
GL_FONT_NUM_GLYPH_INDICES_BIT_NV = 0x20000000,
|
||||
GL_SHARED_EDGE_NV = 0xC0,
|
||||
GL_WRITE_PIXEL_DATA_RANGE_NV = 0x8878,
|
||||
GL_READ_PIXEL_DATA_RANGE_NV = 0x8879,
|
||||
GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV = 0x887A,
|
||||
@@ -2551,7 +2601,7 @@ GL_VARIABLE_F_NV = 0x8528,
|
||||
GL_VARIABLE_G_NV = 0x8529,
|
||||
GL_CONSTANT_COLOR0_NV = 0x852A,
|
||||
GL_CONSTANT_COLOR1_NV = 0x852B,
|
||||
GL_SECONDARY_COLOR_NV = 0x852D,
|
||||
//GL_SECONDARY_COLOR_NV = 0x852D,
|
||||
GL_SPARE0_NV = 0x852E,
|
||||
GL_SPARE1_NV = 0x852F,
|
||||
GL_DISCARD_NV = 0x8530,
|
||||
@@ -2592,6 +2642,14 @@ GL_COMBINER5_NV = 0x8555,
|
||||
GL_COMBINER6_NV = 0x8556,
|
||||
GL_COMBINER7_NV = 0x8557,
|
||||
GL_PER_STAGE_CONSTANTS_NV = 0x8535,
|
||||
GL_SAMPLE_LOCATION_NV = 0x8E50,
|
||||
GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV = 0x933D,
|
||||
GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV = 0x933E,
|
||||
GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV = 0x933F,
|
||||
GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV = 0x9340,
|
||||
GL_PROGRAMMABLE_SAMPLE_LOCATION_NV = 0x9341,
|
||||
GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV = 0x9342,
|
||||
GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV = 0x9343,
|
||||
GL_BUFFER_GPU_ADDRESS_NV = 0x8F1D,
|
||||
GL_GPU_ADDRESS_NV = 0x8F34,
|
||||
GL_MAX_SHADER_BUFFER_ADDRESS_NV = 0x8F35,
|
||||
@@ -3517,6 +3575,7 @@ extern void glBlendEquationi(GLuint buf, GLenum mode);
|
||||
extern void glBlendFuncSeparatei(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
|
||||
extern void glBlendFunci(GLuint buf, GLenum src, GLenum dst);
|
||||
extern void glMinSampleShading(GLclampf value);
|
||||
extern GLenum glGetGraphicsResetStatus(void);
|
||||
extern void glDebugMessageEnableAMD(GLenum category, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled);
|
||||
extern void glBlendEquationIndexedAMD(GLuint buf, GLenum mode);
|
||||
extern void glBlendEquationSeparateIndexedAMD(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
|
||||
@@ -3620,6 +3679,10 @@ extern void glGetNamedBufferSubData(GLuint buffer, GLintptr offset, GLsizeiptr s
|
||||
extern void glGetNamedFramebufferAttachmentParameteriv(GLuint framebuffer, GLenum attachment, GLenum pname, GLint* params);
|
||||
extern void glGetNamedFramebufferParameteriv(GLuint framebuffer, GLenum pname, GLint* param);
|
||||
extern void glGetNamedRenderbufferParameteriv(GLuint renderbuffer, GLenum pname, GLint* params);
|
||||
extern void glGetQueryBufferObjecti64v(GLuint id,GLuint buffer,GLenum pname,GLintptr offset);
|
||||
extern void glGetQueryBufferObjectiv(GLuint id,GLuint buffer,GLenum pname,GLintptr offset);
|
||||
extern void glGetQueryBufferObjectui64v(GLuint id,GLuint buffer,GLenum pname,GLintptr offset);
|
||||
extern void glGetQueryBufferObjectuiv(GLuint id,GLuint buffer,GLenum pname,GLintptr offset);
|
||||
extern void glGetTextureImage(GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
|
||||
extern void glGetTextureLevelParameterfv(GLuint texture, GLint level, GLenum pname, GLfloat* params);
|
||||
extern void glGetTextureLevelParameteriv(GLuint texture, GLint level, GLenum pname, GLint* params);
|
||||
@@ -3792,7 +3855,6 @@ extern GLint glGetProgramResourceLocationIndex(GLuint program, GLenum programInt
|
||||
extern void glGetProgramResourceName(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei* length, GLchar *name);
|
||||
extern void glGetProgramResourceiv(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum* props, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
extern void glProvokingVertex(GLenum mode);
|
||||
extern GLenum glGetGraphicsResetStatusARB(void);
|
||||
extern void glGetnColorTableARB(GLenum target, GLenum format, GLenum type, GLsizei bufSize, void* table);
|
||||
extern void glGetnCompressedTexImageARB(GLenum target, GLint lod, GLsizei bufSize, void* img);
|
||||
extern void glGetnConvolutionFilterARB(GLenum target, GLenum format, GLenum type, GLsizei bufSize, void* image);
|
||||
@@ -4230,6 +4292,7 @@ extern void glUniformHandleui64NV(GLint location, GLuint64 value);
|
||||
extern void glUniformHandleui64vNV(GLint location, GLsizei count, const GLuint64* value);
|
||||
extern void glBlendBarrierNV(void);
|
||||
extern void glBlendParameteriNV(GLenum pname, GLint value);
|
||||
extern void glSubpixelPrecisionBiasNV(GLuint xbits, GLuint ybits);
|
||||
extern void glClearDepthdNV(GLdouble depth);
|
||||
extern void glDepthBoundsdNV(GLdouble zmin, GLdouble zmax);
|
||||
extern void glDepthRangedNV(GLdouble zNear, GLdouble zFar);
|
||||
@@ -4252,6 +4315,7 @@ extern void glGetFenceivNV(GLuint fence, GLenum pname, GLint* params);
|
||||
extern GLboolean glIsFenceNV(GLuint fence);
|
||||
extern void glSetFenceNV(GLuint fence, GLenum condition);
|
||||
extern GLboolean glTestFenceNV(GLuint fence);
|
||||
extern void glFragmentCoverageColorNV(GLuint color);
|
||||
extern void glGetProgramNamedParameterdvNV(GLuint id, GLsizei len, const GLubyte* name, GLdouble *params);
|
||||
extern void glGetProgramNamedParameterfvNV(GLuint id, GLsizei len, const GLubyte* name, GLfloat *params);
|
||||
extern void glProgramNamedParameter4dNV(GLuint id, GLsizei len, const GLubyte* name, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
|
||||
@@ -4352,6 +4416,7 @@ extern void glVertexAttribs3hvNV(GLuint index, GLsizei n, const GLhalf* v);
|
||||
extern void glVertexAttribs4hvNV(GLuint index, GLsizei n, const GLhalf* v);
|
||||
extern void glVertexWeighthNV(GLhalf weight);
|
||||
extern void glVertexWeighthvNV(const GLhalf* weight);
|
||||
extern void glGetInternalformatSampleivNV(GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei bufSize, GLint* params);
|
||||
extern void glBeginOcclusionQueryNV(GLuint id);
|
||||
extern void glDeleteOcclusionQueriesNV(GLsizei n, const GLuint* ids);
|
||||
extern void glEndOcclusionQueryNV(void);
|
||||
@@ -4363,52 +4428,67 @@ extern void glProgramBufferParametersIivNV(GLenum target, GLuint buffer, GLuint
|
||||
extern void glProgramBufferParametersIuivNV(GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLuint *params);
|
||||
extern void glProgramBufferParametersfvNV(GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLfloat *params);
|
||||
extern void glCopyPathNV(GLuint resultPath, GLuint srcPath);
|
||||
extern void glCoverFillPathInstancedNV(GLsizei numPaths, GLenum pathNameType, const void* paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues);
|
||||
extern void glCoverFillPathInstancedNV(GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues);
|
||||
extern void glCoverFillPathNV(GLuint path, GLenum coverMode);
|
||||
extern void glCoverStrokePathInstancedNV(GLsizei numPaths, GLenum pathNameType, const void* paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues);
|
||||
extern void glCoverStrokePathNV(GLuint name, GLenum coverMode);
|
||||
extern void glCoverStrokePathInstancedNV(GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues);
|
||||
extern void glCoverStrokePathNV(GLuint path, GLenum coverMode);
|
||||
extern void glDeletePathsNV(GLuint path, GLsizei range);
|
||||
extern GLuint glGenPathsNV(GLsizei range);
|
||||
extern void glGetPathColorGenfvNV(GLenum color, GLenum pname, GLfloat* value);
|
||||
extern void glGetPathColorGenivNV(GLenum color, GLenum pname, GLint* value);
|
||||
extern void glGetPathCommandsNV(GLuint name, GLubyte* commands);
|
||||
extern void glGetPathCoordsNV(GLuint name, GLfloat* coords);
|
||||
extern void glGetPathDashArrayNV(GLuint name, GLfloat* dashArray);
|
||||
extern void glGetPathCommandsNV(GLuint path, GLubyte* commands);
|
||||
extern void glGetPathCoordsNV(GLuint path, GLfloat* coords);
|
||||
extern void glGetPathDashArrayNV(GLuint path, GLfloat* dashArray);
|
||||
extern GLfloat glGetPathLengthNV(GLuint path, GLsizei startSegment, GLsizei numSegments);
|
||||
extern void glGetPathMetricRangeNV(GLbitfield metricQueryMask, GLuint fistPathName, GLsizei numPaths, GLsizei stride, GLfloat* metrics);
|
||||
extern void glGetPathMetricsNV(GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void* paths, GLuint pathBase, GLsizei stride, GLfloat *metrics);
|
||||
extern void glGetPathParameterfvNV(GLuint name, GLenum param, GLfloat* value);
|
||||
extern void glGetPathParameterivNV(GLuint name, GLenum param, GLint* value);
|
||||
extern void glGetPathSpacingNV(GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void* paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing);
|
||||
extern void glGetPathMetricRangeNV(GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat* metrics);
|
||||
extern void glGetPathMetricsNV(GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics);
|
||||
extern void glGetPathParameterfvNV(GLuint path, GLenum pname, GLfloat* value);
|
||||
extern void glGetPathParameterivNV(GLuint path, GLenum pname, GLint* value);
|
||||
extern void glGetPathSpacingNV(GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing);
|
||||
extern void glGetPathTexGenfvNV(GLenum texCoordSet, GLenum pname, GLfloat* value);
|
||||
extern void glGetPathTexGenivNV(GLenum texCoordSet, GLenum pname, GLint* value);
|
||||
extern void glGetProgramResourcefvNV(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum* props, GLsizei bufSize, GLsizei *length, GLfloat *params);
|
||||
extern void glInterpolatePathsNV(GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight);
|
||||
extern GLboolean glIsPathNV(GLuint path);
|
||||
extern GLboolean glIsPointInFillPathNV(GLuint path, GLuint mask, GLfloat x, GLfloat y);
|
||||
extern GLboolean glIsPointInStrokePathNV(GLuint path, GLfloat x, GLfloat y);
|
||||
extern void glMatrixLoad3x2fNV(GLenum matrixMode, const GLfloat* m);
|
||||
extern void glMatrixLoad3x3fNV(GLenum matrixMode, const GLfloat* m);
|
||||
extern void glMatrixLoadTranspose3x3fNV(GLenum matrixMode, const GLfloat* m);
|
||||
extern void glMatrixMult3x2fNV(GLenum matrixMode, const GLfloat* m);
|
||||
extern void glMatrixMult3x3fNV(GLenum matrixMode, const GLfloat* m);
|
||||
extern void glMatrixMultTranspose3x3fNV(GLenum matrixMode, const GLfloat* m);
|
||||
extern void glPathColorGenNV(GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat* coeffs);
|
||||
extern void glPathCommandsNV(GLuint path, GLsizei numCommands, const GLubyte* commands, GLsizei numCoords, GLenum coordType, const void*coords);
|
||||
extern void glPathCoordsNV(GLuint path, GLsizei numCoords, GLenum coordType, const void* coords);
|
||||
extern void glPathCoordsNV(GLuint path, GLsizei numCoords, GLenum coordType, const void *coords);
|
||||
extern void glPathCoverDepthFuncNV(GLenum zfunc);
|
||||
extern void glPathDashArrayNV(GLuint path, GLsizei dashCount, const GLfloat* dashArray);
|
||||
extern void glPathFogGenNV(GLenum genMode);
|
||||
extern void glPathGlyphRangeNV(GLuint firstPathName, GLenum fontTarget, const void* fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
|
||||
extern void glPathGlyphsNV(GLuint firstPathName, GLenum fontTarget, const void* fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void*charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
|
||||
extern GLenum glPathGlyphIndexArrayNV(GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
|
||||
extern GLenum glPathGlyphIndexRangeNV(GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint baseAndCount[2]);
|
||||
extern void glPathGlyphRangeNV(GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
|
||||
extern void glPathGlyphsNV(GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void*charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
|
||||
extern GLenum glPathMemoryGlyphIndexArrayNV(GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
|
||||
extern void glPathParameterfNV(GLuint path, GLenum pname, GLfloat value);
|
||||
extern void glPathParameterfvNV(GLuint path, GLenum pname, const GLfloat* value);
|
||||
extern void glPathParameteriNV(GLuint path, GLenum pname, GLint value);
|
||||
extern void glPathParameterivNV(GLuint path, GLenum pname, const GLint* value);
|
||||
extern void glPathStencilDepthOffsetNV(GLfloat factor, GLfloat units);
|
||||
extern void glPathStencilFuncNV(GLenum func, GLint ref, GLuint mask);
|
||||
extern void glPathStringNV(GLuint path, GLenum format, GLsizei length, const void* pathString);
|
||||
extern void glPathStringNV(GLuint path, GLenum format, GLsizei length, const void *pathString);
|
||||
extern void glPathSubCommandsNV(GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte* commands, GLsizei numCoords, GLenum coordType, const void*coords);
|
||||
extern void glPathSubCoordsNV(GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void* coords);
|
||||
extern void glPathSubCoordsNV(GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords);
|
||||
extern void glPathTexGenNV(GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat* coeffs);
|
||||
extern GLboolean glPointAlongPathNV(GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat* x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY);
|
||||
extern void glStencilFillPathInstancedNV(GLsizei numPaths, GLenum pathNameType, const void* paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues);
|
||||
extern void glProgramPathFragmentInputGenNV(GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat* coeffs);
|
||||
extern void glStencilFillPathInstancedNV(GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues);
|
||||
extern void glStencilFillPathNV(GLuint path, GLenum fillMode, GLuint mask);
|
||||
extern void glStencilStrokePathInstancedNV(GLsizei numPaths, GLenum pathNameType, const void* paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues);
|
||||
extern void glStencilStrokePathInstancedNV(GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues);
|
||||
extern void glStencilStrokePathNV(GLuint path, GLint reference, GLuint mask);
|
||||
extern void glStencilThenCoverFillPathInstancedNV(GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues);
|
||||
extern void glStencilThenCoverFillPathNV(GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode);
|
||||
extern void glStencilThenCoverStrokePathInstancedNV(GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues);
|
||||
extern void glStencilThenCoverStrokePathNV(GLuint path, GLint reference, GLuint mask, GLenum coverMode);
|
||||
extern void glTransformPathNV(GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat* transformValues);
|
||||
extern void glWeightPathsNV(GLuint resultPath, GLsizei numPaths, const GLuint paths[], const GLfloat weights[]);
|
||||
extern void glFlushPixelDataRangeNV(GLenum target);
|
||||
@@ -4435,6 +4515,8 @@ extern void glGetFinalCombinerInputParameterfvNV(GLenum variable, GLenum pname,
|
||||
extern void glGetFinalCombinerInputParameterivNV(GLenum variable, GLenum pname, GLint* params);
|
||||
extern void glCombinerStageParameterfvNV(GLenum stage, GLenum pname, const GLfloat* params);
|
||||
extern void glGetCombinerStageParameterfvNV(GLenum stage, GLenum pname, GLfloat* params);
|
||||
extern void glFramebufferSampleLocationsfvNV(GLenum target, GLuint start, GLsizei count, const GLfloat* v);
|
||||
extern void glNamedFramebufferSampleLocationsfvNV(GLuint framebuffer, GLuint start, GLsizei count, const GLfloat* v);
|
||||
extern void glGetBufferParameterui64vNV(GLenum target, GLenum pname, GLuint64EXT* params);
|
||||
extern void glGetIntegerui64vNV(GLenum value, GLuint64EXT* result);
|
||||
extern void glGetNamedBufferParameterui64vNV(GLuint buffer, GLenum pname, GLuint64EXT* params);
|
||||
@@ -4857,7 +4939,10 @@ extern GLboolean __GLEW_EXT_pixel_transform;
|
||||
extern GLboolean __GLEW_EXT_pixel_transform_color_table;
|
||||
extern GLboolean __GLEW_EXT_point_parameters;
|
||||
extern GLboolean __GLEW_EXT_polygon_offset;
|
||||
extern GLboolean __GLEW_EXT_polygon_offset_clamp;
|
||||
extern GLboolean __GLEW_EXT_post_depth_coverage;
|
||||
extern GLboolean __GLEW_EXT_provoking_vertex;
|
||||
extern GLboolean __GLEW_EXT_raster_multisample;
|
||||
extern GLboolean __GLEW_EXT_rescale_normal;
|
||||
extern GLboolean __GLEW_EXT_scene_marker;
|
||||
extern GLboolean __GLEW_EXT_secondary_color;
|
||||
@@ -4868,6 +4953,7 @@ extern GLboolean __GLEW_EXT_shader_image_load_store;
|
||||
extern GLboolean __GLEW_EXT_shader_integer_mix;
|
||||
extern GLboolean __GLEW_EXT_shadow_funcs;
|
||||
extern GLboolean __GLEW_EXT_shared_texture_palette;
|
||||
extern GLboolean __GLEW_EXT_sparse_texture2;
|
||||
extern GLboolean __GLEW_EXT_stencil_clear_tag;
|
||||
extern GLboolean __GLEW_EXT_stencil_two_side;
|
||||
extern GLboolean __GLEW_EXT_stencil_wrap;
|
||||
@@ -4887,6 +4973,7 @@ extern GLboolean __GLEW_EXT_texture_env_add;
|
||||
extern GLboolean __GLEW_EXT_texture_env_combine;
|
||||
extern GLboolean __GLEW_EXT_texture_env_dot3;
|
||||
extern GLboolean __GLEW_EXT_texture_filter_anisotropic;
|
||||
extern GLboolean __GLEW_EXT_texture_filter_minmax;
|
||||
extern GLboolean __GLEW_EXT_texture_integer;
|
||||
extern GLboolean __GLEW_EXT_texture_lod_bias;
|
||||
extern GLboolean __GLEW_EXT_texture_mirror_clamp;
|
||||
@@ -4949,6 +5036,7 @@ extern GLboolean __GLEW_NV_blend_equation_advanced_coherent;
|
||||
extern GLboolean __GLEW_NV_blend_square;
|
||||
extern GLboolean __GLEW_NV_compute_program5;
|
||||
extern GLboolean __GLEW_NV_conditional_render;
|
||||
extern GLboolean __GLEW_NV_conservative_raster;
|
||||
extern GLboolean __GLEW_NV_copy_depth_to_color;
|
||||
extern GLboolean __GLEW_NV_copy_image;
|
||||
extern GLboolean __GLEW_NV_deep_texture3D;
|
||||
@@ -4959,21 +5047,27 @@ extern GLboolean __GLEW_NV_draw_texture;
|
||||
extern GLboolean __GLEW_NV_evaluators;
|
||||
extern GLboolean __GLEW_NV_explicit_multisample;
|
||||
extern GLboolean __GLEW_NV_fence;
|
||||
extern GLboolean __GLEW_NV_fill_rectangle;
|
||||
extern GLboolean __GLEW_NV_float_buffer;
|
||||
extern GLboolean __GLEW_NV_fog_distance;
|
||||
extern GLboolean __GLEW_NV_fragment_coverage_to_color;
|
||||
extern GLboolean __GLEW_NV_fragment_program;
|
||||
extern GLboolean __GLEW_NV_fragment_program2;
|
||||
extern GLboolean __GLEW_NV_fragment_program4;
|
||||
extern GLboolean __GLEW_NV_fragment_program_option;
|
||||
extern GLboolean __GLEW_NV_fragment_shader_interlock;
|
||||
extern GLboolean __GLEW_NV_framebuffer_mixed_samples;
|
||||
extern GLboolean __GLEW_NV_framebuffer_multisample_coverage;
|
||||
extern GLboolean __GLEW_NV_geometry_program4;
|
||||
extern GLboolean __GLEW_NV_geometry_shader4;
|
||||
extern GLboolean __GLEW_NV_geometry_shader_passthrough;
|
||||
extern GLboolean __GLEW_NV_gpu_program4;
|
||||
extern GLboolean __GLEW_NV_gpu_program5;
|
||||
extern GLboolean __GLEW_NV_gpu_program5_mem_extended;
|
||||
extern GLboolean __GLEW_NV_gpu_program_fp64;
|
||||
extern GLboolean __GLEW_NV_gpu_shader5;
|
||||
extern GLboolean __GLEW_NV_half_float;
|
||||
extern GLboolean __GLEW_NV_internalformat_sample_query;
|
||||
extern GLboolean __GLEW_NV_light_max_exponent;
|
||||
extern GLboolean __GLEW_NV_multisample_coverage;
|
||||
extern GLboolean __GLEW_NV_multisample_filter_hint;
|
||||
@@ -4982,14 +5076,18 @@ extern GLboolean __GLEW_NV_packed_depth_stencil;
|
||||
extern GLboolean __GLEW_NV_parameter_buffer_object;
|
||||
extern GLboolean __GLEW_NV_parameter_buffer_object2;
|
||||
extern GLboolean __GLEW_NV_path_rendering;
|
||||
extern GLboolean __GLEW_NV_path_rendering_shared_edge;
|
||||
extern GLboolean __GLEW_NV_pixel_data_range;
|
||||
extern GLboolean __GLEW_NV_point_sprite;
|
||||
extern GLboolean __GLEW_NV_present_video;
|
||||
extern GLboolean __GLEW_NV_primitive_restart;
|
||||
extern GLboolean __GLEW_NV_register_combiners;
|
||||
extern GLboolean __GLEW_NV_register_combiners2;
|
||||
extern GLboolean __GLEW_NV_sample_locations;
|
||||
extern GLboolean __GLEW_NV_sample_mask_override_coverage;
|
||||
extern GLboolean __GLEW_NV_shader_atomic_counters;
|
||||
extern GLboolean __GLEW_NV_shader_atomic_float;
|
||||
extern GLboolean __GLEW_NV_shader_atomic_fp16_vector;
|
||||
extern GLboolean __GLEW_NV_shader_atomic_int64;
|
||||
extern GLboolean __GLEW_NV_shader_buffer_load;
|
||||
extern GLboolean __GLEW_NV_shader_storage_buffer_object;
|
||||
@@ -5022,6 +5120,7 @@ extern GLboolean __GLEW_NV_vertex_program2_option;
|
||||
extern GLboolean __GLEW_NV_vertex_program3;
|
||||
extern GLboolean __GLEW_NV_vertex_program4;
|
||||
extern GLboolean __GLEW_NV_video_capture;
|
||||
extern GLboolean __GLEW_NV_viewport_array2;
|
||||
extern GLboolean __GLEW_OES_byte_coordinates;
|
||||
extern GLboolean __GLEW_OES_compressed_paletted_texture;
|
||||
extern GLboolean __GLEW_OES_read_format;
|
||||
@@ -5412,7 +5511,10 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
["__GLEW_EXT_pixel_transform_color_table"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_EXT_point_parameters"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_EXT_polygon_offset"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_EXT_polygon_offset_clamp"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_EXT_post_depth_coverage"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_EXT_provoking_vertex"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_EXT_raster_multisample"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_EXT_rescale_normal"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_EXT_scene_marker"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_EXT_secondary_color"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
@@ -5423,6 +5525,7 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
["__GLEW_EXT_shader_integer_mix"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_EXT_shadow_funcs"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_EXT_shared_texture_palette"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_EXT_sparse_texture2"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_EXT_stencil_clear_tag"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_EXT_stencil_two_side"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_EXT_stencil_wrap"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
@@ -5442,6 +5545,7 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
["__GLEW_EXT_texture_env_combine"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_EXT_texture_env_dot3"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_EXT_texture_filter_anisotropic"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_EXT_texture_filter_minmax"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_EXT_texture_integer"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_EXT_texture_lod_bias"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_EXT_texture_mirror_clamp"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
@@ -5504,6 +5608,7 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
["__GLEW_NV_blend_square"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_compute_program5"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_conditional_render"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_conservative_raster"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_copy_depth_to_color"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_copy_image"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_deep_texture3D"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
@@ -5514,21 +5619,27 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
["__GLEW_NV_evaluators"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_explicit_multisample"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_fence"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_fill_rectangle"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_float_buffer"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_fog_distance"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_fragment_coverage_to_color"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_fragment_program"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_fragment_program2"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_fragment_program4"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_fragment_program_option"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_fragment_shader_interlock"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_framebuffer_mixed_samples"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_framebuffer_multisample_coverage"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_geometry_program4"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_geometry_shader4"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_geometry_shader_passthrough"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_gpu_program4"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_gpu_program5"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_gpu_program5_mem_extended"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_gpu_program_fp64"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_gpu_shader5"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_half_float"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_internalformat_sample_query"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_light_max_exponent"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_multisample_coverage"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_multisample_filter_hint"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
@@ -5537,14 +5648,18 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
["__GLEW_NV_parameter_buffer_object"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_parameter_buffer_object2"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_path_rendering"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_path_rendering_shared_edge"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_pixel_data_range"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_point_sprite"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_present_video"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_primitive_restart"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_register_combiners"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_register_combiners2"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_sample_locations"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_sample_mask_override_coverage"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_shader_atomic_counters"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_shader_atomic_float"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_shader_atomic_fp16_vector"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_shader_atomic_int64"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_shader_buffer_load"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_shader_storage_buffer_object"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
@@ -5577,6 +5692,7 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
["__GLEW_NV_vertex_program3"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_vertex_program4"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_video_capture"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_NV_viewport_array2"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_OES_byte_coordinates"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_OES_compressed_paletted_texture"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
["__GLEW_OES_read_format"] = { type ='value', description = "extern GLboolean", valuetype = nil, },
|
||||
@@ -6700,6 +6816,8 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
["GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM"] = { type ='value', },
|
||||
["GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT"] = { type ='value', },
|
||||
["GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT"] = { type ='value', },
|
||||
["GL_COPY_READ_BUFFER_BINDING"] = { type ='value', },
|
||||
["GL_COPY_WRITE_BUFFER_BINDING"] = { type ='value', },
|
||||
["GL_NUM_SHADING_LANGUAGE_VERSIONS"] = { type ='value', },
|
||||
["GL_VERTEX_ATTRIB_ARRAY_LONG"] = { type ='value', },
|
||||
["GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED"] = { type ='value', },
|
||||
@@ -7416,7 +7534,6 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
["GL_TIMEOUT_EXPIRED"] = { type ='value', },
|
||||
["GL_CONDITION_SATISFIED"] = { type ='value', },
|
||||
["GL_WAIT_FAILED"] = { type ='value', },
|
||||
["GL_TIMEOUT_IGNORED"] = { type ='value', },
|
||||
["GL_PATCHES"] = { type ='value', },
|
||||
["GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER"] = { type ='value', },
|
||||
["GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER"] = { type ='value', },
|
||||
@@ -7708,6 +7825,8 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
["GL_HSL_SATURATION_KHR"] = { type ='value', },
|
||||
["GL_HSL_COLOR_KHR"] = { type ='value', },
|
||||
["GL_HSL_LUMINOSITY_KHR"] = { type ='value', },
|
||||
["GL_CONTEXT_RELEASE_BEHAVIOR"] = { type ='value', },
|
||||
["GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH"] = { type ='value', },
|
||||
["GL_CONTEXT_FLAG_DEBUG_BIT"] = { type ='value', },
|
||||
["GL_DEBUG_OUTPUT_SYNCHRONOUS"] = { type ='value', },
|
||||
["GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH"] = { type ='value', },
|
||||
@@ -7835,6 +7954,10 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
["GL_INVERT_OVG_NV"] = { type ='value', },
|
||||
["GL_COMPUTE_PROGRAM_NV"] = { type ='value', },
|
||||
["GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV"] = { type ='value', },
|
||||
["GL_CONSERVATIVE_RASTERIZATION_NV"] = { type ='value', },
|
||||
["GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV"] = { type ='value', },
|
||||
["GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV"] = { type ='value', },
|
||||
["GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV"] = { type ='value', },
|
||||
["GL_DEPTH_STENCIL_TO_RGBA_NV"] = { type ='value', },
|
||||
["GL_DEPTH_STENCIL_TO_BGRA_NV"] = { type ='value', },
|
||||
["GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV"] = { type ='value', },
|
||||
@@ -7876,6 +7999,7 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
["GL_ALL_COMPLETED_NV"] = { type ='value', },
|
||||
["GL_FENCE_STATUS_NV"] = { type ='value', },
|
||||
["GL_FENCE_CONDITION_NV"] = { type ='value', },
|
||||
["GL_FILL_RECTANGLE_NV"] = { type ='value', },
|
||||
["GL_FLOAT_R_NV"] = { type ='value', },
|
||||
["GL_FLOAT_RG_NV"] = { type ='value', },
|
||||
["GL_FLOAT_RGB_NV"] = { type ='value', },
|
||||
@@ -7894,6 +8018,8 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
["GL_FOG_DISTANCE_MODE_NV"] = { type ='value', },
|
||||
["GL_EYE_RADIAL_NV"] = { type ='value', },
|
||||
["GL_EYE_PLANE_ABSOLUTE_NV"] = { type ='value', },
|
||||
["GL_FRAGMENT_COVERAGE_TO_COLOR_NV"] = { type ='value', },
|
||||
["GL_FRAGMENT_COVERAGE_COLOR_NV"] = { type ='value', },
|
||||
["GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV"] = { type ='value', },
|
||||
["GL_FRAGMENT_PROGRAM_NV"] = { type ='value', },
|
||||
["GL_FRAGMENT_PROGRAM_BINDING_NV"] = { type ='value', },
|
||||
@@ -7946,9 +8072,12 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
["GL_FLOAT16_VEC2_NV"] = { type ='value', },
|
||||
["GL_FLOAT16_VEC3_NV"] = { type ='value', },
|
||||
["GL_FLOAT16_VEC4_NV"] = { type ='value', },
|
||||
["GL_MULTISAMPLES_NV"] = { type ='value', },
|
||||
["GL_SUPERSAMPLE_SCALE_X_NV"] = { type ='value', },
|
||||
["GL_SUPERSAMPLE_SCALE_Y_NV"] = { type ='value', },
|
||||
["GL_CONFORMANT_NV"] = { type ='value', },
|
||||
["GL_MAX_SHININESS_NV"] = { type ='value', },
|
||||
["GL_MAX_SPOT_EXPONENT_NV"] = { type ='value', },
|
||||
["GL_COLOR_SAMPLES_NV"] = { type ='value', },
|
||||
["GL_MULTISAMPLE_FILTER_HINT_NV"] = { type ='value', },
|
||||
["GL_PIXEL_COUNTER_BITS_NV"] = { type ='value', },
|
||||
["GL_CURRENT_OCCLUSION_QUERY_ID_NV"] = { type ='value', },
|
||||
@@ -7991,19 +8120,31 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
["GL_RELATIVE_LARGE_CCW_ARC_TO_NV"] = { type ='value', },
|
||||
["GL_LARGE_CW_ARC_TO_NV"] = { type ='value', },
|
||||
["GL_RELATIVE_LARGE_CW_ARC_TO_NV"] = { type ='value', },
|
||||
["GL_CONIC_CURVE_TO_NV"] = { type ='value', },
|
||||
["GL_RELATIVE_CONIC_CURVE_TO_NV"] = { type ='value', },
|
||||
["GL_GLYPH_VERTICAL_BEARING_X_BIT_NV"] = { type ='value', },
|
||||
["GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV"] = { type ='value', },
|
||||
["GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV"] = { type ='value', },
|
||||
["GL_ROUNDED_RECT_NV"] = { type ='value', },
|
||||
["GL_RELATIVE_ROUNDED_RECT_NV"] = { type ='value', },
|
||||
["GL_ROUNDED_RECT2_NV"] = { type ='value', },
|
||||
["GL_RELATIVE_ROUNDED_RECT2_NV"] = { type ='value', },
|
||||
["GL_ROUNDED_RECT4_NV"] = { type ='value', },
|
||||
["GL_RELATIVE_ROUNDED_RECT4_NV"] = { type ='value', },
|
||||
["GL_ROUNDED_RECT8_NV"] = { type ='value', },
|
||||
["GL_RELATIVE_ROUNDED_RECT8_NV"] = { type ='value', },
|
||||
["GL_RESTART_PATH_NV"] = { type ='value', },
|
||||
["GL_DUP_FIRST_CUBIC_CURVE_TO_NV"] = { type ='value', },
|
||||
["GL_DUP_LAST_CUBIC_CURVE_TO_NV"] = { type ='value', },
|
||||
["GL_RECT_NV"] = { type ='value', },
|
||||
["GL_RELATIVE_RECT_NV"] = { type ='value', },
|
||||
["GL_CIRCULAR_CCW_ARC_TO_NV"] = { type ='value', },
|
||||
["GL_CIRCULAR_CW_ARC_TO_NV"] = { type ='value', },
|
||||
["GL_CIRCULAR_TANGENT_ARC_TO_NV"] = { type ='value', },
|
||||
["GL_ARC_TO_NV"] = { type ='value', },
|
||||
["GL_RELATIVE_ARC_TO_NV"] = { type ='value', },
|
||||
["GL_GLYPH_HAS_KERNING_BIT_NV"] = { type ='value', },
|
||||
["GL_SECONDARY_COLOR_NV"] = { type ='value', },
|
||||
["GL_PATH_FORMAT_SVG_NV"] = { type ='value', },
|
||||
["GL_PATH_FORMAT_PS_NV"] = { type ='value', },
|
||||
["GL_STANDARD_FONT_NAME_NV"] = { type ='value', },
|
||||
@@ -8025,6 +8166,7 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
["GL_PATH_FILL_COVER_MODE_NV"] = { type ='value', },
|
||||
["GL_PATH_STROKE_COVER_MODE_NV"] = { type ='value', },
|
||||
["GL_PATH_STROKE_MASK_NV"] = { type ='value', },
|
||||
["GL_PATH_STROKE_BOUND_NV"] = { type ='value', },
|
||||
["GL_COUNT_UP_NV"] = { type ='value', },
|
||||
["GL_COUNT_DOWN_NV"] = { type ='value', },
|
||||
["GL_PATH_OBJECT_BOUNDING_BOX_NV"] = { type ='value', },
|
||||
@@ -8073,6 +8215,12 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
["GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV"] = { type ='value', },
|
||||
["GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV"] = { type ='value', },
|
||||
["GL_PATH_COVER_DEPTH_FUNC_NV"] = { type ='value', },
|
||||
["GL_FONT_GLYPHS_AVAILABLE_NV"] = { type ='value', },
|
||||
["GL_FONT_TARGET_UNAVAILABLE_NV"] = { type ='value', },
|
||||
["GL_FONT_UNAVAILABLE_NV"] = { type ='value', },
|
||||
["GL_FONT_UNINTELLIGIBLE_NV"] = { type ='value', },
|
||||
["GL_STANDARD_FONT_FORMAT_NV"] = { type ='value', },
|
||||
["GL_FRAGMENT_INPUT_NV"] = { type ='value', },
|
||||
["GL_FONT_X_MIN_BOUNDS_BIT_NV"] = { type ='value', },
|
||||
["GL_FONT_Y_MIN_BOUNDS_BIT_NV"] = { type ='value', },
|
||||
["GL_FONT_X_MAX_BOUNDS_BIT_NV"] = { type ='value', },
|
||||
@@ -8086,6 +8234,8 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
["GL_FONT_UNDERLINE_POSITION_BIT_NV"] = { type ='value', },
|
||||
["GL_FONT_UNDERLINE_THICKNESS_BIT_NV"] = { type ='value', },
|
||||
["GL_FONT_HAS_KERNING_BIT_NV"] = { type ='value', },
|
||||
["GL_FONT_NUM_GLYPH_INDICES_BIT_NV"] = { type ='value', },
|
||||
["GL_SHARED_EDGE_NV"] = { type ='value', },
|
||||
["GL_WRITE_PIXEL_DATA_RANGE_NV"] = { type ='value', },
|
||||
["GL_READ_PIXEL_DATA_RANGE_NV"] = { type ='value', },
|
||||
["GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV"] = { type ='value', },
|
||||
@@ -8109,7 +8259,6 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
["GL_VARIABLE_G_NV"] = { type ='value', },
|
||||
["GL_CONSTANT_COLOR0_NV"] = { type ='value', },
|
||||
["GL_CONSTANT_COLOR1_NV"] = { type ='value', },
|
||||
["GL_SECONDARY_COLOR_NV"] = { type ='value', },
|
||||
["GL_SPARE0_NV"] = { type ='value', },
|
||||
["GL_SPARE1_NV"] = { type ='value', },
|
||||
["GL_DISCARD_NV"] = { type ='value', },
|
||||
@@ -8150,6 +8299,14 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
["GL_COMBINER6_NV"] = { type ='value', },
|
||||
["GL_COMBINER7_NV"] = { type ='value', },
|
||||
["GL_PER_STAGE_CONSTANTS_NV"] = { type ='value', },
|
||||
["GL_SAMPLE_LOCATION_NV"] = { type ='value', },
|
||||
["GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV"] = { type ='value', },
|
||||
["GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV"] = { type ='value', },
|
||||
["GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV"] = { type ='value', },
|
||||
["GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV"] = { type ='value', },
|
||||
["GL_PROGRAMMABLE_SAMPLE_LOCATION_NV"] = { type ='value', },
|
||||
["GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV"] = { type ='value', },
|
||||
["GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV"] = { type ='value', },
|
||||
["GL_BUFFER_GPU_ADDRESS_NV"] = { type ='value', },
|
||||
["GL_GPU_ADDRESS_NV"] = { type ='value', },
|
||||
["GL_MAX_SHADER_BUFFER_ADDRESS_NV"] = { type ='value', },
|
||||
@@ -11518,6 +11675,11 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLclampf value)", },
|
||||
["glGetGraphicsResetStatus"] = { type ='function',
|
||||
description = "",
|
||||
returns = "(GLenum)",
|
||||
valuetype = nil,
|
||||
args = "(void)", },
|
||||
["glDebugMessageEnableAMD"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
@@ -12033,6 +12195,26 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLuint renderbuffer, GLenum pname, GLint* params)", },
|
||||
["glGetQueryBufferObjecti64v"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLuint id,GLuint buffer,GLenum pname,GLintptr offset)", },
|
||||
["glGetQueryBufferObjectiv"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLuint id,GLuint buffer,GLenum pname,GLintptr offset)", },
|
||||
["glGetQueryBufferObjectui64v"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLuint id,GLuint buffer,GLenum pname,GLintptr offset)", },
|
||||
["glGetQueryBufferObjectuiv"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLuint id,GLuint buffer,GLenum pname,GLintptr offset)", },
|
||||
["glGetTextureImage"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
@@ -12893,11 +13075,6 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLenum mode)", },
|
||||
["glGetGraphicsResetStatusARB"] = { type ='function',
|
||||
description = "",
|
||||
returns = "(GLenum)",
|
||||
valuetype = nil,
|
||||
args = "(void)", },
|
||||
["glGetnColorTableARB"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
@@ -15083,6 +15260,11 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLenum pname, GLint value)", },
|
||||
["glSubpixelPrecisionBiasNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLuint xbits, GLuint ybits)", },
|
||||
["glClearDepthdNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
@@ -15193,6 +15375,11 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
returns = "(GLboolean)",
|
||||
valuetype = nil,
|
||||
args = "(GLuint fence)", },
|
||||
["glFragmentCoverageColorNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLuint color)", },
|
||||
["glGetProgramNamedParameterdvNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
@@ -15693,6 +15880,11 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(const GLhalf* weight)", },
|
||||
["glGetInternalformatSampleivNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei bufSize, GLint* params)", },
|
||||
["glBeginOcclusionQueryNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
@@ -15752,7 +15944,7 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLsizei numPaths, GLenum pathNameType, const void* paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues)", },
|
||||
args = "(GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues)", },
|
||||
["glCoverFillPathNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
@@ -15762,12 +15954,12 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLsizei numPaths, GLenum pathNameType, const void* paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues)", },
|
||||
args = "(GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues)", },
|
||||
["glCoverStrokePathNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLuint name, GLenum coverMode)", },
|
||||
args = "(GLuint path, GLenum coverMode)", },
|
||||
["glDeletePathsNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
@@ -15792,17 +15984,17 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLuint name, GLubyte* commands)", },
|
||||
args = "(GLuint path, GLubyte* commands)", },
|
||||
["glGetPathCoordsNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLuint name, GLfloat* coords)", },
|
||||
args = "(GLuint path, GLfloat* coords)", },
|
||||
["glGetPathDashArrayNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLuint name, GLfloat* dashArray)", },
|
||||
args = "(GLuint path, GLfloat* dashArray)", },
|
||||
["glGetPathLengthNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "(GLfloat)",
|
||||
@@ -15812,27 +16004,27 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLbitfield metricQueryMask, GLuint fistPathName, GLsizei numPaths, GLsizei stride, GLfloat* metrics)", },
|
||||
args = "(GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat* metrics)", },
|
||||
["glGetPathMetricsNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void* paths, GLuint pathBase, GLsizei stride, GLfloat *metrics)", },
|
||||
args = "(GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics)", },
|
||||
["glGetPathParameterfvNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLuint name, GLenum param, GLfloat* value)", },
|
||||
args = "(GLuint path, GLenum pname, GLfloat* value)", },
|
||||
["glGetPathParameterivNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLuint name, GLenum param, GLint* value)", },
|
||||
args = "(GLuint path, GLenum pname, GLint* value)", },
|
||||
["glGetPathSpacingNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void* paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing)", },
|
||||
args = "(GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing)", },
|
||||
["glGetPathTexGenfvNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
@@ -15843,6 +16035,11 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLenum texCoordSet, GLenum pname, GLint* value)", },
|
||||
["glGetProgramResourcefvNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum* props, GLsizei bufSize, GLsizei *length, GLfloat *params)", },
|
||||
["glInterpolatePathsNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
@@ -15863,6 +16060,36 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
returns = "(GLboolean)",
|
||||
valuetype = nil,
|
||||
args = "(GLuint path, GLfloat x, GLfloat y)", },
|
||||
["glMatrixLoad3x2fNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLenum matrixMode, const GLfloat* m)", },
|
||||
["glMatrixLoad3x3fNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLenum matrixMode, const GLfloat* m)", },
|
||||
["glMatrixLoadTranspose3x3fNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLenum matrixMode, const GLfloat* m)", },
|
||||
["glMatrixMult3x2fNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLenum matrixMode, const GLfloat* m)", },
|
||||
["glMatrixMult3x3fNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLenum matrixMode, const GLfloat* m)", },
|
||||
["glMatrixMultTranspose3x3fNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLenum matrixMode, const GLfloat* m)", },
|
||||
["glPathColorGenNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
@@ -15877,7 +16104,7 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLuint path, GLsizei numCoords, GLenum coordType, const void* coords)", },
|
||||
args = "(GLuint path, GLsizei numCoords, GLenum coordType, const void *coords)", },
|
||||
["glPathCoverDepthFuncNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
@@ -15893,16 +16120,31 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLenum genMode)", },
|
||||
["glPathGlyphIndexArrayNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "(GLenum)",
|
||||
valuetype = nil,
|
||||
args = "(GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale)", },
|
||||
["glPathGlyphIndexRangeNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "(GLenum)",
|
||||
valuetype = nil,
|
||||
args = "(GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint baseAndCount[2])", },
|
||||
["glPathGlyphRangeNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLuint firstPathName, GLenum fontTarget, const void* fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale)", },
|
||||
args = "(GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale)", },
|
||||
["glPathGlyphsNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLuint firstPathName, GLenum fontTarget, const void* fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void*charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale)", },
|
||||
args = "(GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void*charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale)", },
|
||||
["glPathMemoryGlyphIndexArrayNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "(GLenum)",
|
||||
valuetype = nil,
|
||||
args = "(GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale)", },
|
||||
["glPathParameterfNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
@@ -15937,7 +16179,7 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLuint path, GLenum format, GLsizei length, const void* pathString)", },
|
||||
args = "(GLuint path, GLenum format, GLsizei length, const void *pathString)", },
|
||||
["glPathSubCommandsNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
@@ -15947,7 +16189,7 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void* coords)", },
|
||||
args = "(GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords)", },
|
||||
["glPathTexGenNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
@@ -15958,11 +16200,16 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
returns = "(GLboolean)",
|
||||
valuetype = nil,
|
||||
args = "(GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat* x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY)", },
|
||||
["glProgramPathFragmentInputGenNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat* coeffs)", },
|
||||
["glStencilFillPathInstancedNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLsizei numPaths, GLenum pathNameType, const void* paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues)", },
|
||||
args = "(GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues)", },
|
||||
["glStencilFillPathNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
@@ -15972,12 +16219,32 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLsizei numPaths, GLenum pathNameType, const void* paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues)", },
|
||||
args = "(GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues)", },
|
||||
["glStencilStrokePathNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLuint path, GLint reference, GLuint mask)", },
|
||||
["glStencilThenCoverFillPathInstancedNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues)", },
|
||||
["glStencilThenCoverFillPathNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode)", },
|
||||
["glStencilThenCoverStrokePathInstancedNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues)", },
|
||||
["glStencilThenCoverStrokePathNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLuint path, GLint reference, GLuint mask, GLenum coverMode)", },
|
||||
["glTransformPathNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
@@ -16108,6 +16375,16 @@ extern GLboolean __GLEW_WIN_swap_hint;
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLenum stage, GLenum pname, GLfloat* params)", },
|
||||
["glFramebufferSampleLocationsfvNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLenum target, GLuint start, GLsizei count, const GLfloat* v)", },
|
||||
["glNamedFramebufferSampleLocationsfvNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
valuetype = nil,
|
||||
args = "(GLuint framebuffer, GLuint start, GLsizei count, const GLfloat* v)", },
|
||||
["glGetBufferParameterui64vNV"] = { type ='function',
|
||||
description = "",
|
||||
returns = "()",
|
||||
|
||||
@@ -1,12 +1,19 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ "$(uname -m)" = "x86_64" ]; then
|
||||
FPIC="-fpic"
|
||||
ARCH="x64"
|
||||
else
|
||||
FPIC=""
|
||||
ARCH="x86"
|
||||
fi
|
||||
case "$(uname -m)" in
|
||||
x86_64)
|
||||
FPIC="-fpic"
|
||||
ARCH="x64"
|
||||
;;
|
||||
armv7l)
|
||||
FPIC="-fpic"
|
||||
ARCH="armhf"
|
||||
;;
|
||||
*)
|
||||
FPIC=""
|
||||
ARCH="x86"
|
||||
;;
|
||||
esac
|
||||
|
||||
# ZBS binary directory
|
||||
BIN_DIR="$(dirname "$PWD")/bin/linux/$ARCH"
|
||||
|
||||
@@ -24,7 +24,6 @@ return {
|
||||
["&Fold/Unfold All"] = "全 折叠/展开", -- src\editor\menu_edit.lua
|
||||
["&Frequently Asked Questions"] = nil, -- src\editor\menu_help.lua
|
||||
["&Getting Started Guide"] = nil, -- src\editor\menu_help.lua
|
||||
["&Go To Line..."] = "到...行", -- src\editor\menu_search.lua
|
||||
["&Help"] = "帮助", -- src\editor\menu_help.lua
|
||||
["&New Directory"] = nil, -- src\editor\filetree.lua
|
||||
["&New"] = "新建", -- src\editor\menu_file.lua
|
||||
@@ -57,8 +56,8 @@ return {
|
||||
["Add Watch Expression"] = "添加监视表达式", -- src\editor\editor.lua
|
||||
["All files"] = "全部文件", -- src\editor\commands.lua
|
||||
["Allow external process to start debugging"] = "允许外部进程开启除错", -- src\editor\menu_project.lua
|
||||
["Analyze the source code"] = "分析源代码", -- src\editor\inspect.lua, src\editor\inspect.lua-profile
|
||||
["Analyze"] = "分析", -- src\editor\inspect.lua, src\editor\inspect.lua-profile
|
||||
["Analyze the source code"] = "分析源代码", -- src\editor\inspect.lua
|
||||
["Analyze"] = "分析", -- src\editor\inspect.lua
|
||||
["Auto Complete Identifiers"] = "自动补全标识符", -- src\editor\menu_edit.lua
|
||||
["Auto complete while typing"] = "当输入时自动补全", -- src\editor\menu_edit.lua
|
||||
["Bookmark"] = nil, -- src\editor\menu_edit.lua
|
||||
@@ -107,7 +106,7 @@ return {
|
||||
["Debugger server stopped at %s:%d."] = nil, -- src\editor\debugger.lua
|
||||
["Debugging session completed (%s)."] = "除错会话完成 (%s)", -- src\editor\debugger.lua
|
||||
["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
|
||||
["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
|
||||
["Do you want to delete '%s'?"] = nil, -- src\editor\filetree.lua
|
||||
@@ -117,7 +116,6 @@ return {
|
||||
["E&xit"] = "离开", -- src\editor\menu_file.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 line number"] = "输入行号码", -- src\editor\menu_search.lua
|
||||
["Enter replacement text"] = nil, -- src\editor\editor.lua
|
||||
["Error while loading API file: %s"] = "导入API档时出错误: %s", -- src\editor\autocomplete.lua
|
||||
["Error while loading configuration file: %s"] = "导入configuration档时出错误: %s", -- src\editor\style.lua
|
||||
@@ -140,6 +138,7 @@ return {
|
||||
["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 text in files"] = "在文档中查找text", -- src\editor\menu_search.lua
|
||||
@@ -152,13 +151,19 @@ return {
|
||||
["Found"] = "找到", -- src\editor\findreplace.lua
|
||||
["Full &Screen"] = "全屏", -- src\editor\menu_view.lua
|
||||
["Go To Definition"] = nil, -- src\editor\editor.lua
|
||||
["Go To Line"] = "到...行", -- src\editor\menu_search.lua
|
||||
["Go To File..."] = nil, -- src\editor\menu_search.lua
|
||||
["Go To Line..."] = "到...行", -- src\editor\menu_search.lua
|
||||
["Go To Next Bookmark"] = nil, -- src\editor\menu_edit.lua
|
||||
["Go To Previous Bookmark"] = nil, -- src\editor\menu_edit.lua
|
||||
["Go to a selected line"] = "到所选的行", -- src\editor\menu_search.lua
|
||||
["Go To Symbol..."] = nil, -- src\editor\menu_search.lua
|
||||
["Go to file"] = nil, -- src\editor\menu_search.lua
|
||||
["Go to line"] = "到...行", -- src\editor\menu_search.lua
|
||||
["Go to symbol"] = nil, -- src\editor\menu_search.lua
|
||||
["Hide '.%s' Files"] = nil, -- src\editor\filetree.lua
|
||||
["INS"] = "INS", -- src\editor\editor.lua
|
||||
["Ignored error in debugger initialization code: %s."] = nil, -- src\editor\debugger.lua
|
||||
["In Files"] = "在档案里", -- src\editor\findreplace.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
|
||||
@@ -167,6 +172,7 @@ return {
|
||||
["Match &case"] = "case匹配", -- src\editor\findreplace.lua
|
||||
["Match &whole word"] = "全句匹配", -- src\editor\findreplace.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
|
||||
@@ -212,6 +218,7 @@ return {
|
||||
["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
|
||||
["S&top Debugging"] = "停止除错", -- src\editor\menu_project.lua
|
||||
["S&top Process"] = "停止进程", -- src\editor\menu_project.lua
|
||||
@@ -230,8 +237,8 @@ return {
|
||||
["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 And Find Next"] = nil, -- src\editor\menu_search.lua
|
||||
["Select And Find Previous"] = nil, -- src\editor\menu_search.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 From Current File"] = "从当前文档设置", -- src\editor\menu_project.lua
|
||||
@@ -241,7 +248,11 @@ return {
|
||||
["Settings: System"] = "设置: 系统", -- src\editor\menu_edit.lua
|
||||
["Settings: User"] = "设置: 用户", -- src\editor\menu_edit.lua
|
||||
["Show &Tooltip"] = "展现tooltip", -- src\editor\menu_edit.lua
|
||||
["Show All Files"] = nil, -- src\editor\filetree.lua
|
||||
["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 files previously hidden"] = nil, -- src\editor\filetree.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
|
||||
|
||||
@@ -25,7 +25,6 @@ return {
|
||||
["&Fold/Unfold All"] = "A&lles ein-/ausklappen", -- src\editor\menu_edit.lua
|
||||
["&Frequently Asked Questions"] = "&FAQ", -- src\editor\menu_help.lua
|
||||
["&Getting Started Guide"] = "&Anfängerleitfaden", -- src\editor\menu_help.lua
|
||||
["&Go To Line..."] = "&Gehe zu Zeile...", -- src\editor\menu_search.lua
|
||||
["&Help"] = "&Hilfe", -- src\editor\menu_help.lua
|
||||
["&New Directory"] = "&Neuer Ordner", -- src\editor\filetree.lua
|
||||
["&New"] = "&Neu", -- src\editor\menu_file.lua
|
||||
@@ -58,8 +57,8 @@ return {
|
||||
["Add Watch Expression"] = "Beobachtungspunkt hinzufügen", -- src\editor\editor.lua
|
||||
["All files"] = "Alle Dateien", -- src\editor\commands.lua
|
||||
["Allow external process to start debugging"] = "Externem Prozeß erlauben, den Debugger zu starten", -- src\editor\menu_project.lua
|
||||
["Analyze the source code"] = "Quellcode analysieren", -- src\editor\inspect.lua, src\editor\inspect.lua-profile
|
||||
["Analyze"] = "&Analyseroutine", -- src\editor\inspect.lua, src\editor\inspect.lua-profile
|
||||
["Analyze the source code"] = "Quellcode analysieren", -- src\editor\inspect.lua
|
||||
["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
|
||||
["Bookmark"] = "Lese&zeichen", -- src\editor\menu_edit.lua
|
||||
@@ -108,7 +107,7 @@ return {
|
||||
["Debugger server stopped at %s:%d."] = "Debugserver gestoppt als %s:%d.", -- src\editor\debugger.lua
|
||||
["Debugging session completed (%s)."] = "Debugging Session beendet (%s).", -- src\editor\debugger.lua
|
||||
["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
|
||||
["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
|
||||
["Do you want to delete '%s'?"] = "Soll '%s' gelöscht werden?", -- src\editor\filetree.lua
|
||||
@@ -118,7 +117,6 @@ return {
|
||||
["E&xit"] = "&Beenden", -- src\editor\menu_file.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 line number"] = "Zeilennummer eingeben", -- src\editor\menu_search.lua
|
||||
["Enter replacement text"] = "Neuen Text eingeben", -- src\editor\editor.lua
|
||||
["Error while loading API file: %s"] = "Fehler beim Laden von API-Datei: %s", -- src\editor\autocomplete.lua
|
||||
["Error while loading configuration file: %s"] = "Fehler beim Laden von Konfigurationsdatei: %s", -- src\editor\style.lua
|
||||
@@ -141,6 +139,7 @@ return {
|
||||
["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 text in files"] = "Finde Text in Dateien", -- src\editor\menu_search.lua
|
||||
@@ -153,13 +152,19 @@ return {
|
||||
["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 Line"] = "Gehe zu Zeile", -- src\editor\menu_search.lua
|
||||
["Go To File..."] = "Gehe zu Datei...", -- src\editor\menu_search.lua
|
||||
["Go To Line..."] = "Gehe zu Zeile...", -- src\editor\menu_search.lua
|
||||
["Go To Next Bookmark"] = "Zu nächstem Lesezeichen", -- src\editor\menu_edit.lua
|
||||
["Go To Previous Bookmark"] = "Zu vorherigem Lesezeichen", -- src\editor\menu_edit.lua
|
||||
["Go to a selected line"] = "Gehe zu ausgewählter Zeile", -- src\editor\menu_search.lua
|
||||
["Go To Symbol..."] = "Gehe zu Symbol...", -- src\editor\menu_search.lua
|
||||
["Go to file"] = "Gehe zu Datei", -- src\editor\menu_search.lua
|
||||
["Go to line"] = "Gehe zu Zeile", -- src\editor\menu_search.lua
|
||||
["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
|
||||
["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
|
||||
["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
|
||||
@@ -168,6 +173,7 @@ return {
|
||||
["Match &case"] = "&Groß-/Kleinschreibung", -- src\editor\findreplace.lua
|
||||
["Match &whole word"] = "Ganzes &Wort", -- src\editor\findreplace.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
|
||||
@@ -213,6 +219,7 @@ return {
|
||||
["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
|
||||
["S&top Debugging"] = "Debugging a&nhalten", -- src\editor\menu_project.lua
|
||||
["S&top Process"] = "Prozeß &anhalten", -- src\editor\menu_project.lua
|
||||
@@ -231,8 +238,8 @@ return {
|
||||
["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 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 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 From Current File"] = "Anhand der aktuellen Datei festlegen", -- src\editor\menu_project.lua
|
||||
@@ -242,7 +249,11 @@ return {
|
||||
["Settings: System"] = "Einstellungen: System", -- src\editor\menu_edit.lua
|
||||
["Settings: User"] = "Einstellungen: Nutzer", -- src\editor\menu_edit.lua
|
||||
["Show &Tooltip"] = "&Tooltip zeigen", -- src\editor\menu_edit.lua
|
||||
["Show All Files"] = "Zeige alle Dateien", -- src\editor\filetree.lua
|
||||
["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 files previously hidden"] = "Zeige Dateien die zuvor versteckt wurden", -- src\editor\filetree.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
|
||||
|
||||
@@ -26,7 +26,6 @@ return {
|
||||
["&Fold/Unfold All"] = "&Kaŝi/Malkaŝi ĉion", -- src\editor\menu_edit.lua
|
||||
["&Frequently Asked Questions"] = "&Oftaj demandoj", -- src\editor\menu_help.lua
|
||||
["&Getting Started Guide"] = "&Ekgvidilo", -- src\editor\menu_help.lua
|
||||
["&Go To Line..."] = "&Iri al linio...", -- src\editor\menu_search.lua
|
||||
["&Help"] = "&Helpo", -- src\editor\menu_help.lua
|
||||
["&New Directory"] = "&Nova dosierujo", -- src\editor\filetree.lua
|
||||
["&New"] = "&Nova paĝo", -- src\editor\menu_file.lua
|
||||
@@ -59,8 +58,8 @@ return {
|
||||
["Add Watch Expression"] = "Aldoni observadaĵan esprimon", -- src\editor\editor.lua
|
||||
["All files"] = "Ĉiuj dosieroj", -- src\editor\commands.lua
|
||||
["Allow external process to start debugging"] = "Lasi eksteran procezon ek-sencimigi", -- src\editor\menu_project.lua
|
||||
["Analyze the source code"] = "Analizi fontkodon", -- src\editor\inspect.lua, src\editor\inspect.lua-profile
|
||||
["Analyze"] = "Analizi", -- src\editor\inspect.lua, src\editor\inspect.lua-profile
|
||||
["Analyze the source code"] = "Analizi fontkodon", -- src\editor\inspect.lua
|
||||
["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
|
||||
["Bookmark"] = "Legosigno", -- src\editor\menu_edit.lua
|
||||
@@ -109,7 +108,7 @@ return {
|
||||
["Debugger server stopped at %s:%d."] = "Sencimigilo-servilon malfunkciiĝis ĉe %s:%d.", -- src\editor\debugger.lua
|
||||
["Debugging session completed (%s)."] = "Sencimiga seanco estas finita (%s).", -- src\editor\debugger.lua
|
||||
["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
|
||||
["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
|
||||
["Do you want to delete '%s'?"] = "Ĉu vi volas forigi je '%s'?", -- src\editor\filetree.lua
|
||||
@@ -119,7 +118,6 @@ return {
|
||||
["E&xit"] = "&Eliri", -- src\editor\menu_file.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 line number"] = "Enigu linian numeron", -- src\editor\menu_search.lua
|
||||
["Enter replacement text"] = "Enigu anstataŭigan tekston", -- src\editor\editor.lua
|
||||
["Error while loading API file: %s"] = "Eraro okazis dum ŝargado de API-a dosiero: %s", -- src\editor\autocomplete.lua
|
||||
["Error while loading configuration file: %s"] = "Eraro okazis dum ŝargado de agorda dosiero: %s", -- src\editor\style.lua
|
||||
@@ -142,6 +140,7 @@ return {
|
||||
["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 text in files"] = "Traserĉi tekston en dosieroj", -- src\editor\menu_search.lua
|
||||
@@ -154,13 +153,19 @@ return {
|
||||
["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 Line"] = "Iri al linio", -- src\editor\menu_search.lua
|
||||
["Go To File..."] = nil, -- src\editor\menu_search.lua
|
||||
["Go To Line..."] = "Iri al linio...", -- src\editor\menu_search.lua
|
||||
["Go To Next Bookmark"] = "Iri al sekvanta legosigno", -- src\editor\menu_edit.lua
|
||||
["Go To Previous Bookmark"] = "Iri al antaŭanta legosigno", -- src\editor\menu_edit.lua
|
||||
["Go to a selected line"] = "Iri al elektita linio", -- src\editor\menu_search.lua
|
||||
["Go To Symbol..."] = nil, -- src\editor\menu_search.lua
|
||||
["Go to file"] = nil, -- src\editor\menu_search.lua
|
||||
["Go to line"] = "Iri al linio", -- src\editor\menu_search.lua
|
||||
["Go to symbol"] = nil, -- src\editor\menu_search.lua
|
||||
["Hide '.%s' Files"] = nil, -- src\editor\filetree.lua
|
||||
["INS"] = "INS", -- src\editor\editor.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
|
||||
["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
|
||||
@@ -169,6 +174,7 @@ return {
|
||||
["Match &case"] = "Atenti &usklecon", -- src\editor\findreplace.lua
|
||||
["Match &whole word"] = "Atenti &plenan vorton", -- src\editor\findreplace.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
|
||||
@@ -214,6 +220,7 @@ return {
|
||||
["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
|
||||
["S&top Debugging"] = "&Fini sencimigo", -- src\editor\menu_project.lua
|
||||
["S&top Process"] = "&Fini procezon", -- src\editor\menu_project.lua
|
||||
@@ -232,8 +239,8 @@ return {
|
||||
["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 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 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 From Current File"] = "Precizigi per la kuranta dosiero", -- src\editor\menu_project.lua
|
||||
@@ -243,7 +250,11 @@ return {
|
||||
["Settings: System"] = "Agordoj de la sistemo", -- src\editor\menu_edit.lua
|
||||
["Settings: User"] = "Agordoj de la uzanto", -- src\editor\menu_edit.lua
|
||||
["Show &Tooltip"] = "Montri &ŝpruchelpilon", -- src\editor\menu_edit.lua
|
||||
["Show All Files"] = nil, -- src\editor\filetree.lua
|
||||
["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 files previously hidden"] = nil, -- src\editor\filetree.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
|
||||
|
||||
@@ -26,7 +26,6 @@ return {
|
||||
["&Fold/Unfold All"] = "Plegar/desplegar todo", -- src\editor\menu_edit.lua
|
||||
["&Frequently Asked Questions"] = nil, -- src\editor\menu_help.lua
|
||||
["&Getting Started Guide"] = nil, -- src\editor\menu_help.lua
|
||||
["&Go To Line..."] = "Ir a línea...", -- src\editor\menu_search.lua
|
||||
["&Help"] = "Ayuda", -- src\editor\menu_help.lua
|
||||
["&New Directory"] = nil, -- src\editor\filetree.lua
|
||||
["&New"] = "&Nuevo", -- src\editor\menu_file.lua
|
||||
@@ -59,8 +58,8 @@ return {
|
||||
["Add Watch Expression"] = "Añadir expresión de observación", -- src\editor\editor.lua
|
||||
["All files"] = "Todos los archivos", -- src\editor\commands.lua
|
||||
["Allow external process to start debugging"] = "Permitir proceso externo para iniciar depuración", -- src\editor\menu_project.lua
|
||||
["Analyze the source code"] = "Analizar el código fuente", -- src\editor\inspect.lua, src\editor\inspect.lua-profile
|
||||
["Analyze"] = "Analizar", -- src\editor\inspect.lua, src\editor\inspect.lua-profile
|
||||
["Analyze the source code"] = "Analizar el código fuente", -- src\editor\inspect.lua
|
||||
["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
|
||||
["Bookmark"] = nil, -- src\editor\menu_edit.lua
|
||||
@@ -109,7 +108,7 @@ return {
|
||||
["Debugger server stopped at %s:%d."] = nil, -- src\editor\debugger.lua
|
||||
["Debugging session completed (%s)."] = "Sesión de depuración completada (%s).", -- src\editor\debugger.lua
|
||||
["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
|
||||
["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
|
||||
["Do you want to delete '%s'?"] = nil, -- src\editor\filetree.lua
|
||||
@@ -119,7 +118,6 @@ return {
|
||||
["E&xit"] = "Salir", -- src\editor\menu_file.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 line number"] = "Introduce número de línea", -- src\editor\menu_search.lua
|
||||
["Enter replacement text"] = nil, -- src\editor\editor.lua
|
||||
["Error while loading API file: %s"] = "Error mientras se cargaba el archivo de API: %s", -- src\editor\autocomplete.lua
|
||||
["Error while loading configuration file: %s"] = nil, -- src\editor\style.lua
|
||||
@@ -142,6 +140,7 @@ return {
|
||||
["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 text in files"] = "Buscar texto en archivos", -- src\editor\menu_search.lua
|
||||
@@ -154,13 +153,19 @@ return {
|
||||
["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 Line"] = "Ir a línea", -- src\editor\menu_search.lua
|
||||
["Go To File..."] = nil, -- src\editor\menu_search.lua
|
||||
["Go To Line..."] = "Ir a línea...", -- src\editor\menu_search.lua
|
||||
["Go To Next Bookmark"] = nil, -- src\editor\menu_edit.lua
|
||||
["Go To Previous Bookmark"] = nil, -- src\editor\menu_edit.lua
|
||||
["Go to a selected line"] = "Ir a línea seleccionada", -- src\editor\menu_search.lua
|
||||
["Go To Symbol..."] = nil, -- src\editor\menu_search.lua
|
||||
["Go to file"] = nil, -- src\editor\menu_search.lua
|
||||
["Go to line"] = "Ir a línea", -- src\editor\menu_search.lua
|
||||
["Go to symbol"] = nil, -- src\editor\menu_search.lua
|
||||
["Hide '.%s' Files"] = nil, -- src\editor\filetree.lua
|
||||
["INS"] = "INS", -- src\editor\editor.lua
|
||||
["Ignored error in debugger initialization code: %s."] = nil, -- src\editor\debugger.lua
|
||||
["In Files"] = nil, -- src\editor\findreplace.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
|
||||
@@ -169,6 +174,7 @@ return {
|
||||
["Match &case"] = nil, -- src\editor\findreplace.lua
|
||||
["Match &whole word"] = nil, -- src\editor\findreplace.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
|
||||
@@ -214,6 +220,7 @@ return {
|
||||
["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
|
||||
["S&top Debugging"] = "Parar depuración", -- src\editor\menu_project.lua
|
||||
["S&top Process"] = "Parar proceso", -- src\editor\menu_project.lua
|
||||
@@ -232,8 +239,8 @@ return {
|
||||
["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 And Find Next"] = nil, -- src\editor\menu_search.lua
|
||||
["Select And Find Previous"] = nil, -- src\editor\menu_search.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 From Current File"] = nil, -- src\editor\menu_project.lua
|
||||
@@ -243,7 +250,11 @@ return {
|
||||
["Settings: System"] = nil, -- src\editor\menu_edit.lua
|
||||
["Settings: User"] = nil, -- src\editor\menu_edit.lua
|
||||
["Show &Tooltip"] = "Ver tooltip", -- src\editor\menu_edit.lua
|
||||
["Show All Files"] = nil, -- src\editor\filetree.lua
|
||||
["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 files previously hidden"] = nil, -- src\editor\filetree.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
|
||||
|
||||
215
cfg/i18n/fr.lua
215
cfg/i18n/fr.lua
@@ -2,7 +2,7 @@ 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
|
||||
["&About"] = "À &propos", -- src\editor\menu_help.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
|
||||
@@ -15,7 +15,7 @@ return {
|
||||
["&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"] = nil, -- src\editor\debugger.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
|
||||
@@ -23,16 +23,15 @@ return {
|
||||
["&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"] = "&Questions Fréquemment Posées" , -- src\editor\menu_help.lua
|
||||
["&Getting Started Guide"] = "&Guide de Prise en Main", -- src\editor\menu_help.lua
|
||||
["&Go To Line..."] = "&Aller à la ligne...", -- src\editor\menu_search.lua
|
||||
["&Frequently Asked Questions"] = "&Foire aux questions" , -- src\editor\menu_help.lua
|
||||
["&Getting Started Guide"] = "&Guide de prise en main", -- src\editor\menu_help.lua
|
||||
["&Help"] = "Aid&e", -- src\editor\menu_help.lua
|
||||
["&New Directory"] = "&Nouveau Répertoire", -- src\editor\filetree.lua
|
||||
["&New Directory"] = "&Nouveau répertoire", -- src\editor\filetree.lua
|
||||
["&New"] = "&Nouveau", -- src\editor\menu_file.lua
|
||||
["&Open..."] = "&Ouvrir...", -- src\editor\menu_file.lua
|
||||
["&Output/Console Window"] = "&Sortie/Console", -- src\editor\menu_view.lua
|
||||
["&Paste"] = "Co&ller", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["&Project Page"] = "&Site Web de ZeroBrane", -- src\editor\menu_help.lua
|
||||
["&Project Page"] = "&Site web de ZeroBrane", -- src\editor\menu_help.lua
|
||||
["&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
|
||||
@@ -44,122 +43,128 @@ return {
|
||||
["&Sort"] = "&Trier", -- src\editor\menu_edit.lua
|
||||
["&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
|
||||
["&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
|
||||
["&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"] = "&Expressions espionnes", -- 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", -- src\editor\editor.lua
|
||||
["Add Watch Expression"] = "Ajouter une expression espionne", -- src\editor\editor.lua
|
||||
["All files"] = "Tous les fichiers", -- src\editor\commands.lua
|
||||
["Allow external process to start debugging"] = "Autoriser les processus externes à lancer le débogage", -- src\editor\menu_project.lua
|
||||
["Analyze the source code"] = "Analyser le code source", -- src\editor\inspect.lua, src\editor\inspect.lua-profile
|
||||
["Analyze"] = "Analyser", -- src\editor\inspect.lua, src\editor\inspect.lua-profile
|
||||
["Allow external process to start debugging"] = "Autorise les processus externes à lancer le débogage", -- src\editor\menu_project.lua
|
||||
["Analyze the source code"] = "Analyse le code source", -- src\editor\inspect.lua
|
||||
["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éter lors de la saisie", -- src\editor\menu_edit.lua
|
||||
["Bookmark"] = "&Marque-pages", -- src\editor\menu_edit.lua
|
||||
["Break execution at the next executed line of code"] = "Interrompre l'exécution à la ligne suivante", -- src\editor\menu_project.lua
|
||||
["Auto complete while typing"] = "Auto-complète lors de la saisie", -- src\editor\menu_edit.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
|
||||
["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."] = nil, -- 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"] = nil, -- src\editor\singleinstance.lua
|
||||
["Can't open file '%s': %s"] = "Impossible d'ouvrir le fichier '%s': %s", -- src\editor\singleinstance.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 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 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
|
||||
["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"] = "Choisissez un répertoire de projet", -- src\editor\findreplace.lua, src\editor\menu_project.lua, src\editor\filetree.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
|
||||
["Clear items from this list"] = "Effacer les éléments de cette liste", -- src\editor\menu_file.lua
|
||||
["Clear the output window before compiling or debugging"] = "Effacer la fenêtre de sortie avant compilation ou débogage", -- src\editor\menu_project.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
|
||||
["Close A&ll Pages"] = "Fermer &toutes les pages", -- src\editor\gui.lua
|
||||
["Close the current editor window"] = "Fermer la fenêtre d'édition active", -- src\editor\menu_file.lua
|
||||
["Close the current editor window"] = "Ferme la fenêtre d'édition courante", -- src\editor\menu_file.lua
|
||||
["Co&ntinue"] = "Co&ntinuer", -- src\editor\menu_project.lua
|
||||
["Col: %d"] = "Col : %d", -- src\editor\editor.lua
|
||||
["Command Line Parameters..."] = "Paramètres de Ligne de Commande...", -- src\editor\menu_project.lua
|
||||
["Command Line Parameters..."] = "Paramètres de ligne de commande...", -- src\editor\menu_project.lua
|
||||
["Command line parameters"] = "Paramètres de ligne de commande", -- src\editor\menu_project.lua
|
||||
["Comment or uncomment current or selected lines"] = "Commenter ou décommenter les lignes courantes ou sélectionnées", -- src\editor\menu_edit.lua
|
||||
["Comment or uncomment current or selected lines"] = "Commente ou décommente les lignes courantes ou sélectionnées", -- src\editor\menu_edit.lua
|
||||
["Compilation error"] = "Erreur de compilation", -- src\editor\commands.lua, src\editor\debugger.lua
|
||||
["Compilation successful; %.0f%% success rate (%d/%d)."] = "Compilation réussie ; taux de succès : %.0f%% (%d/%d).", -- src\editor\commands.lua
|
||||
["Compile the current file"] = "Сompiler le fichier courant", -- src\editor\menu_project.lua
|
||||
["Compile the current file"] = "Сompile le fichier courant", -- src\editor\menu_project.lua
|
||||
["Complete &Identifier"] = "Compléter l'&identifiant", -- src\editor\menu_edit.lua
|
||||
["Complete the current identifier"] = "Compléter l'identifiant courant", -- src\editor\menu_edit.lua
|
||||
["Complete the current identifier"] = "Complète l'identifiant courant", -- src\editor\menu_edit.lua
|
||||
["Consider removing backslash from escape sequence '%s'."] = "Essayez de supprimer les antislashs dans '%s'.", -- src\editor\commands.lua
|
||||
["Copy Full Path"] = "Copier le chemin absolu", -- src\editor\gui.lua, src\editor\filetree.lua
|
||||
["Copy selected text to clipboard"] = "Copier le texte sélectionné dans le presse-papiers", -- src\editor\menu_edit.lua
|
||||
["Correct &Indentation"] = nil, -- src\editor\menu_edit.lua
|
||||
["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éer un document vierge", -- src\editor\menu_file.lua
|
||||
["Create an empty document"] = "Crée un document vierge", -- 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"] = "Couper le texte sélectionné et copier dans le presse-papiers", -- 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
|
||||
["Debugger server stopped at %s:%d."] = "Serveur de débogage stoppé à %s:%d.", -- src\editor\debugger.lua
|
||||
["Debugging session completed (%s)."] = "Session de débogage terminée (%s).", -- src\editor\debugger.lua
|
||||
["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 &processus", -- src\editor\menu_project.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
|
||||
["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 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
|
||||
["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)"] = "Entrez des paramètres de ligne de commande (pressez Annuler pour effacer)", -- src\editor\menu_project.lua
|
||||
["Enter line number"] = "Entrez le numéro de ligne", -- src\editor\menu_search.lua
|
||||
["Enter replacement text"] = nil, -- src\editor\editor.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
|
||||
["Error while loading API file: %s"] = "Erreur lors du chargement du fichier d'API : %s", -- src\editor\autocomplete.lua
|
||||
["Error while loading configuration file: %s"] = "Erreur lors du chargement du fichier de configuration : %s", -- src\editor\style.lua
|
||||
["Error while processing API file: %s"] = "Erreur lors de la lecture du fichier d'API : %s", -- src\editor\autocomplete.lua
|
||||
["Error while processing configuration file: %s"] = "Erreur lors de la lecture du fichier de configuration : %s", -- src\editor\style.lua
|
||||
["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écuter le projet/fichier courant en mettant le code à jour afin de voir les résultats en temps réel", -- src\editor\menu_project.lua
|
||||
["Execute the current project/file"] = "Exécuter le projet/fichier courant", -- src\editor\menu_project.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
|
||||
["Execution error"] = "Erreur d'exécution", -- src\editor\debugger.lua
|
||||
["Exit program"] = "Quitter le programme", -- src\editor\menu_file.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."] = nil, -- 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 l'occurrence &suivante", -- src\editor\menu_search.lua
|
||||
["Find &Previous"] = "Rechercher l'occurrence &précédente", -- 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 replace text in files"] = "Rechercher et remplacer le texte dans les fichiers", -- src\editor\menu_search.lua
|
||||
["Find and replace text"] = "Rechercher et remplacer le texte", -- src\editor\menu_search.lua
|
||||
["Find text in files"] = "Rechercher le texte dans les fichiers", -- src\editor\menu_search.lua
|
||||
["Find text"] = "Rechercher le texte", -- src\editor\menu_search.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 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 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
|
||||
["Fold or unfold all code folds"] = "Replier ou déplier tous les blocs de code", -- src\editor\menu_edit.lua
|
||||
["Found auto-recovery record and restored saved session."] = "Une récupération automatique a été trouvé et la session a été restaurée.", -- src\editor\commands.lua
|
||||
["Fold or unfold all code folds"] = "Replie ou déplie tous les blocs de code", -- src\editor\menu_edit.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
|
||||
["Full &Screen"] = "Plein é&cran", -- src\editor\menu_view.lua
|
||||
["Go To Definition"] = "Aller à la définition", -- src\editor\editor.lua
|
||||
["Go To Line"] = "Aller à la ligne", -- src\editor\menu_search.lua
|
||||
["Go To File..."] = "Aller au fichier...", -- src\editor\menu_search.lua
|
||||
["Go To Line..."] = "Aller à la ligne...", -- src\editor\menu_search.lua
|
||||
["Go To Next Bookmark"] = "Aller au marque-page suivant", -- src\editor\menu_edit.lua
|
||||
["Go To Previous Bookmark"] = "Aller au marque-page précédent", -- src\editor\menu_edit.lua
|
||||
["Go to a selected line"] = "Aller à la ligne sélectionnée", -- src\editor\menu_search.lua
|
||||
["Go To Symbol..."] = "Aller au symbole...", -- src\editor\menu_search.lua
|
||||
["Go to file"] = "Permet d'accéder directement à un fichier", -- src\editor\menu_search.lua
|
||||
["Go to line"] = "Permet d'accéder directement à une ligne", -- src\editor\menu_search.lua
|
||||
["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
|
||||
["Ignored error in debugger initialization code: %s."] = nil, -- src\editor\debugger.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
|
||||
["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
|
||||
@@ -167,21 +172,22 @@ return {
|
||||
["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
|
||||
["Mixed end-of-line encodings detected."] = "Plusieurs codages de fin de ligne détectés.", -- src\editor\commands.lua
|
||||
["New &File"] = "Nouveau &Fichier", -- src\editor\filetree.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"] = "Ouvrir un document existant", -- src\editor\menu_file.lua
|
||||
["Open an existing document"] = "Ouvre un document existant", -- src\editor\menu_file.lua
|
||||
["Open file"] = "Ouvrir un fichier", -- src\editor\commands.lua
|
||||
["Options"] = "Options", -- src\editor\findreplace.lua
|
||||
["Outline Window"] = nil, -- src\editor\menu_view.lua
|
||||
["Outline"] = nil, -- src\editor\outline.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
|
||||
["Output (suspended)"] = nil, -- src\editor\debugger.lua
|
||||
["Output (suspended)"] = "Sortie (interrompu)", -- src\editor\debugger.lua
|
||||
["Output"] = "Sortie", -- src\editor\debugger.lua, src\editor\output.lua, src\editor\gui.lua, src\editor\settings.lua
|
||||
["Paste text from the clipboard"] = "Coller le texte depuis le presse-papiers", -- src\editor\menu_edit.lua
|
||||
["Paste text from the clipboard"] = "Colle le texte depuis le presse-papiers", -- src\editor\menu_edit.lua
|
||||
["Preferences"] = "Préférences", -- src\editor\menu_edit.lua
|
||||
["Prepend '!' to force local execution."] = nil, -- src\editor\shellbox.lua
|
||||
["Prepend '!' to force local execution."] = "Préfixez par '!' pour forcer une execution locale.", -- src\editor\shellbox.lua
|
||||
["Prepend '=' to show complex values on multiple lines."] = "Préfixez par '=' pour afficher les valeurs complexes sur plusieurs lignes.", -- src\editor\shellbox.lua
|
||||
["Press cancel to abort."] = "Cliquez sur Annuler pour annuler.", -- src\editor\commands.lua
|
||||
["Program '%s' started in '%s' (pid: %d)."] = "Programme '%s' démarré dans '%s' (pid : %d).", -- src\editor\output.lua
|
||||
@@ -194,97 +200,102 @@ return {
|
||||
["Project history"] = "Historique de projet", -- src\editor\menu_file.lua
|
||||
["Project"] = "Projet", -- src\editor\filetree.lua
|
||||
["Project/&FileTree Window"] = "&Explorateur de projet", -- src\editor\menu_view.lua
|
||||
["Provide command line parameters"] = "Renseignez les paramètres de ligne de commande", -- src\editor\menu_project.lua
|
||||
["Provide command line parameters"] = "Définit les paramètres de ligne de commande", -- src\editor\menu_project.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"] = nil, -- src\editor\menu_edit.lua
|
||||
["Re-indent selected lines"] = "Ré-indente les lignes sélectionnées", -- src\editor\menu_edit.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établir la dernière modification", -- src\editor\menu_edit.lua
|
||||
["Redo last edit undone"] = "Rétablit la dernière modification", -- src\editor\menu_edit.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
|
||||
["Remote console"] = "Console à distance", -- src\editor\shellbox.lua
|
||||
["Rename All Instances"] = "Renommer toutes les occurrences", -- src\editor\editor.lua
|
||||
["Replace A&ll"] = "Remplacer &tout", -- src\editor\findreplace.lua
|
||||
["Replace All Selections"] = nil, -- src\editor\editor.lua
|
||||
["Replace All Selections"] = "Remplacer toutes les sélections", -- src\editor\editor.lua
|
||||
["Replace"] = "Remplacer par ", -- 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"] = "Restaurer l'affichage par défaut", -- src\editor\menu_view.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
|
||||
["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"] = "Enregistrer tous les documents ouverts", -- src\editor\menu_file.lua
|
||||
["Save all open documents"] = "Enregistre tous les documents ouverts", -- 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"] = "Enregistrer le document courant sous un nouveau nom", -- src\editor\menu_file.lua
|
||||
["Save the current document"] = "Enregistrer le document courant", -- src\editor\menu_file.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
|
||||
["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
|
||||
["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électionner tout le texte dans l'éditeur", -- src\editor\menu_edit.lua
|
||||
["Select and Find Next"] = "Sélectionner et chercher le suivant", -- src\editor\menu_search.lua
|
||||
["Select and Find Previous"] = "Sélectionner et chercher le précédent", -- src\editor\menu_search.lua
|
||||
["Select the word under cursor and find its next occurrence"] = "Sélectionner le mot sous le curseur et chercher son occurence suivante", -- src\editor\menu_search.lua
|
||||
["Select the word under cursor and find its previous occurrence"] = "Sélectionner le mot sous le curseur et chercher son occurence précédente", -- src\editor\menu_search.lua
|
||||
["Set From Current File"] = "Définir depuis le fichier courant", -- src\editor\menu_project.lua
|
||||
["Set project directory from current file"] = "Définir le répertoire de projet depuis le fichier courant", -- src\editor\menu_project.lua
|
||||
["Set the interpreter to be used"] = "Définir l'interpréteur à utiliser", -- src\editor\menu_project.lua
|
||||
["Set the project directory to be used"] = "Définir le répertoire de projet à utiliser", -- src\editor\menu_project.lua, src\editor\filetree.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 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 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 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
|
||||
["Settings: User"] = "Paramètres : Utilisateur", -- src\editor\menu_edit.lua
|
||||
["Show &Tooltip"] = "Afficher l'info-&bulle", -- src\editor\menu_edit.lua
|
||||
["Show All Files"] = "Afficher tous les fichiers", -- src\editor\filetree.lua
|
||||
["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 tooltip for current position; place cursor after opening bracket of function"] = "Afficher l'info-bulle pour la position actuelle ; placez le curseur après la parenthèse ouvrante de la fonction", -- src\editor\menu_edit.lua
|
||||
["Show/Hide the status bar"] = "Afficher/Masquer la barre de statut", -- src\editor\menu_view.lua
|
||||
["Show/Hide the toolbar"] = "Afficher/Masquer la barre d'outils", -- src\editor\menu_view.lua
|
||||
["Sort selected lines"] = "Trier les lignes sélectionnées", -- src\editor\menu_edit.lua
|
||||
["Source"] = nil, -- src\editor\menu_edit.lua
|
||||
["Show all files"] = "Affiche tous les fichiers", -- src\editor\filetree.lua
|
||||
["Show files previously hidden"] = "Affiche les fichiers précédemment masqués", -- src\editor\filetree.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 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émarrer ou continuer le debogage", -- src\editor\menu_project.lua
|
||||
["Start or continue debugging"] = "Démarre ou continue le debogage", -- 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"] = "Rentrer dans l'instruction suivante", -- src\editor\menu_project.lua
|
||||
["Step out of the current function"] = "Sortir de la fonction courante", -- src\editor\menu_project.lua
|
||||
["Step over"] = "Enjamber l'instruction suivante", -- src\editor\menu_project.lua
|
||||
["Stop debugging and continue running the process"] = "Arrêter le débogage et continuer l'exécution du processus", -- src\editor\menu_project.lua
|
||||
["Stop the currently running process"] = "Arrêter le processus en cours d'exécution", -- src\editor\menu_project.lua
|
||||
["Switch to or from full screen mode"] = "Activer ou désactiver le mode plein écran", -- src\editor\menu_view.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
|
||||
["Switch to or from full screen mode"] = "Active ou désactive le mode plein écran", -- src\editor\menu_view.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éer/Supprimer un marque-page", -- src\editor\menu_edit.lua
|
||||
["Toggle breakpoint"] = "Créer ou 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
|
||||
["Tr&ace"] = "&Tracer", -- src\editor\menu_project.lua
|
||||
["Trace execution showing each executed line"] = "Tracer l'exécution en montrant chaque ligne de code exécutée", -- 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"] = nil, -- src\editor\filetree.lua
|
||||
["Unable to delete directory '%s': %s"] = "Impossible de supprimer le répertoire '%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"] = "Annuler la dernière modification", -- src\editor\menu_edit.lua
|
||||
["Undo last edit"] = "Annule la dernière modification", -- src\editor\menu_edit.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
|
||||
["Use Shift-Enter for multiline code."] = "Appuyez sur <Shift-Entrée> pour du code multiligne.", -- src\editor\shellbox.lua
|
||||
["View the outline window"] = nil, -- src\editor\menu_view.lua
|
||||
["View the output/console window"] = "Afficher la fenêtre de sortie/console", -- src\editor\menu_view.lua
|
||||
["View the project/filetree window"] = "Afficher la fenêtre d'explorateur de projet", -- src\editor\menu_view.lua
|
||||
["View the stack window"] = "Afficher la fenêtre de pile d'exécution", -- src\editor\menu_view.lua
|
||||
["View the watch window"] = "Afficher la fenêtre d'expressions espionnes", -- src\editor\menu_view.lua
|
||||
["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
|
||||
["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 ar&ound"] = "B&oucler", -- src\editor\findreplace.lua
|
||||
|
||||
@@ -15,7 +15,7 @@ return {
|
||||
["&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"] = nil, -- src\editor\debugger.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
|
||||
@@ -25,7 +25,6 @@ return {
|
||||
["&Fold/Unfold All"] = "Apri/Chiudi tutto", -- src\editor\menu_edit.lua
|
||||
["&Frequently Asked Questions"] = "Domande &Frequenti", -- src\editor\menu_help.lua
|
||||
["&Getting Started Guide"] = "&Guida Introduttiva", -- src\editor\menu_help.lua
|
||||
["&Go To Line..."] = "Vai a riga...", -- src\editor\menu_search.lua
|
||||
["&Help"] = "Aiuto", -- src\editor\menu_help.lua
|
||||
["&New Directory"] = "&Nuova Directory", -- src\editor\filetree.lua
|
||||
["&New"] = "&Nuovo", -- src\editor\menu_file.lua
|
||||
@@ -58,8 +57,8 @@ return {
|
||||
["Add Watch Expression"] = "Aggiungi Espressione di Controllo", -- src\editor\editor.lua
|
||||
["All files"] = "Tutti i files", -- src\editor\commands.lua
|
||||
["Allow external process to start debugging"] = "Permetti a processi esterni di avviare il debug", -- src\editor\menu_project.lua
|
||||
["Analyze the source code"] = "Analizza il codice", -- src\editor\inspect.lua, src\editor\inspect.lua-profile
|
||||
["Analyze"] = "Analizza", -- src\editor\inspect.lua, src\editor\inspect.lua-profile
|
||||
["Analyze the source code"] = "Analizza il codice", -- src\editor\inspect.lua
|
||||
["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
|
||||
["Bookmark"] = "Segnalibro", -- src\editor\menu_edit.lua
|
||||
@@ -67,9 +66,9 @@ return {
|
||||
["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."] = nil, -- 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"] = nil, -- src\editor\singleinstance.lua
|
||||
["Can't open file '%s': %s"] = "Impossibile aprire il file '%s': %s", -- src\editor\singleinstance.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 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
|
||||
@@ -99,7 +98,7 @@ return {
|
||||
["Consider removing backslash from escape sequence '%s'."] = "Prova a rimuovere i backslash dalla sequenza di escape '%s'.", -- src\editor\commands.lua
|
||||
["Copy Full Path"] = "Copia Path Completo", -- src\editor\gui.lua, src\editor\filetree.lua
|
||||
["Copy selected text to clipboard"] = "Copia il testo selezionato negli appunti", -- src\editor\menu_edit.lua
|
||||
["Correct &Indentation"] = nil, -- 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
|
||||
["Cu&t"] = "&Taglia", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
@@ -108,7 +107,7 @@ return {
|
||||
["Debugger server stopped at %s:%d."] = "Server Debugger fermato %s:%d.", -- src\editor\debugger.lua
|
||||
["Debugging session completed (%s)."] = "Sessione di debug completata (%s).", -- src\editor\debugger.lua
|
||||
["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
|
||||
["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
|
||||
["Do you want to delete '%s'?"] = "Vuoi eliminare '%s'?", -- src\editor\filetree.lua
|
||||
@@ -118,8 +117,7 @@ return {
|
||||
["E&xit"] = "Uscita", -- src\editor\menu_file.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 line number"] = "Inserisci il numero di linea", -- src\editor\menu_search.lua
|
||||
["Enter replacement text"] = nil, -- src\editor\editor.lua
|
||||
["Enter replacement text"] = "Inserisci il testo da sostituire", -- src\editor\editor.lua
|
||||
["Error while loading API file: %s"] = "Errore durante il caricamento del file API: %s", -- src\editor\autocomplete.lua
|
||||
["Error while loading configuration file: %s"] = "Errore nel caricamento del file di configurazione: %s", -- src\editor\style.lua
|
||||
["Error while processing API file: %s"] = "Errore durante l'elaborazione del file API: %s", -- src\editor\autocomplete.lua
|
||||
@@ -132,7 +130,7 @@ return {
|
||||
["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."] = nil, -- 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
|
||||
@@ -141,6 +139,7 @@ return {
|
||||
["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 text in files"] = "Cerca testo nei files", -- src\editor\menu_search.lua
|
||||
@@ -153,13 +152,19 @@ return {
|
||||
["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 Line"] = "Vai alla riga", -- src\editor\menu_search.lua
|
||||
["Go To File..."] = "Vai al File...", -- src\editor\menu_search.lua
|
||||
["Go To Line..."] = "Vai a riga...", -- src\editor\menu_search.lua
|
||||
["Go To Next Bookmark"] = "Vai al Prossimo Segnalibro", -- src\editor\menu_edit.lua
|
||||
["Go To Previous Bookmark"] = "Vai al Precedente Segnalibro", -- src\editor\menu_edit.lua
|
||||
["Go to a selected line"] = "Vai alla riga selezionata", -- src\editor\menu_search.lua
|
||||
["Go To Symbol..."] = "Vai al Simbolo...", -- src\editor\menu_search.lua
|
||||
["Go to file"] = "Vai al file", -- src\editor\menu_search.lua
|
||||
["Go to line"] = "Vai alla riga", -- src\editor\menu_search.lua
|
||||
["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
|
||||
["Ignored error in debugger initialization code: %s."] = nil, -- src\editor\debugger.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
|
||||
["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
|
||||
@@ -168,21 +173,22 @@ return {
|
||||
["Match &case"] = "Maiuscole/Minuscole", -- src\editor\findreplace.lua
|
||||
["Match &whole word"] = "Intera parola", -- src\editor\findreplace.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 file"] = "Apri un file", -- src\editor\commands.lua
|
||||
["Options"] = "Opzioni", -- src\editor\findreplace.lua
|
||||
["Outline Window"] = nil, -- src\editor\menu_view.lua
|
||||
["Outline"] = nil, -- src\editor\outline.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
|
||||
["Output (suspended)"] = nil, -- src\editor\debugger.lua
|
||||
["Output (suspended)"] = "Output (sospeso)", -- src\editor\debugger.lua
|
||||
["Output"] = "Output", -- src\editor\debugger.lua, src\editor\output.lua, src\editor\gui.lua, src\editor\settings.lua
|
||||
["Paste text from the clipboard"] = "Incolla testo dagli appunti", -- src\editor\menu_edit.lua
|
||||
["Preferences"] = "Preferenze", -- src\editor\menu_edit.lua
|
||||
["Prepend '!' to force local execution."] = nil, -- src\editor\shellbox.lua
|
||||
["Prepend '=' to show complex values on multiple lines."] = "Prefissa '=' per visualizzare valori complessi su piu` righe", -- src\editor\shellbox.lua
|
||||
["Prepend '!' to force local execution."] = "Prefissa con '!' per forzare l'esecuzione locale", -- src\editor\shellbox.lua
|
||||
["Prepend '=' to show complex values on multiple lines."] = "Prefissa con '=' per visualizzare valori complessi su piu` righe", -- src\editor\shellbox.lua
|
||||
["Press cancel to abort."] = "Premi cancel per bloccare.", -- src\editor\commands.lua
|
||||
["Program '%s' started in '%s' (pid: %d)."] = "Programma '%s' partito da '%s' (pid: %d).", -- src\editor\output.lua
|
||||
["Program can't start because conflicting process is running as '%s'."] = "Il programma non puo' partire perchè in conflitto con il processo in esecuzione '%s'.", -- src\editor\output.lua
|
||||
@@ -198,7 +204,7 @@ return {
|
||||
["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"] = nil, -- src\editor\menu_edit.lua
|
||||
["Re-indent selected lines"] = "Re-indenta le linee selezionate", -- src\editor\menu_edit.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
|
||||
@@ -207,12 +213,13 @@ return {
|
||||
["Remote console"] = "Console remota", -- src\editor\shellbox.lua
|
||||
["Rename All Instances"] = "Rinomina tutte le occorrenze", -- src\editor\editor.lua
|
||||
["Replace A&ll"] = "Sostituisci Tutto", -- src\editor\findreplace.lua
|
||||
["Replace All Selections"] = nil, -- src\editor\editor.lua
|
||||
["Replace All Selections"] = "Sostituisci Tutte le Selezioni", -- src\editor\editor.lua
|
||||
["Replace"] = "Sostituisci", -- 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
|
||||
["S&top Debugging"] = "Ferma il debugger", -- src\editor\menu_project.lua
|
||||
["S&top Process"] = "Ferma il processo", -- src\editor\menu_project.lua
|
||||
@@ -231,8 +238,8 @@ return {
|
||||
["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 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 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 From Current File"] = "Impostato da file corrente", -- src\editor\menu_project.lua
|
||||
@@ -242,12 +249,16 @@ return {
|
||||
["Settings: System"] = "Impostazioni: Sistema", -- src\editor\menu_edit.lua
|
||||
["Settings: User"] = "Impostazioni: Utente", -- src\editor\menu_edit.lua
|
||||
["Show &Tooltip"] = "Mos&tra i consigli", -- src\editor\menu_edit.lua
|
||||
["Show All Files"] = "Mostra Tutti i File", -- src\editor\filetree.lua
|
||||
["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 files previously hidden"] = "Mostra i file precedentemente nascosti", -- src\editor\filetree.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 selected lines"] = "Ordina le righe selezionate", -- src\editor\menu_edit.lua
|
||||
["Source"] = nil, -- 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
|
||||
@@ -270,7 +281,7 @@ return {
|
||||
["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"] = nil, -- src\editor\filetree.lua
|
||||
["Unable to delete directory '%s': %s"] = "Impossibile cancellare la directory '%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
|
||||
@@ -280,7 +291,7 @@ return {
|
||||
["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
|
||||
["Use Shift-Enter for multiline code."] = "Premi <Shift-Invio> per inserire piu` righe di codice.", -- src\editor\shellbox.lua
|
||||
["View the outline window"] = nil, -- src\editor\menu_view.lua
|
||||
["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
|
||||
|
||||
313
cfg/i18n/pt-br.lua
Normal file
313
cfg/i18n/pt-br.lua
Normal file
@@ -0,0 +1,313 @@
|
||||
---
|
||||
-- @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
|
||||
["&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"] = "&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
|
||||
["&Getting Started Guide"] = "Primeiros passos", -- src\editor\menu_help.lua
|
||||
["&Help"] = "Ajuda", -- src\editor\menu_help.lua
|
||||
["&New Directory"] = "&Nova pasta", -- src\editor\filetree.lua
|
||||
["&New"] = "&Novo", -- src\editor\menu_file.lua
|
||||
["&Open..."] = "Abrir...", -- src\editor\menu_file.lua
|
||||
["&Output/Console Window"] = "Saída/Console", -- src\editor\menu_view.lua
|
||||
["&Paste"] = "Colar", -- src\editor\gui.lua, src\editor\editor.lua, src\editor\menu_edit.lua
|
||||
["&Project Page"] = "&Página do projeto", -- src\editor\menu_help.lua
|
||||
["&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
|
||||
["&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
|
||||
["&Sort"] = "Ordenar", -- src\editor\menu_edit.lua
|
||||
["&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
|
||||
["All files"] = "Todos os arquivos", -- src\editor\commands.lua
|
||||
["Allow external process to start debugging"] = "Permitir processo externo para iniciar a depuração", -- src\editor\menu_project.lua
|
||||
["Analyze the source code"] = "Analisar o código-fonte", -- src\editor\inspect.lua
|
||||
["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
|
||||
["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
|
||||
["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 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 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 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
|
||||
["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
|
||||
["Close A&ll Pages"] = "Fechar todas as guias", -- src\editor\gui.lua
|
||||
["Close the current editor window"] = "Fechar janela do editor atual", -- src\editor\menu_file.lua
|
||||
["Co&ntinue"] = "Co&ntinuar", -- src\editor\menu_project.lua
|
||||
["Col: %d"] = "Col: %d", -- src\editor\editor.lua
|
||||
["Command Line Parameters..."] = "Parâmetros da linha de comandos...", -- src\editor\menu_project.lua
|
||||
["Command line parameters"] = "Parâmetros da linha de comandos", -- src\editor\menu_project.lua
|
||||
["Comment or uncomment current or selected lines"] = {"Comentar ou descomentar a linha atual", "Comentar ou descomentar as linhas selecionadas"}, -- src\editor\menu_edit.lua
|
||||
["Compilation error"] = "Erro na compilação", -- src\editor\commands.lua, src\editor\debugger.lua
|
||||
["Compilation successful; %.0f%% success rate (%d/%d)."] = "Compilação com êxito; taxa de sucesso: %.0f%% (%d/%d).", -- src\editor\commands.lua
|
||||
["Compile the current file"] = "Compilar arquivo atual", -- src\editor\menu_project.lua
|
||||
["Complete &Identifier"] = "Completar &identificador", -- src\editor\menu_edit.lua
|
||||
["Complete the current identifier"] = "Completar o identificador atual", -- src\editor\menu_edit.lua
|
||||
["Consider removing backslash from escape sequence '%s'."] = "Considere a remoção da contrabarra da sequência de escape '%s'.", -- src\editor\commands.lua
|
||||
["Copy Full Path"] = "Copiar o caminho completo", -- src\editor\gui.lua, src\editor\filetree.lua
|
||||
["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
|
||||
["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
|
||||
["Debugger server stopped at %s:%d."] = "Servidor de depuração interrompido em %s:%d.", -- src\editor\debugger.lua
|
||||
["Debugging session completed (%s)."] = "Sessão de depuração completada (%s).", -- src\editor\debugger.lua
|
||||
["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
|
||||
["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
|
||||
["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
|
||||
["Error while loading API file: %s"] = "Erro ao carregar arquivo de API: %s", -- src\editor\autocomplete.lua
|
||||
["Error while loading configuration file: %s"] = "Erro ao carregar arquivo de configuração: %s", -- src\editor\style.lua
|
||||
["Error while processing API file: %s"] = "Erro ao processar arquivo de API: %s", -- src\editor\autocomplete.lua
|
||||
["Error while processing configuration file: %s"] = "Erro ao processar arquivo de configuração: %s", -- src\editor\style.lua
|
||||
["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
|
||||
["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 text in files"] = "Localizar texto em arquivos", -- src\editor\menu_search.lua
|
||||
["Find text"] = "Localizar texto", -- 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
|
||||
["Fold or unfold all code folds"] = "Expandir ou recolher todos os blocos do código", -- src\editor\menu_edit.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
|
||||
["Go To Line..."] = "Ir para a linha...", -- src\editor\menu_search.lua
|
||||
["Go To Next Bookmark"] = "Ir para o próximo marcador", -- src\editor\menu_edit.lua
|
||||
["Go To Previous Bookmark"] = "Ir para o marcador anterior", -- src\editor\menu_edit.lua
|
||||
["Go To Symbol..."] = "Ir para o símbolo...", -- src\editor\menu_search.lua
|
||||
["Go to file"] = "Ir para o arquivo", -- src\editor\menu_search.lua
|
||||
["Go to line"] = "Ir para a linha", -- src\editor\menu_search.lua
|
||||
["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
|
||||
["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
|
||||
["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
|
||||
["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
|
||||
["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 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
|
||||
["Output (suspended)"] = "Saída (suspendido)", -- src\editor\debugger.lua
|
||||
["Output"] = "Saída", -- src\editor\debugger.lua, src\editor\output.lua, src\editor\gui.lua, src\editor\settings.lua
|
||||
["Paste text from the clipboard"] = "Colar texto da área de transfêrencia", -- src\editor\menu_edit.lua
|
||||
["Preferences"] = "Preferências", -- src\editor\menu_edit.lua
|
||||
["Prepend '!' to force local execution."] = "Prefixe com '!' para forçar a execução local.", -- src\editor\shellbox.lua
|
||||
["Prepend '=' to show complex values on multiple lines."] = "Prefixe com '=' para exibir valores complexos em multíplas linhas.", -- src\editor\shellbox.lua
|
||||
["Press cancel to abort."] = "Pressionar cancelar para abortar.", -- src\editor\commands.lua
|
||||
["Program '%s' started in '%s' (pid: %d)."] = "Programa '%s' iniciado em '%s' (pid: %d).", -- src\editor\output.lua
|
||||
["Program can't start because conflicting process is running as '%s'."] = "Impossível iniciar programa porque um processo conflitante está em execução como '%s'.", -- src\editor\output.lua
|
||||
["Program completed in %.2f seconds (pid: %d)."] = "Programa completado em %.2f segundos (pid: %d).", -- src\editor\output.lua
|
||||
["Program starting as '%s'."] = "Iniciando programa como '%s'.", -- src\editor\output.lua
|
||||
["Program stopped (pid: %d)."] = "Programa interrompido (pid: %d).", -- src\editor\debugger.lua
|
||||
["Program unable to run as '%s'."] = "Impossível de executar programa como '%s'.", -- src\editor\output.lua
|
||||
["Project Directory"] = "Pasta do projeto", -- src\editor\menu_project.lua, src\editor\filetree.lua
|
||||
["Project history"] = "Histórico do projeto", -- src\editor\menu_file.lua
|
||||
["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
|
||||
["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
|
||||
["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
|
||||
["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
|
||||
["Remote console"] = "Console remoto", -- src\editor\shellbox.lua
|
||||
["Rename All Instances"] = "Renomear todas as instâncias", -- src\editor\editor.lua
|
||||
["Replace A&ll"] = "Substituir tudo", -- src\editor\findreplace.lua
|
||||
["Replace All Selections"] = "Substituir todas as seleções", -- src\editor\editor.lua
|
||||
["Replace"] = "Substituir", -- 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
|
||||
["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 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
|
||||
["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
|
||||
["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 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 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 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
|
||||
["Settings: User"] = "Opções: Usuário", -- src\editor\menu_edit.lua
|
||||
["Show &Tooltip"] = "Exibir dica", -- src\editor\menu_edit.lua
|
||||
["Show All Files"] = "Exibir todos os arquivos", -- src\editor\filetree.lua
|
||||
["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 files previously hidden"] = "Exibir arquivos anteriormente ocultos", -- src\editor\filetree.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 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
|
||||
["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
|
||||
["Switch to or from full screen mode"] = "Entrar/Sair do modo tela inteira", -- src\editor\menu_view.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
|
||||
["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 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
|
||||
["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
|
||||
["Use Shift-Enter for multiline code."] = "Usar Shift-Enter para adicionar uma nova linha ao código.", -- src\editor\shellbox.lua
|
||||
["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
|
||||
["Watch"] = "Observador", -- src\editor\debugger.lua
|
||||
["Welcome to the interactive Lua interpreter."] = "Bem-vindo ao interpretador do Lua.", -- src\editor\shellbox.lua
|
||||
["Wrap ar&ound"] = "Repetir direção", -- src\editor\findreplace.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
|
||||
["Zoom to 100%"] = "Ir para 100%", -- src\editor\menu_view.lua
|
||||
["Zoom"] = "Zoom", -- src\editor\menu_view.lua
|
||||
["on line %d"] = "na linha %d", -- src\editor\debugger.lua, src\editor\editor.lua, src\editor\commands.lua
|
||||
["traced %d instruction"] = {"%d instrução rastreada", "%d instruções rastreadas"}, -- src\editor\debugger.lua
|
||||
["unknown error"] = "erro desconhecido", -- src\editor\debugger.lua
|
||||
}
|
||||
@@ -25,7 +25,6 @@ return {
|
||||
["&Fold/Unfold All"] = "Св&ернуть/развернуть все", -- src\editor\menu_edit.lua
|
||||
["&Frequently Asked Questions"] = "&Часто задаваемые вопросы", -- src\editor\menu_help.lua
|
||||
["&Getting Started Guide"] = nil, -- src\editor\menu_help.lua
|
||||
["&Go To Line..."] = "&Перейти к строке...", -- src\editor\menu_search.lua
|
||||
["&Help"] = "&Справка", -- src\editor\menu_help.lua
|
||||
["&New Directory"] = "&Новая папка", -- src\editor\filetree.lua
|
||||
["&New"] = "Соз&дать", -- src\editor\menu_file.lua
|
||||
@@ -58,26 +57,26 @@ return {
|
||||
["Add Watch Expression"] = "Добавить выражение", -- src\editor\editor.lua
|
||||
["All files"] = "Все файлы", -- src\editor\commands.lua
|
||||
["Allow external process to start debugging"] = "Разрешить внешнему процессу начать отладку", -- src\editor\menu_project.lua
|
||||
["Analyze the source code"] = "Проанализировать исходный код", -- src\editor\inspect.lua, src\editor\inspect.lua-profile
|
||||
["Analyze"] = "Анализировать", -- src\editor\inspect.lua, src\editor\inspect.lua-profile
|
||||
["Analyze the source code"] = "Проанализировать исходный код", -- src\editor\inspect.lua
|
||||
["Analyze"] = "Анализировать", -- src\editor\inspect.lua
|
||||
["Auto Complete Identifiers"] = "Автодополнение идентификаторов", -- src\editor\menu_edit.lua
|
||||
["Auto complete while typing"] = "Автоматически дополнять идентификаторы при наборе", -- src\editor\menu_edit.lua
|
||||
["Bookmark"] = "Закладка", -- src\editor\menu_edit.lua
|
||||
["Break execution at the next executed line of code"] = "Прервать выполнение на следующей строке", -- 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 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 process auto-recovery record; invalid format: %s."] = "Ошибка обработки записи автоматического восстановления; неверный формат: %s.", -- src\editor\commands.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
|
||||
@@ -108,7 +107,7 @@ return {
|
||||
["Debugger server stopped at %s:%d."] = "Сервер отладки остановлен %s:%d.", -- src\editor\debugger.lua
|
||||
["Debugging session completed (%s)."] = "Отладочная сессия завершена (%s).", -- src\editor\debugger.lua
|
||||
["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
|
||||
["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
|
||||
["Do you want to delete '%s'?"] = "Удалить '%s'?", -- src\editor\filetree.lua
|
||||
@@ -118,7 +117,6 @@ return {
|
||||
["E&xit"] = "Вы&ход", -- src\editor\menu_file.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 line number"] = "Введите номер строки", -- src\editor\menu_search.lua
|
||||
["Enter replacement text"] = "Введите текст замены", -- src\editor\editor.lua
|
||||
["Error while loading API file: %s"] = "Ошибка загрузки файла определений API: %s", -- src\editor\autocomplete.lua
|
||||
["Error while loading configuration file: %s"] = "Ошибка загрузки файла конфигурации: %s", -- src\editor\style.lua
|
||||
@@ -132,7 +130,7 @@ return {
|
||||
["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' 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
|
||||
@@ -141,6 +139,7 @@ return {
|
||||
["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 text in files"] = "Найти текст в файлах", -- src\editor\menu_search.lua
|
||||
@@ -153,21 +152,29 @@ return {
|
||||
["Found"] = "Найдено", -- src\editor\findreplace.lua
|
||||
["Full &Screen"] = "Во весь экр&ан", -- src\editor\menu_view.lua
|
||||
["Go To Definition"] = "Перейти к определению", -- src\editor\editor.lua
|
||||
["Go To Line"] = "Перейти к строке", -- src\editor\menu_search.lua
|
||||
["Go To File..."] = "Перейти к файлу...", -- src\editor\menu_search.lua
|
||||
["Go To Line..."] = "Перейти к строке...", -- src\editor\menu_search.lua
|
||||
["Go To Next Bookmark"] = "Перейти к следующей закладке", -- src\editor\menu_edit.lua
|
||||
["Go To Previous Bookmark"] = "Перейти к предыдущей закладке", -- src\editor\menu_edit.lua
|
||||
["Go to a selected line"] = "Перейти к заданной строке", -- src\editor\menu_search.lua
|
||||
["Go To Symbol..."] = "Перейти к символу...", -- src\editor\menu_search.lua
|
||||
["Go to file"] = "Перейти к файлу", -- src\editor\menu_search.lua
|
||||
["Go to line"] = "Перейти к строке", -- src\editor\menu_search.lua
|
||||
["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
|
||||
["Insert Library Function..."] = "Вставить библиотечную функцию...", -- src\editor\menu_search.lua
|
||||
["Known Files"] = "Файлы Lua", -- 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..."] = "Добавить папку в список", -- 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
|
||||
["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
|
||||
@@ -198,7 +205,7 @@ return {
|
||||
["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"] = nil, -- src\editor\menu_edit.lua
|
||||
["Re-indent selected lines"] = "Исправить отступ в выделенных строчках", -- src\editor\menu_edit.lua
|
||||
["Recent &Projects"] = "Недавние &проекты", -- src\editor\menu_file.lua
|
||||
["Recent Files"] = "Недавние файлы", -- src\editor\menu_file.lua
|
||||
["Redo last edit undone"] = "Вернуть последнее отмененное изменение", -- src\editor\menu_edit.lua
|
||||
@@ -207,13 +214,16 @@ return {
|
||||
["Remote console"] = "Удаленная консоль", -- src\editor\shellbox.lua
|
||||
["Rename All Instances"] = "Переименовать все совпадения", -- src\editor\editor.lua
|
||||
["Replace A&ll"] = "Заменить все", -- src\editor\findreplace.lua
|
||||
["Replace All Selections"] = nil, -- src\editor\editor.lua
|
||||
["Replace All Selections"] = "Заменить все выделенные фрагменты", -- src\editor\editor.lua
|
||||
["Replace"] = "Заменить", -- 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 As Scratchpad"] = "Запустить как черновик", -- src\editor\menu_project.lua
|
||||
["Run To Cursor"] = "Выполнить до курсора", -- src\editor\menu_project.lua
|
||||
["Run as Scratchpad"] = "Запустить как черновик", -- src\editor\toolbar.lua
|
||||
["Run to cursor"] = "Выполнить до курсора", -- 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
|
||||
@@ -230,11 +240,12 @@ return {
|
||||
["Searching for"] = "Поиск", -- 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
|
||||
["Select And Find Previous"] = "Выделить и найти ранее", -- src\editor\menu_search.lua
|
||||
["Select all text in the editor"] = "Выделить весь текст в редакторе", -- src\editor\menu_edit.lua
|
||||
["Select and Find Next"] = "Выделить и найти далее", -- src\editor\menu_search.lua
|
||||
["Select and Find Previous"] = "Выделить и найти ранее", -- src\editor\menu_search.lua
|
||||
["Select the word under cursor and find its next occurrence"] = "Выделить слово под курсором и найти далее", -- src\editor\menu_search.lua
|
||||
["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 the interpreter to be used"] = "Установить используемый интерпретатор", -- src\editor\menu_project.lua
|
||||
@@ -242,7 +253,11 @@ return {
|
||||
["Settings: System"] = "Установки: Системы", -- src\editor\menu_edit.lua
|
||||
["Settings: User"] = "Установки: Пользователя", -- src\editor\menu_edit.lua
|
||||
["Show &Tooltip"] = "Показать &подсказку", -- src\editor\menu_edit.lua
|
||||
["Show All Files"] = "Показать все файлы", -- src\editor\filetree.lua
|
||||
["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 files previously hidden"] = "Показать ранее спрятанные файлы", -- src\editor\filetree.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
|
||||
@@ -270,17 +285,19 @@ return {
|
||||
["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"] = nil, -- src\editor\filetree.lua
|
||||
["Unable to delete directory '%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
|
||||
["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"] = "Убрать папку из списка", -- src\editor\filetree.lua
|
||||
["Unset '%s' As Start File"] = "Отменить '%s' как файл запуска", -- src\editor\filetree.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
|
||||
["Use Shift-Enter for multiline code."] = "Используйте Shift-Enter для многострочного кода.", -- src\editor\shellbox.lua
|
||||
["View the outline window"] = nil, -- src\editor\menu_view.lua
|
||||
["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
|
||||
|
||||
@@ -112,8 +112,8 @@ styles.indicator.fncall.st = wxstc.wxSTC_INDIC_PLAIN
|
||||
wxSTC_INDIC_HIDDEN No visual effect;
|
||||
--]]
|
||||
|
||||
-- to enable additional spec files (like spec/cpp.lua)
|
||||
load.specs(function(file) return file:find('spec[/\\]cpp%.lua$') end)
|
||||
-- to enable additional spec files (like spec/glsl.lua)
|
||||
load.specs(function(file) return file:find('spec[/\\]glsl%.lua$') end)
|
||||
|
||||
-- to specify a default EOL encoding to be used for new files:
|
||||
-- `wxstc.wxSTC_EOL_CRLF` or `wxstc.wxSTC_EOL_LF`;
|
||||
@@ -157,3 +157,8 @@ styles["keywords"..num] = {fg = {240, 0, 0}, b = true}
|
||||
-- enable `Opt+Shift+Left/Right` shortcut on OSX
|
||||
editor.keymap[#editor.keymap+1] = {wxstc.wxSTC_KEY_LEFT, wxstc.wxSTC_SCMOD_ALT+wxstc.wxSTC_SCMOD_SHIFT, wxstc.wxSTC_CMD_WORDLEFTEXTEND, "Macintosh"}
|
||||
editor.keymap[#editor.keymap+1] = {wxstc.wxSTC_KEY_RIGHT, wxstc.wxSTC_SCMOD_ALT+wxstc.wxSTC_SCMOD_SHIFT, wxstc.wxSTC_CMD_WORDRIGHTENDEXTEND, "Macintosh"}
|
||||
|
||||
-- enable Emacs bindings to use `Ctrl-A` and `Ctrl-E` to go to the line start/end
|
||||
editor.keymap[#editor.keymap+1] = {('A'):byte(), wxstc.wxSTC_SCMOD_CTRL, wxstc.wxSTC_CMD_HOME}
|
||||
editor.keymap[#editor.keymap+1] = {('E'):byte(), wxstc.wxSTC_SCMOD_CTRL, wxstc.wxSTC_CMD_LINEEND}
|
||||
keymap[ID.SELECTALL] = nil -- remove `Ctrl-A` shortcut from `SelectAll`
|
||||
|
||||
@@ -19,8 +19,8 @@ return {
|
||||
table.insert(paths, p)
|
||||
end
|
||||
if not busted then
|
||||
DisplayOutput("Can't find busted executable in any of the folders in PATH: "
|
||||
..table.concat(paths, ", ").."\n")
|
||||
DisplayOutputLn("Can't find busted executable in any of the folders in PATH: "
|
||||
..table.concat(paths, ", "))
|
||||
return
|
||||
end
|
||||
end
|
||||
@@ -39,7 +39,7 @@ return {
|
||||
file = tmpfile:GetFullPath()
|
||||
local f = io.open(file, "w")
|
||||
if not f then
|
||||
DisplayOutput("Can't open temporary file '"..file.."' for writing\n")
|
||||
DisplayOutputLn("Can't open temporary file '"..file.."' for writing.")
|
||||
return
|
||||
end
|
||||
f:write(code)
|
||||
|
||||
@@ -26,15 +26,16 @@ return {
|
||||
table.insert(paths, p)
|
||||
end
|
||||
if not corona then
|
||||
DisplayOutput("Can't find corona executable in any of the folders in PATH: "
|
||||
..table.concat(paths, ", ").."\n")
|
||||
DisplayOutputLn("Can't find corona executable in any of the folders in PATH: "
|
||||
..table.concat(paths, ", "))
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
local file = GetFullPathIfExists(self:fworkdir(wfilename), 'main.lua')
|
||||
if not file then
|
||||
DisplayOutput("Can't find 'main.lua' file in the current project folder.\n")
|
||||
DisplayOutputLn(("Can't find 'main.lua' file in the current project folder: '%s'.")
|
||||
:format(self:fworkdir(wfilename)))
|
||||
return
|
||||
end
|
||||
|
||||
@@ -82,7 +83,8 @@ return {
|
||||
local cfg = ide.config.corona or {}
|
||||
local debugopt = mac and "-debug 1 -project " or "-debug "
|
||||
local skin = cfg.skin and (" -skin "..ide.config.corona.skin) or ""
|
||||
local noconsole = win and not cfg.showconsole and "-no-console " or ""
|
||||
local noconsole = (cfg.showconsole and ""
|
||||
or (win and "-no-console " or "-no-console YES "))
|
||||
local cmd = ('"%s" %s%s"%s"%s')
|
||||
:format(corona, noconsole, rundebug and debugopt or "", file, skin)
|
||||
|
||||
|
||||
@@ -22,8 +22,8 @@ return {
|
||||
table.insert(paths, p)
|
||||
end
|
||||
if not gslshell then
|
||||
DisplayOutput("Can't find gsl-shell executable in any of the following folders: "
|
||||
..table.concat(paths, ", ").."\n")
|
||||
DisplayOutputLn("Can't find gsl-shell executable in any of the following folders: "
|
||||
..table.concat(paths, ", "))
|
||||
return
|
||||
end
|
||||
end
|
||||
@@ -57,7 +57,7 @@ return {
|
||||
filepath = tmpfile:GetFullPath()
|
||||
local f = io.open(filepath, "w")
|
||||
if not f then
|
||||
DisplayOutput("Can't open temporary file '"..filepath.."' for writing\n")
|
||||
DisplayOutputLn("Can't open temporary file '"..filepath.."' for writing.")
|
||||
return
|
||||
end
|
||||
f:write(rundebug)
|
||||
|
||||
@@ -26,14 +26,15 @@ return {
|
||||
table.insert(paths, p)
|
||||
end
|
||||
if not love2d then
|
||||
DisplayOutput("Can't find love2d executable in any of the following folders: "
|
||||
..table.concat(paths, ", ").."\n")
|
||||
DisplayOutputLn("Can't find love2d executable in any of the following folders: "
|
||||
..table.concat(paths, ", "))
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
if not GetFullPathIfExists(self:fworkdir(wfilename), 'main.lua') then
|
||||
DisplayOutput("Can't find 'main.lua' file in the current project folder.\n")
|
||||
DisplayOutputLn(("Can't find 'main.lua' file in the current project folder: '%s'.")
|
||||
:format(self:fworkdir(wfilename)))
|
||||
return
|
||||
end
|
||||
|
||||
@@ -41,11 +42,17 @@ return {
|
||||
DebuggerAttachDefault({runstart = ide.config.debugger.runonstart == true})
|
||||
end
|
||||
|
||||
-- suppress hiding ConsoleWindowClass as this is used by Love console
|
||||
local uhw = ide.config.unhidewindow
|
||||
local cwc = uhw and uhw.ConsoleWindowClass
|
||||
if uhw then uhw.ConsoleWindowClass = 0 end
|
||||
|
||||
local params = ide.config.arg.any or ide.config.arg.love2d
|
||||
local cmd = ('"%s" "%s"%s%s'):format(love2d, self:fworkdir(wfilename),
|
||||
params and " "..params or "", rundebug and ' -debug' or '')
|
||||
-- CommandLineRun(cmd,wdir,tooutput,nohide,stringcallback,uid,endcallback)
|
||||
return CommandLineRun(cmd,self:fworkdir(wfilename),true,true)
|
||||
return CommandLineRun(cmd,self:fworkdir(wfilename),true,true,nil,nil,
|
||||
function() if uhw then uhw.ConsoleWindowClass = cwc end end)
|
||||
end,
|
||||
hasdebugger = true,
|
||||
fattachdebug = function(self) DebuggerAttachDefault() end,
|
||||
|
||||
@@ -13,7 +13,7 @@ end
|
||||
return {
|
||||
name = ("Lua%s"):format(name or version or ""),
|
||||
description = ("Lua%s interpreter with debugger"):format(name or version or ""),
|
||||
api = {"wxwidgets","baselib"},
|
||||
api = {"baselib"},
|
||||
luaversion = version or '5.1',
|
||||
fexepath = exePath,
|
||||
frun = function(self,wfilename,rundebug)
|
||||
@@ -30,7 +30,7 @@ return {
|
||||
filepath = tmpfile:GetFullPath()
|
||||
local f = io.open(filepath, "w")
|
||||
if not f then
|
||||
DisplayOutput("Can't open temporary file '"..filepath.."' for writing\n")
|
||||
DisplayOutputLn("Can't open temporary file '"..filepath.."' for writing.")
|
||||
return
|
||||
end
|
||||
f:write(rundebug)
|
||||
|
||||
@@ -22,8 +22,8 @@ return {
|
||||
table.insert(paths, p)
|
||||
end
|
||||
if not moai then
|
||||
DisplayOutput("Can't find moai executable in any of the folders in PATH or MOAI_BIN: "
|
||||
..table.concat(paths, ", ").."\n")
|
||||
DisplayOutputLn("Can't find moai executable in any of the folders in PATH or MOAI_BIN: "
|
||||
..table.concat(paths, ", "))
|
||||
return
|
||||
end
|
||||
end
|
||||
@@ -37,9 +37,9 @@ return {
|
||||
if file then break end
|
||||
end
|
||||
if not file then
|
||||
DisplayOutput("Can't find any of the specified entry points ("
|
||||
DisplayOutputLn("Can't find any of the specified entry points ("
|
||||
..table.concat(epoints, ", ")
|
||||
..") in the current project; continuing with the current file...\n")
|
||||
..") in the current project; continuing with the current file...")
|
||||
end
|
||||
end
|
||||
|
||||
@@ -58,7 +58,7 @@ return {
|
||||
file = tmpfile:GetFullPath()
|
||||
local f = io.open(file, "w")
|
||||
if not f then
|
||||
DisplayOutput("Can't open temporary file '"..file.."' for writing\n")
|
||||
DisplayOutputLn("Can't open temporary file '"..file.."' for writing.")
|
||||
return
|
||||
end
|
||||
f:write(code)
|
||||
|
||||
@@ -83,6 +83,7 @@ end
|
||||
|
||||
local sym = newset("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_")
|
||||
local dig = newset('0123456789')
|
||||
local name = "([_A-Za-z][_A-Za-z0-9]*)"
|
||||
local op = newset('=~<>.+-*/%^#=<>;:,.{}[]()')
|
||||
|
||||
op['=='] = true
|
||||
@@ -90,11 +91,14 @@ op['<='] = true
|
||||
op['>='] = true
|
||||
op['~='] = true
|
||||
op['..'] = true
|
||||
op['<<'] = true
|
||||
op['>>'] = true
|
||||
op['//'] = true
|
||||
|
||||
local is_keyword = qws[[
|
||||
and break do else elseif end false for function if
|
||||
in local nil not or repeat return
|
||||
then true until while]]
|
||||
then true until while goto]]
|
||||
|
||||
function M.lex(code, f, pos)
|
||||
local pos = pos or 1
|
||||
@@ -106,7 +110,7 @@ function M.lex(code, f, pos)
|
||||
pos = p2
|
||||
|
||||
if sym[n1] then
|
||||
local tok = code:match('^([_A-Za-z][_A-Za-z0-9]*)', pos)
|
||||
local tok = code:match('^'..name, pos)
|
||||
assert(tok)
|
||||
if is_keyword[tok] then
|
||||
f('Keyword', tok, pos)
|
||||
@@ -119,6 +123,15 @@ function M.lex(code, f, pos)
|
||||
assert(tok)
|
||||
f('Comment', tok, pos)
|
||||
pos = pos2
|
||||
elseif n2 == '::' then
|
||||
local tok = code:match('^(::%s*'..name..'%s*::)', pos)
|
||||
if tok then
|
||||
f('Label', tok, pos)
|
||||
pos = pos + #tok
|
||||
else
|
||||
f('Unknown', code:sub(pos, pos+1), pos) -- unterminated label
|
||||
pos = pos + 2
|
||||
end
|
||||
elseif n1 == '\'' or n1 == '\"' or n2 == '[[' or n2 == '[=' then
|
||||
local tok = match_string(code, pos)
|
||||
if tok then
|
||||
|
||||
@@ -152,13 +152,15 @@ function PARSE.parse_scope(lx, f, level)
|
||||
f('VarNext', c[1], c.lineinfo, true)
|
||||
end
|
||||
elseif c[1] == 'for' and lx:peek().tag == 'Id' then
|
||||
c = lx:next()
|
||||
f('VarInside', c[1], c.lineinfo, true)
|
||||
while lx:peek().tag == 'Keyword' and lx:peek()[1] == ',' do
|
||||
c = lx:next()
|
||||
f('VarInside', c[1], c.lineinfo, true)
|
||||
while lx:peek().tag == 'Keyword' and lx:peek()[1] == ',' do
|
||||
c = lx:next(); if lx:peek().tag ~= 'Id' then break end
|
||||
c = lx:next()
|
||||
f('VarInside', c[1], c.lineinfo, true)
|
||||
end
|
||||
elseif c[1] == 'goto' and lx:peek().tag == 'Id' then
|
||||
lx:next()
|
||||
elseif c[1] == 'do' then
|
||||
scope_begin('do', c.lineinfo)
|
||||
-- note: do/while/for statement scopes all begin at 'do'.
|
||||
@@ -191,7 +193,7 @@ function PARSE.parse_scope(lx, f, level)
|
||||
-- table field
|
||||
f('String', c[1], c.lineinfo, inside_local)
|
||||
elseif cprev.tag == 'Keyword' and (cprev[1] == ':' or cprev[1] == '.') then
|
||||
f('String', c[1], c.lineinfo, inside_local)
|
||||
f('String', c[1], c.lineinfo, true)
|
||||
else
|
||||
f('Id', c[1], c.lineinfo, inside_local)
|
||||
end
|
||||
|
||||
@@ -703,12 +703,31 @@ function M.infer_values(top_ast, tokenlist, src, report)
|
||||
if #iter_ast == 1 and iter_ast[1].tag == 'Call' and iter_ast[1][1].value == ipairs then
|
||||
for i, var_ast in ipairs(varlist_ast) do
|
||||
if i == 1 then set_value(var_ast, T.number)
|
||||
elseif i == 2 then set_value(var_ast, T.universal)
|
||||
-- handle the type of the value as the type of the first element
|
||||
-- in the table that is a parameter for ipairs
|
||||
elseif i == 2 then
|
||||
local t_ast = iter_ast[1][2]
|
||||
local value = T.universal
|
||||
if (known(t_ast.value) or T.istabletype[t_ast.value]) then
|
||||
local ok; ok, value = pzcall(tindex, {t_ast, {tag='Number', 1}}, t_ast.value, 1)
|
||||
if not ok then value = T.error(t_ast.value) end
|
||||
end
|
||||
set_value(var_ast, value)
|
||||
else set_value(var_ast, nil) end
|
||||
end
|
||||
elseif #iter_ast == 1 and iter_ast[1].tag == 'Call' and iter_ast[1][1].value == pairs then
|
||||
local t_ast = iter_ast[1][2]
|
||||
local value = T.universal
|
||||
local key
|
||||
if t_ast.value and (known(t_ast.value) or T.istabletype[t_ast.value]) then
|
||||
key = next(t_ast.value)
|
||||
local ok; ok, value = pzcall(tindex, {t_ast, {tag='String', key}}, t_ast.value, key)
|
||||
if not ok then value = T.error(t_ast.value) end
|
||||
end
|
||||
|
||||
for i, var_ast in ipairs(varlist_ast) do
|
||||
if i <= 2 then set_value(var_ast, T.number)
|
||||
if i == 1 then set_value(var_ast, type(key))
|
||||
elseif i == 2 then set_value(var_ast, value)
|
||||
else set_value(var_ast, nil) end
|
||||
end
|
||||
else -- general case, unknown iterator
|
||||
@@ -820,8 +839,7 @@ function M.infer_values(top_ast, tokenlist, src, report)
|
||||
local x
|
||||
local val = function() x=nil end
|
||||
local fpos = LA.ast_pos_range(ast, tokenlist)
|
||||
local source = tostring(ast.lineinfo.first):gsub('<C|','<'):match('<([^|]+)') -- a HACK? relies on AST lineinfo
|
||||
local linenum = LA.pos_to_linecol(fpos, src)
|
||||
local source, linenum = tostring(ast.lineinfo.first):gsub('<C|','<'):match('<([^|]+)|L(%d+)') -- a HACK? relies on AST lineinfo
|
||||
local retvals
|
||||
if ENABLE_RETURN_ANALYSIS then
|
||||
retvals = get_func_return_values(ast) --Q:move outside of containing conditional?
|
||||
|
||||
@@ -169,6 +169,12 @@ return function(M)
|
||||
{ "/", prec = 70, builder = opf2 "div" },
|
||||
{ "%", prec = 70, builder = opf2 "mod" },
|
||||
{ "^", prec = 90, builder = opf2 "pow", assoc = "right" },
|
||||
{ "//", prec = 70, builder = opf2 "idiv" },
|
||||
{ "&", prec = 36, builder = opf2 "band" },
|
||||
{ "|", prec = 32, builder = opf2 "bor" },
|
||||
{ "~", prec = 34, builder = opf2 "bxor" },
|
||||
{ "<<", prec = 38, builder = opf2 "shl" },
|
||||
{ ">>", prec = 38, builder = opf2 "shr" },
|
||||
{ "..", prec = 40, builder = opf2 "concat", assoc = "right" },
|
||||
{ "==", prec = 30, builder = opf2 "eq" },
|
||||
{ "~=", prec = 30, builder = op_ne },
|
||||
@@ -183,6 +189,7 @@ return function(M)
|
||||
name = "expr prefix op",
|
||||
{ "not", prec = 80, builder = opf1 "not" },
|
||||
{ "#", prec = 80, builder = opf1 "len" },
|
||||
{ "~", prec = 80, builder = opf2 "bnot" },
|
||||
{ "-", prec = 80, builder = opf1 "unm" } },
|
||||
|
||||
suffix = {
|
||||
|
||||
@@ -34,7 +34,8 @@ return function()
|
||||
"in", "local", "nil", "not", "or", "repeat",
|
||||
"return", "then", "true", "until", "while",
|
||||
"...", "..", "==", ">=", "<=", "~=",
|
||||
"::", -- Lua5,2
|
||||
"<<", ">>", "//", -- Lua5.3
|
||||
"::", -- Lua5.2
|
||||
"+{", "-{" } -- Metalua
|
||||
|
||||
for _, w in ipairs(keywords) do lexer :add (w) end
|
||||
|
||||
@@ -263,6 +263,10 @@ return function(M)
|
||||
{ "local", _M.local_stat_parser, builder = unpack },
|
||||
{ "return", return_expr_list_parser, builder =
|
||||
function(x) x[1].tag='Return'; return x[1] end },
|
||||
{ "goto", _M.id, builder =
|
||||
function(x) x[1].tag='Goto'; return x[1] end },
|
||||
{ "::", _M.id, "::", builder =
|
||||
function(x) x[1].tag='Label'; return x[1] end },
|
||||
{ "break", builder = function() return { tag="Break" } end },
|
||||
{ "-{", gg.future(M, 'meta').splice_content, "}", builder = unpack },
|
||||
{ "if", gg.nonempty(elseifs_parser), gg.onkeyword{ "else", M.block }, "end",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--
|
||||
-- MobDebug -- Lua remote debugger
|
||||
-- Copyright 2011-14 Paul Kulchenko
|
||||
-- Copyright 2011-15 Paul Kulchenko
|
||||
-- Based on RemDebug 1.0 Copyright Kepler Project 2005
|
||||
--
|
||||
|
||||
@@ -19,7 +19,7 @@ end)("os")
|
||||
|
||||
local mobdebug = {
|
||||
_NAME = "mobdebug",
|
||||
_VERSION = 0.607,
|
||||
_VERSION = 0.613,
|
||||
_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,
|
||||
@@ -62,7 +62,7 @@ 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
|
||||
|
||||
if not setfenv then -- Lua 5.2
|
||||
if not setfenv then -- Lua 5.2+
|
||||
-- based on http://lua-users.org/lists/lua-l/2010-06/msg00314.html
|
||||
-- this assumes f is a function
|
||||
local function findenv(f)
|
||||
@@ -127,7 +127,7 @@ end
|
||||
local function q(s) return s:gsub('([%(%)%.%%%+%-%*%?%[%^%$%]])','%%%1') end
|
||||
|
||||
local serpent = (function() ---- include Serpent module for serialization
|
||||
local n, v = "serpent", 0.272 -- (C) 2012-13 Paul Kulchenko; MIT License
|
||||
local n, v = "serpent", 0.28 -- (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}
|
||||
@@ -147,8 +147,8 @@ local function s(t, opts)
|
||||
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 syms[s] end)) end
|
||||
local function safestr(s) return type(s) == "number" and (huge and snum[tostring(s)] or s)
|
||||
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)
|
||||
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
|
||||
@@ -161,7 +161,7 @@ local function s(t, opts)
|
||||
return (path or '')..(plain and path and '.' or '')..safe, safe end
|
||||
local alphanumsort = type(opts.sortkeys) == 'function' and opts.sortkeys or function(k, o, n) -- k=keys, o=originaltable, n=padding
|
||||
local maxn, to = tonumber(n) or 12, {number = 'a', string = 'b'}
|
||||
local function padnum(d) return ("%0"..maxn.."d"):format(d) end
|
||||
local function padnum(d) return ("%0"..tostring(maxn).."d"):format(tonumber(d)) end
|
||||
table.sort(k, function(a,b)
|
||||
-- sort numeric keys first: k[key] is not nil for numerical keys
|
||||
return (k[a] ~= nil and 0 or to[type(a)] or 'z')..(tostring(a):gsub("%d+",padnum))
|
||||
@@ -203,8 +203,8 @@ local function s(t, opts)
|
||||
local sname = safename(iname, gensym(key)) -- iname is table for local variables
|
||||
sref[#sref] = val2str(key,sname,indent,sname,iname,true) end
|
||||
sref[#sref+1] = 'placeholder'
|
||||
local path = seen[t]..'['..(seen[key] or globals[key] or gensym(key))..']'
|
||||
sref[#sref] = path..space..'='..space..(seen[value] or val2str(value,nil,indent,path))
|
||||
local path = seen[t]..'['..tostring(seen[key] or globals[key] or gensym(key))..']'
|
||||
sref[#sref] = path..space..'='..space..tostring(seen[value] or val2str(value,nil,indent,path))
|
||||
else
|
||||
out[#out+1] = val2str(value,key,indent,insref,seen[t],plainindex,level+1)
|
||||
end
|
||||
@@ -233,20 +233,16 @@ local function s(t, opts)
|
||||
end
|
||||
|
||||
local function deserialize(data, opts)
|
||||
local f, res = (loadstring or load)('return '..data)
|
||||
if not f then f, res = (loadstring or load)(data) end
|
||||
local env = (opts and opts.safe == false) and G
|
||||
or setmetatable({}, {
|
||||
__index = function(t,k) return t end,
|
||||
__call = function(t,...) error("cannot call functions") end
|
||||
})
|
||||
local f, res = (loadstring or load)('return '..data, nil, nil, env)
|
||||
if not f then f, res = (loadstring or load)(data, nil, nil, env) end
|
||||
if not f then return f, res end
|
||||
if opts and opts.safe == false then return pcall(f) end
|
||||
|
||||
local count, thread = 0, coroutine.running()
|
||||
local h, m, c = debug.gethook(thread)
|
||||
debug.sethook(function (e, l) count = count + 1
|
||||
if count >= 3 then error("cannot call functions") end
|
||||
end, "c")
|
||||
local res = {pcall(f)}
|
||||
count = 0 -- set again, otherwise it's tripped on the next sethook
|
||||
debug.sethook(thread, h, m, c)
|
||||
return (table.unpack or unpack)(res)
|
||||
if setfenv then setfenv(f, env) end
|
||||
return pcall(f)
|
||||
end
|
||||
|
||||
local function merge(a, b) if b then for k,v in pairs(b) do a[k] = v end end; return a; end
|
||||
@@ -327,6 +323,7 @@ end
|
||||
|
||||
local function remove_breakpoint(file, line)
|
||||
if file == '-' and lastfile then file = lastfile
|
||||
elseif file == '*' and line == 0 then breakpoints = {}
|
||||
elseif iscasepreserving then file = string.lower(file) end
|
||||
if breakpoints[line] then breakpoints[line][file] = nil end
|
||||
end
|
||||
@@ -768,10 +765,12 @@ local function debugger_loop(sev, svars, sfile, sline)
|
||||
status, res = stringify_results(pcall(func))
|
||||
end
|
||||
if status then
|
||||
server:send("200 OK " .. #res .. "\n")
|
||||
server:send("200 OK " .. tostring(#res) .. "\n")
|
||||
server:send(res)
|
||||
else
|
||||
server:send("401 Error in Expression " .. #res .. "\n")
|
||||
-- fix error if not set (for example, when loadstring is not present)
|
||||
if not res then res = "Unknown error" end
|
||||
server:send("401 Error in Expression " .. tostring(#res) .. "\n")
|
||||
server:send(res)
|
||||
end
|
||||
else
|
||||
@@ -784,7 +783,7 @@ local function debugger_loop(sev, svars, sfile, sline)
|
||||
if abort == nil then -- no LOAD/RELOAD allowed inside start()
|
||||
if size > 0 then server:receive(size) end
|
||||
if sfile and sline then
|
||||
server:send("201 Started " .. sfile .. " " .. sline .. "\n")
|
||||
server:send("201 Started " .. sfile .. " " .. tostring(sline) .. "\n")
|
||||
else
|
||||
server:send("200 OK 0\n")
|
||||
end
|
||||
@@ -808,7 +807,7 @@ local function debugger_loop(sev, svars, sfile, sline)
|
||||
debugee = func
|
||||
coroyield("load")
|
||||
else
|
||||
server:send("401 Error in Expression " .. #res .. "\n")
|
||||
server:send("401 Error in Expression " .. tostring(#res) .. "\n")
|
||||
server:send(res)
|
||||
end
|
||||
else
|
||||
@@ -824,9 +823,9 @@ local function debugger_loop(sev, svars, sfile, sline)
|
||||
watchescnt = watchescnt + 1
|
||||
local newidx = #watches + 1
|
||||
watches[newidx] = func
|
||||
server:send("200 OK " .. newidx .. "\n")
|
||||
server:send("200 OK " .. tostring(newidx) .. "\n")
|
||||
else
|
||||
server:send("401 Error in Expression " .. #res .. "\n")
|
||||
server:send("401 Error in Expression " .. tostring(#res) .. "\n")
|
||||
server:send(res)
|
||||
end
|
||||
else
|
||||
@@ -848,13 +847,13 @@ local function debugger_loop(sev, svars, sfile, sline)
|
||||
local ev, vars, file, line, idx_watch = coroyield()
|
||||
eval_env = vars
|
||||
if ev == events.BREAK then
|
||||
server:send("202 Paused " .. file .. " " .. line .. "\n")
|
||||
server:send("202 Paused " .. file .. " " .. tostring(line) .. "\n")
|
||||
elseif ev == events.WATCH then
|
||||
server:send("203 Paused " .. file .. " " .. line .. " " .. idx_watch .. "\n")
|
||||
server:send("203 Paused " .. file .. " " .. tostring(line) .. " " .. tostring(idx_watch) .. "\n")
|
||||
elseif ev == events.RESTART then
|
||||
-- nothing to do
|
||||
else
|
||||
server:send("401 Error in Execution " .. #file .. "\n")
|
||||
server:send("401 Error in Execution " .. tostring(#file) .. "\n")
|
||||
server:send(file)
|
||||
end
|
||||
elseif command == "STEP" then
|
||||
@@ -864,13 +863,13 @@ local function debugger_loop(sev, svars, sfile, sline)
|
||||
local ev, vars, file, line, idx_watch = coroyield()
|
||||
eval_env = vars
|
||||
if ev == events.BREAK then
|
||||
server:send("202 Paused " .. file .. " " .. line .. "\n")
|
||||
server:send("202 Paused " .. file .. " " .. tostring(line) .. "\n")
|
||||
elseif ev == events.WATCH then
|
||||
server:send("203 Paused " .. file .. " " .. line .. " " .. idx_watch .. "\n")
|
||||
server:send("203 Paused " .. file .. " " .. tostring(line) .. " " .. tostring(idx_watch) .. "\n")
|
||||
elseif ev == events.RESTART then
|
||||
-- nothing to do
|
||||
else
|
||||
server:send("401 Error in Execution " .. #file .. "\n")
|
||||
server:send("401 Error in Execution " .. tostring(#file) .. "\n")
|
||||
server:send(file)
|
||||
end
|
||||
elseif command == "OVER" or command == "OUT" then
|
||||
@@ -885,13 +884,13 @@ local function debugger_loop(sev, svars, sfile, sline)
|
||||
local ev, vars, file, line, idx_watch = coroyield()
|
||||
eval_env = vars
|
||||
if ev == events.BREAK then
|
||||
server:send("202 Paused " .. file .. " " .. line .. "\n")
|
||||
server:send("202 Paused " .. file .. " " .. tostring(line) .. "\n")
|
||||
elseif ev == events.WATCH then
|
||||
server:send("203 Paused " .. file .. " " .. line .. " " .. idx_watch .. "\n")
|
||||
server:send("203 Paused " .. file .. " " .. tostring(line) .. " " .. tostring(idx_watch) .. "\n")
|
||||
elseif ev == events.RESTART then
|
||||
-- nothing to do
|
||||
else
|
||||
server:send("401 Error in Execution " .. #file .. "\n")
|
||||
server:send("401 Error in Execution " .. tostring(#file) .. "\n")
|
||||
server:send(file)
|
||||
end
|
||||
elseif command == "BASEDIR" then
|
||||
@@ -920,14 +919,14 @@ local function debugger_loop(sev, svars, sfile, sline)
|
||||
ev, vars = coroyield("stack")
|
||||
end
|
||||
if ev and ev ~= events.STACK then
|
||||
server:send("401 Error in Execution " .. #vars .. "\n")
|
||||
server:send("401 Error in Execution " .. tostring(#vars) .. "\n")
|
||||
server:send(vars)
|
||||
else
|
||||
local ok, res = pcall(mobdebug.dump, vars, {nocode = true, sparse = false})
|
||||
if ok then
|
||||
server:send("200 OK " .. res .. "\n")
|
||||
server:send("200 OK " .. tostring(res) .. "\n")
|
||||
else
|
||||
server:send("401 Error in Execution " .. #res .. "\n")
|
||||
server:send("401 Error in Execution " .. tostring(#res) .. "\n")
|
||||
server:send(res)
|
||||
end
|
||||
end
|
||||
@@ -947,7 +946,7 @@ local function debugger_loop(sev, svars, sfile, sline)
|
||||
for n = 1, #tbl do
|
||||
tbl[n] = select(2, pcall(mobdebug.line, tbl[n], {nocode = true, comment = false})) end
|
||||
local file = table.concat(tbl, "\t").."\n"
|
||||
server:send("204 Output " .. stream .. " " .. #file .. "\n" .. file)
|
||||
server:send("204 Output " .. stream .. " " .. tostring(#file) .. "\n" .. file)
|
||||
end
|
||||
end)
|
||||
if not default then genv.print() end -- "fake" print to start printing loop
|
||||
@@ -969,7 +968,7 @@ local function connect(controller_host, controller_port)
|
||||
if not sock then return nil, err end
|
||||
|
||||
if sock.settimeout then sock:settimeout(mobdebug.connecttimeout) end
|
||||
local res, err = sock:connect(controller_host, controller_port)
|
||||
local res, err = sock:connect(controller_host, tostring(controller_port))
|
||||
if sock.settimeout then sock:settimeout() end
|
||||
|
||||
if not res then return nil, err end
|
||||
@@ -1048,7 +1047,7 @@ local function controller(controller_host, controller_port, scratchpad)
|
||||
if server then
|
||||
local function report(trace, err)
|
||||
local msg = err .. "\n" .. trace
|
||||
server:send("401 Error in Execution " .. #msg .. "\n")
|
||||
server:send("401 Error in Execution " .. tostring(#msg) .. "\n")
|
||||
server:send(msg)
|
||||
return err
|
||||
end
|
||||
@@ -1269,15 +1268,12 @@ local function handle(params, client, options)
|
||||
print("Invalid command")
|
||||
end
|
||||
elseif command == "delallb" then
|
||||
for line, breaks in pairs(breakpoints) do
|
||||
for file, _ in pairs(breaks) do
|
||||
client:send("DELB " .. file .. " " .. line .. "\n")
|
||||
if client:receive() == "200 OK" then
|
||||
remove_breakpoint(file, line)
|
||||
else
|
||||
print("Error: breakpoint at file " .. file .. " line " .. line .. " not removed")
|
||||
end
|
||||
end
|
||||
local file, line = "*", 0
|
||||
client:send("DELB " .. file .. " " .. tostring(line) .. "\n")
|
||||
if client:receive() == "200 OK" then
|
||||
remove_breakpoint(file, line)
|
||||
else
|
||||
print("Error: all breakpoints not removed")
|
||||
end
|
||||
elseif command == "delw" then
|
||||
local _, _, index = string.find(params, "^[a-z]+%s+(%d+)%s*$")
|
||||
@@ -1318,7 +1314,7 @@ local function handle(params, client, options)
|
||||
if not file then
|
||||
_, _, file, lines = string.find(exp, "^(%S+)%s+(.+)")
|
||||
end
|
||||
client:send("LOAD " .. #lines .. " " .. file .. "\n")
|
||||
client:send("LOAD " .. tostring(#lines) .. " " .. file .. "\n")
|
||||
client:send(lines)
|
||||
else
|
||||
local file = io.open(exp, "r")
|
||||
@@ -1336,7 +1332,7 @@ local function handle(params, client, options)
|
||||
|
||||
local file = string.gsub(exp, "\\", "/") -- convert slash
|
||||
file = removebasedir(file, basedir)
|
||||
client:send("LOAD " .. #lines .. " " .. file .. "\n")
|
||||
client:send("LOAD " .. tostring(#lines) .. " " .. file .. "\n")
|
||||
if #lines > 0 then client:send(lines) end
|
||||
end
|
||||
while true do
|
||||
@@ -1595,6 +1591,7 @@ mobdebug.coro = coro
|
||||
mobdebug.done = done
|
||||
mobdebug.pause = function() step_into = true end
|
||||
mobdebug.yield = nil -- callback
|
||||
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
|
||||
|
||||
179
spec/lua.lua
179
spec/lua.lua
@@ -26,6 +26,24 @@ local function isfndef(str)
|
||||
end
|
||||
local q = EscapeMagic
|
||||
|
||||
local function ldoc(tx, typepatt)
|
||||
local varname = "([%w_]+)"
|
||||
-- <type> == ?string, ?|T1|T2
|
||||
-- anything that follows optional "|..." is ignored
|
||||
local typename = "%??"..typepatt
|
||||
-- @tparam[...] <type> <paramname>
|
||||
-- @param[type=<type>] <paramname>
|
||||
-- @string[...] <paramname>; not handled
|
||||
local t, v = tx:match("--%s*@tparam%b[]%s+"..typename.."%s+"..varname)
|
||||
if not t then -- try without optional [...] part
|
||||
t, v = tx:match("--%s*@tparam%s+"..typename.."%s+"..varname)
|
||||
end
|
||||
if not t then
|
||||
t, v = tx:match("--%s*@param%s*%[type="..typename.."%]%s+"..varname)
|
||||
end
|
||||
return t, v
|
||||
end
|
||||
|
||||
return {
|
||||
exts = {"lua", "rockspec", "wlua"},
|
||||
lexer = wxstc.wxSTC_LEX_LUA,
|
||||
@@ -52,12 +70,17 @@ return {
|
||||
return match and 1 or 0, match and term and 1 or 0
|
||||
end,
|
||||
isincindent = function(str)
|
||||
str = (str:gsub('%-%-%[=*%[.*%]=*%]','')
|
||||
:gsub("'.-\\'","'"):gsub("'.-'","")
|
||||
:gsub('".-\\"','"'):gsub('".-"','')
|
||||
:gsub('%-%-.*','') -- strip comments after strings are processed
|
||||
:gsub("%b()","()") -- remove all function calls
|
||||
)
|
||||
-- remove "long" comments and escaped slashes (to process \' and \" below)
|
||||
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()","()")
|
||||
|
||||
local term = str:match("^%s*(%w+)%W*")
|
||||
local terminc = term and incindent[term] and 1 or 0
|
||||
-- fix 'if' not terminated with 'then'
|
||||
@@ -109,108 +132,81 @@ return {
|
||||
end,
|
||||
|
||||
typeassigns = function(editor)
|
||||
local line = editor:GetCurrentLine()-1
|
||||
local maxlines = 48 -- scan up to this many lines back
|
||||
|
||||
local scopestart = {"if", "do", "while", "function", "local%s+function", "for", "else", "elseif"}
|
||||
local scopeend = {"end"}
|
||||
local iscomment = editor.spec.iscomment
|
||||
|
||||
local assigns = {}
|
||||
|
||||
-- iterate up until a line starts with scopestart
|
||||
-- always ignore lines whose first symbol is styled as comment
|
||||
local endline = line
|
||||
while (line > math.max(endline-maxlines, 0)) do
|
||||
local ls = editor:PositionFromLine(line)
|
||||
local s = bit.band(editor:GetStyleAt(ls),31)
|
||||
|
||||
if (not iscomment[s]) then
|
||||
local tx = editor:GetLine(line)
|
||||
local sstart, send
|
||||
|
||||
for _, v in ipairs(scopestart) do
|
||||
if (tx:match("^%s*"..v.."%f[^%w]")) then sstart = true end
|
||||
end
|
||||
for _, v in ipairs(scopeend) do
|
||||
if (tx:match("%f[%w]"..v.."%s*$")) then send = true end
|
||||
end
|
||||
-- if the scope starts, but doesn't end on one line, stop searching
|
||||
if sstart and not send then break end
|
||||
end
|
||||
line = line -1
|
||||
end
|
||||
local endline = editor:GetCurrentLine()-1
|
||||
local line = math.max(endline-maxlines, 0)
|
||||
|
||||
while (line <= endline) do
|
||||
local ls = editor:PositionFromLine(line)
|
||||
local s = bit.band(editor:GetStyleAt(ls),31)
|
||||
local tx = editor:GetLine(line) --= string
|
||||
|
||||
if (not iscomment[s]) then
|
||||
local tx = editor:GetLine(line) --= string
|
||||
-- check for assignments
|
||||
local sep = editor.spec.sep
|
||||
local varname = "([%w_][%w_"..q(sep:sub(1,1)).."]*)"
|
||||
local identifier = "([%w_][%w_"..q(sep).."%s]*)"
|
||||
|
||||
-- check for assignments
|
||||
local sep = editor.spec.sep
|
||||
local varname = "([%w_][%w_"..q(sep:sub(1,1)).."]*)"
|
||||
local identifier = "([%w_][%w_"..q(sep).."%s]*)"
|
||||
-- special hint
|
||||
local typ, var = tx:match("%s*%-%-=%s*"..varname.."%s+"..identifier)
|
||||
local ldoctype, ldocvar = ldoc(tx, varname)
|
||||
if var and typ then
|
||||
assigns[var] = typ:gsub("%s","")
|
||||
elseif ldoctype and ldocvar then
|
||||
assigns[ldocvar] = ldoctype
|
||||
elseif not iscomment[s] then
|
||||
-- real assignments
|
||||
local var,typ = tx:match("%s*"..identifier.."%s*=%s*([^;]+)")
|
||||
|
||||
-- special hint
|
||||
local typ,var = tx:match("%s*%-%-=%s*"..varname.."%s+"..identifier)
|
||||
if (var and typ) then
|
||||
typ = typ:gsub("%s","")
|
||||
assigns[var] = typ
|
||||
else
|
||||
-- real assignments
|
||||
local var,typ = tx:match("%s*"..identifier.."%s*=%s*([^;]+)")
|
||||
|
||||
var = var and var:gsub("local","")
|
||||
var = var and var:gsub("%s","")
|
||||
typ = typ and typ
|
||||
:gsub("%b()","")
|
||||
:gsub("%b{}","")
|
||||
:gsub("%b[]",".0")
|
||||
-- remove comments; they may be in strings, but that's okay here
|
||||
:gsub("%-%-.*","")
|
||||
if (typ and (typ:match(",") or typ:match("%sor%s") or typ:match("%sand%s"))) then
|
||||
typ = nil
|
||||
end
|
||||
typ = typ and typ:gsub("%s","")
|
||||
typ = typ and typ:gsub(".+", function(s)
|
||||
var = var and var:gsub("local",""):gsub("%s","")
|
||||
typ = (typ and typ
|
||||
:gsub("%b()","")
|
||||
:gsub("%b{}","")
|
||||
:gsub("%b[]",".0")
|
||||
-- replace concatenation with addition to avoid misidentifying types
|
||||
:gsub("%.%.+","+")
|
||||
-- remove comments; they may be in strings, but that's okay here
|
||||
:gsub("%-%-.*",""))
|
||||
if (typ and (typ:match(",") or typ:match("%sor%s") or typ:match("%sand%s"))) then
|
||||
typ = nil
|
||||
end
|
||||
typ = typ and typ:gsub("%s","")
|
||||
typ = typ and typ:gsub(".+", function(s)
|
||||
return (s:find("^'[^']*'$")
|
||||
or s:find('^"[^"]*"$')
|
||||
or s:find('^%[=*%[.*%]=*%]$')) and 'string' or s
|
||||
or s:find('^"[^"]*"$')
|
||||
or s:find('^%[=*%[.*%]=*%]$')) and 'string' or s
|
||||
end)
|
||||
|
||||
-- filter out everything that is not needed
|
||||
if typ and typ ~= 'string' -- special value for all strings
|
||||
and (not typ:match('^'..identifier..'$') -- not an identifier
|
||||
or typ:match('^%d') -- or a number
|
||||
or editor.api.tip.keys[typ] -- or a keyword
|
||||
) then
|
||||
typ = nil
|
||||
end
|
||||
-- filter out everything that is not needed
|
||||
if typ and typ ~= 'string' -- special value for all strings
|
||||
and (not typ:match('^'..identifier..'$') -- not an identifier
|
||||
or typ:match('^%d') -- or a number
|
||||
or editor.api.tip.keys[typ] -- or a keyword
|
||||
) then
|
||||
typ = nil
|
||||
end
|
||||
|
||||
if (var and typ) then
|
||||
class,func = typ:match(varname.."["..q(sep).."]"..varname)
|
||||
if (assigns[typ]) then
|
||||
assigns[var] = assigns[typ]
|
||||
elseif (func) then
|
||||
-- FIXME remove this, in favor of proper api definitions
|
||||
local added
|
||||
local funcnames = {"new","load","create"}
|
||||
for i,v in ipairs(funcnames) do
|
||||
if (func == v) then
|
||||
assigns[var] = class
|
||||
added = true
|
||||
break
|
||||
end
|
||||
if (var and typ) then
|
||||
local class,func = typ:match(varname.."["..q(sep).."]"..varname)
|
||||
if (assigns[typ]) then
|
||||
assigns[var] = assigns[typ]
|
||||
elseif (func) then
|
||||
local added
|
||||
local funcnames = {"new","load","create"}
|
||||
for _,v in ipairs(funcnames) do
|
||||
if (func == v) then
|
||||
assigns[var] = class
|
||||
added = true
|
||||
break
|
||||
end
|
||||
if (not added) then
|
||||
-- let's hope autocomplete info can resolve this
|
||||
assigns[var] = typ
|
||||
end
|
||||
else
|
||||
end
|
||||
if (not added) then
|
||||
-- let's hope autocomplete info can resolve this
|
||||
assigns[var] = typ
|
||||
end
|
||||
else
|
||||
assigns[var] = typ
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -272,6 +268,7 @@ return {
|
||||
string.byte string.char string.dump string.find string.format string.gmatch string.gsub string.len
|
||||
string.lower string.match string.rep string.reverse string.sub string.upper
|
||||
byte find format gmatch gsub len lower match rep reverse sub upper
|
||||
table.move, string.pack, string.unpack, string.packsize
|
||||
table.concat table.insert table.maxn table.pack table.remove table.sort table.unpack]]
|
||||
},
|
||||
}
|
||||
|
||||
@@ -129,11 +129,12 @@ local function fillTips(api,apibasename)
|
||||
local shortfinfo = tclass.shortfinfo
|
||||
local shortfinfoclass = tclass.shortfinfoclass
|
||||
|
||||
local function traverse (tab,libname)
|
||||
local function traverse (tab, libname, format)
|
||||
if not tab.childs then return end
|
||||
format = tab.format or format
|
||||
for key,info in pairs(tab.childs) do
|
||||
local fullkey = (libname ~= "" and libname.."." or "")..key
|
||||
traverse(info, fullkey)
|
||||
traverse(info, fullkey, format)
|
||||
|
||||
if info.type == "function" or info.type == "method" or info.type == "value" then
|
||||
local frontname = (info.returns or "(?)").." "..fullkey.." "..(info.args or "(?)")
|
||||
@@ -146,6 +147,10 @@ local function fillTips(api,apibasename)
|
||||
local sentence = description:match("^(.-)%. ?\n")
|
||||
local infshort = ((info.type == "value" and "" or frontname.."\n")
|
||||
..(sentence and sentence.."..." or description))
|
||||
if type(format) == 'function' then -- apply custom formatting if requested
|
||||
inf = format(fullkey, info, inf)
|
||||
infshort = format(fullkey, info, infshort)
|
||||
end
|
||||
local infshortbatch = (info.returns and info.args) and frontname or infshort
|
||||
|
||||
-- add to infoclass
|
||||
@@ -184,12 +189,12 @@ end
|
||||
local function generateAPIInfo(only)
|
||||
for i,api in pairs(apis) do
|
||||
if ((not only) or i == only) then
|
||||
fillTips(api,"",i)
|
||||
fillTips(api,"")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function UpdateAssignCache(editor)
|
||||
local function updateAssignCache(editor)
|
||||
if (editor.spec.typeassigns and not editor.assignscache) then
|
||||
local assigns = editor.spec.typeassigns(editor)
|
||||
editor.assignscache = {
|
||||
@@ -221,8 +226,19 @@ local function resolveAssign(editor,tx)
|
||||
local c
|
||||
if (assigns) then
|
||||
-- find assign
|
||||
local change = true
|
||||
local change, n, 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
|
||||
if ide.config.acandtip.warning then
|
||||
DisplayOutputLn("Warning: Auto-complete was aborted after taking too long to complete."
|
||||
.. " Please report this warning along with the text you were typing to support@zerobrane.com.")
|
||||
end
|
||||
break
|
||||
else
|
||||
n = n + 1
|
||||
end
|
||||
|
||||
local classname = nil
|
||||
c = ""
|
||||
change = false
|
||||
@@ -252,7 +268,7 @@ end
|
||||
function GetTipInfo(editor, content, short, fullmatch)
|
||||
if not content then return end
|
||||
|
||||
UpdateAssignCache(editor)
|
||||
updateAssignCache(editor)
|
||||
|
||||
-- try to resolve the class
|
||||
content = content:gsub("%b[]",".0")
|
||||
@@ -287,16 +303,18 @@ local function reloadAPI(only,subapis)
|
||||
end
|
||||
|
||||
function ReloadLuaAPI()
|
||||
local interpreterapi = ide.interpreter
|
||||
interpreterapi = interpreterapi and interpreterapi.api
|
||||
if (interpreterapi) then
|
||||
local apinames = {}
|
||||
for _, v in ipairs(interpreterapi) do
|
||||
apinames[v] = true
|
||||
end
|
||||
interpreterapi = apinames
|
||||
end
|
||||
reloadAPI("lua",interpreterapi)
|
||||
local interp = ide.interpreter
|
||||
local cfgapi = ide.config.api
|
||||
local fname = interp and interp.fname
|
||||
local intapi = cfgapi and fname and cfgapi[fname]
|
||||
local apinames = {}
|
||||
-- general APIs as configured
|
||||
for _, v in ipairs(type(cfgapi) == 'table' and cfgapi or {}) do apinames[v] = true end
|
||||
-- interpreter-specific APIs as configured
|
||||
for _, v in ipairs(type(intapi) == 'table' and intapi or {}) do apinames[v] = true end
|
||||
-- interpreter APIs
|
||||
for _, v in ipairs(interp and interp.api or {}) do apinames[v] = true end
|
||||
reloadAPI("lua",apinames)
|
||||
end
|
||||
|
||||
do
|
||||
@@ -446,7 +464,7 @@ local function getAutoCompApiList(childs,fragment,method)
|
||||
return ret
|
||||
end
|
||||
|
||||
if cache[childs] then
|
||||
if cache[childs] and cache[childs][fragment] then
|
||||
return cache[childs][fragment]
|
||||
end
|
||||
|
||||
@@ -462,7 +480,6 @@ local function getAutoCompApiList(childs,fragment,method)
|
||||
((method and v.type ~= "value")
|
||||
or (not method and v.type ~= "method"))) then
|
||||
local used = {}
|
||||
--
|
||||
local kl = key:lower()
|
||||
for i=0,#key do
|
||||
local k = kl:sub(1,i)
|
||||
@@ -492,7 +509,6 @@ local function getAutoCompApiList(childs,fragment,method)
|
||||
return t
|
||||
end
|
||||
|
||||
-- make syntype dependent
|
||||
function CreateAutoCompList(editor,key,pos)
|
||||
local api = editor.api
|
||||
local tip = api.tip
|
||||
@@ -504,7 +520,7 @@ function CreateAutoCompList(editor,key,pos)
|
||||
-- ignore keywords
|
||||
if tip.keys[key] then return end
|
||||
|
||||
UpdateAssignCache(editor)
|
||||
updateAssignCache(editor)
|
||||
|
||||
local tab,rest = resolveAssign(editor,key)
|
||||
local progress = tab and tab.childs
|
||||
@@ -578,7 +594,7 @@ function CreateAutoCompList(editor,key,pos)
|
||||
local vars, context = {}
|
||||
local tokens = editor:GetTokenList()
|
||||
for _, token in ipairs(tokens) do
|
||||
if token.fpos > pos then break end
|
||||
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
|
||||
|
||||
333
src/editor/commandbar.lua
Normal file
333
src/editor/commandbar.lua
Normal file
@@ -0,0 +1,333 @@
|
||||
-- Copyright 2011-14 Paul Kulchenko, ZeroBrane LLC
|
||||
---------------------------------------------------------
|
||||
|
||||
local maxlines = 8
|
||||
local row_height = 46
|
||||
local row_width = 450
|
||||
local win = ide.osname == 'Windows'
|
||||
|
||||
function CommandBarShow(params)
|
||||
local onDone, onUpdate, onItem, onSelection, defaultText, selectedText =
|
||||
params.onDone, params.onUpdate, params.onItem, params.onSelection,
|
||||
params.defaultText, params.selectedText
|
||||
local lines = {}
|
||||
local linesnow = #lines
|
||||
local linenow = 0
|
||||
|
||||
local ed = ide:GetEditor()
|
||||
local pos = ed and ed:GetScreenPosition() or ide:GetEditorNotebook():GetScreenPosition()
|
||||
if pos then
|
||||
pos:SetX(pos:GetX()+ide:GetEditorNotebook():GetClientSize():GetWidth()-row_width-16)
|
||||
pos:SetY(pos:GetY()+2)
|
||||
if not win then pos = ide:GetMainFrame():ScreenToClient(pos) end
|
||||
else
|
||||
pos = wx.wxDefaultPosition
|
||||
end
|
||||
|
||||
local frame = win and wx.wxFrame(ide:GetMainFrame(), wx.wxID_ANY, "Command Bar",
|
||||
pos, wx.wxDefaultSize,
|
||||
wx.wxFRAME_TOOL_WINDOW + wx.wxFRAME_FLOAT_ON_PARENT + wx.wxNO_BORDER)
|
||||
local panel = wx.wxPanel(frame or ide:GetMainFrame(), wx.wxID_ANY,
|
||||
win and wx.wxDefaultPosition or pos, wx.wxDefaultSize, wx.wxFULL_REPAINT_ON_RESIZE)
|
||||
local search = wx.wxTextCtrl(panel, wx.wxID_ANY, "\1",
|
||||
wx.wxDefaultPosition,
|
||||
-- make the text control a bit smaller on OSX
|
||||
wx.wxSize(row_width, ide.osname == 'Macintosh' and 20 or 24),
|
||||
wx.wxTE_PROCESS_ENTER + wx.wxTE_PROCESS_TAB + wx.wxNO_BORDER)
|
||||
local results = wx.wxScrolledWindow(panel, wx.wxID_ANY,
|
||||
wx.wxDefaultPosition, wx.wxSize(0, 0))
|
||||
|
||||
if not frame then frame = panel end
|
||||
|
||||
local style, styledef = ide.config.styles, StylesGetDefault()
|
||||
local textcolor = wx.wxColour(unpack(style.text.fg or styledef.text.fg))
|
||||
local backcolor = wx.wxColour(unpack(style.text.bg or styledef.text.bg))
|
||||
local selcolor = wx.wxColour(unpack(style.caretlinebg.bg or styledef.caretlinebg.bg))
|
||||
local pancolor = ide:GetUIManager():GetArtProvider():GetColor(wxaui.wxAUI_DOCKART_SASH_COLOUR)
|
||||
local borcolor = ide:GetUIManager():GetArtProvider():GetColor(wxaui.wxAUI_DOCKART_BORDER_COLOUR)
|
||||
|
||||
search:SetBackgroundColour(backcolor)
|
||||
search:SetForegroundColour(textcolor)
|
||||
|
||||
local nbrush = wx.wxBrush(backcolor, wx.wxSOLID)
|
||||
local sbrush = wx.wxBrush(selcolor, wx.wxSOLID)
|
||||
local bbrush = wx.wxBrush(pancolor, wx.wxSOLID)
|
||||
local lpen = wx.wxPen(borcolor, 1, wx.wxDOT)
|
||||
local bpen = wx.wxPen(borcolor, 1, wx.wxSOLID)
|
||||
|
||||
local sash = ide:GetUIManager():GetArtProvider():GetMetric(wxaui.wxAUI_DOCKART_SASH_SIZE)
|
||||
local border = sash + 2
|
||||
local hoffset = 4
|
||||
local voffset = 4
|
||||
|
||||
local topSizer = wx.wxFlexGridSizer(2, 1, -border*2, 0)
|
||||
topSizer:SetFlexibleDirection(wx.wxVERTICAL)
|
||||
topSizer:AddGrowableRow(1, 1)
|
||||
topSizer:Add(search, wx.wxSizerFlags(0):Expand():Border(wx.wxALL, border))
|
||||
topSizer:Add(results, wx.wxSizerFlags(1):Expand():Border(wx.wxALL, border))
|
||||
panel:SetSizer(topSizer)
|
||||
topSizer:Fit(frame) -- fit the frame/panel around the controls
|
||||
|
||||
local minheight = frame:GetClientSize():GetHeight()
|
||||
|
||||
local tfont = ide:GetProjectTree():GetFont()
|
||||
local ffont = (ide:GetEditor() or ide:CreateBareEditor()):GetFont()
|
||||
ffont:SetPointSize(ffont:GetPointSize()+2)
|
||||
local sfont = wx.wxFont(tfont)
|
||||
tfont:SetPointSize(tfont:GetPointSize()+2)
|
||||
search:SetFont(tfont)
|
||||
|
||||
-- make a one-time callback;
|
||||
-- needed because KILL_FOCUS handler can be called after closing window
|
||||
local function onExit(index)
|
||||
onExit = function() end
|
||||
onDone(index and lines[index], index ~= nil, search:GetValue())
|
||||
frame:Close()
|
||||
end
|
||||
|
||||
local function onPaint(event)
|
||||
-- adjust the scrollbar before working with the canvas
|
||||
local _, starty = results:GetViewStart()
|
||||
if #lines ~= linesnow then
|
||||
-- adjust the starting line when the current line is the last one
|
||||
if linenow > starty+maxlines then starty = starty + 1 end
|
||||
results:SetScrollbars(1, row_height, 1, #lines, 0, starty*row_height, false)
|
||||
linesnow = #lines
|
||||
end
|
||||
|
||||
local dc = wx.wxMemoryDC(results)
|
||||
results:PrepareDC(dc)
|
||||
|
||||
local size = results:GetVirtualSize()
|
||||
local w,h = size:GetWidth(),size:GetHeight()
|
||||
local bitmap = wx.wxBitmap(w,h)
|
||||
dc:SelectObject(bitmap)
|
||||
|
||||
-- clear the background
|
||||
dc:SetBackground(nbrush)
|
||||
dc:Clear()
|
||||
|
||||
dc:SetTextForeground(textcolor)
|
||||
dc:SetBrush(sbrush)
|
||||
for r = 1, #lines do
|
||||
if r == linenow then
|
||||
dc:SetPen(wx.wxTRANSPARENT_PEN)
|
||||
dc:DrawRectangle(0, row_height*(r-1), row_width, row_height+1)
|
||||
end
|
||||
dc:SetPen(lpen)
|
||||
dc:DrawLine(hoffset, row_height*(r-1), row_width-hoffset*2, row_height*(r-1))
|
||||
|
||||
local fline, sline = onItem(lines[r])
|
||||
if fline then
|
||||
dc:SetFont(ffont)
|
||||
dc:DrawText(fline, hoffset, row_height*(r-1)+voffset)
|
||||
end
|
||||
if sline then
|
||||
dc:SetFont(sfont)
|
||||
dc:DrawText(sline, hoffset, row_height*(r-1)+row_height/2+voffset)
|
||||
end
|
||||
end
|
||||
|
||||
dc:SetPen(wx.wxNullPen)
|
||||
dc:SetBrush(wx.wxNullBrush)
|
||||
dc:SelectObject(wx.wxNullBitmap)
|
||||
dc:delete()
|
||||
|
||||
dc = wx.wxPaintDC(results)
|
||||
dc:DrawBitmap(bitmap, 0, 0, true)
|
||||
dc:delete()
|
||||
end
|
||||
|
||||
local function onPanelPaint(event)
|
||||
local dc = wx.wxBufferedPaintDC(panel)
|
||||
dc:SetBrush(bbrush)
|
||||
dc:SetPen(bpen)
|
||||
|
||||
local psize = panel:GetClientSize()
|
||||
dc:DrawRectangle(0, 0, psize:GetWidth(), psize:GetHeight())
|
||||
dc:DrawRectangle(sash+1, sash+1, psize:GetWidth()-2*(sash+1), psize:GetHeight()-2*(sash+1))
|
||||
|
||||
dc:SetPen(wx.wxNullPen)
|
||||
dc:SetBrush(wx.wxNullBrush)
|
||||
dc:delete()
|
||||
end
|
||||
|
||||
local linewas -- line that was reported when updated
|
||||
local function onTextUpdated(event)
|
||||
local text = search:GetValue()
|
||||
lines = onUpdate(text)
|
||||
linenow = #text > 0 and #lines > 0 and 1 or 0
|
||||
linewas = nil
|
||||
|
||||
local size = frame:GetClientSize()
|
||||
local height = minheight + row_height*math.min(maxlines,#lines)
|
||||
if height ~= size:GetHeight() then
|
||||
results:SetScrollbars(1, 1, 1, 1, 0, 0, false)
|
||||
size:SetHeight(height)
|
||||
frame:SetClientSize(size)
|
||||
end
|
||||
|
||||
results:Refresh()
|
||||
end
|
||||
|
||||
local function onKeyDown(event)
|
||||
local keycode = event:GetKeyCode()
|
||||
if keycode == wx.WXK_RETURN then
|
||||
onExit(linenow)
|
||||
return
|
||||
elseif event:GetModifiers() ~= wx.wxMOD_NONE then
|
||||
event:Skip()
|
||||
return
|
||||
elseif keycode == wx.WXK_UP then
|
||||
if linesnow > 0 then
|
||||
linenow = linenow - 1
|
||||
if linenow <= 0 then linenow = linesnow end
|
||||
end
|
||||
elseif keycode == wx.WXK_DOWN then
|
||||
if linesnow > 0 then
|
||||
linenow = linenow % linesnow + 1
|
||||
end
|
||||
elseif keycode == wx.WXK_PAGEDOWN then
|
||||
if linesnow > 0 then
|
||||
linenow = linenow + maxlines
|
||||
if linenow > linesnow then linenow = linesnow end
|
||||
end
|
||||
elseif keycode == wx.WXK_PAGEUP then
|
||||
if linesnow > 0 then
|
||||
linenow = linenow - maxlines
|
||||
if linenow <= 0 then linenow = 1 end
|
||||
end
|
||||
elseif keycode == wx.WXK_ESCAPE then
|
||||
onExit()
|
||||
return
|
||||
else
|
||||
event:Skip()
|
||||
return
|
||||
end
|
||||
|
||||
local _, starty = results:GetViewStart()
|
||||
if linenow < starty+1 then results:Scroll(-1, linenow-1)
|
||||
elseif linenow > starty+maxlines then results:Scroll(-1, linenow-maxlines) end
|
||||
results:Refresh()
|
||||
end
|
||||
|
||||
local function onMouseLeftDown(event)
|
||||
local pos = event:GetPosition()
|
||||
local _, y = results:CalcUnscrolledPosition(pos.x, pos.y)
|
||||
onExit(math.floor(y / row_height)+1)
|
||||
end
|
||||
|
||||
local function onIdle(event)
|
||||
if linewas == linenow then return end
|
||||
linewas = linenow
|
||||
if linenow == 0 then return end
|
||||
|
||||
-- save the selection/insertion point as it's reset on Linux (wxwidgets 2.9.5)
|
||||
local ip = search:GetInsertionPoint()
|
||||
local f, t = search:GetSelection()
|
||||
|
||||
-- this may set focus to a different object/tab,
|
||||
-- so disable the focus event and then set the focus back
|
||||
search:SetEvtHandlerEnabled(false)
|
||||
onSelection(lines[linenow], search:GetValue())
|
||||
search:SetFocus()
|
||||
search:SetEvtHandlerEnabled(true)
|
||||
if ide.osname == 'Unix' then
|
||||
search:SetInsertionPoint(ip)
|
||||
search:SetSelection(f, t)
|
||||
end
|
||||
end
|
||||
|
||||
frame:Connect(wx.wxEVT_CLOSE_WINDOW, function() frame:Destroy() end)
|
||||
|
||||
panel:Connect(wx.wxEVT_PAINT, onPanelPaint)
|
||||
panel:Connect(wx.wxEVT_ERASE_BACKGROUND, function() end)
|
||||
panel:Connect(wx.wxEVT_IDLE, onIdle)
|
||||
|
||||
results:Connect(wx.wxEVT_PAINT, onPaint)
|
||||
results:Connect(wx.wxEVT_LEFT_DOWN, onMouseLeftDown)
|
||||
results:Connect(wx.wxEVT_ERASE_BACKGROUND, function() end)
|
||||
|
||||
search:SetFocus()
|
||||
search:Connect(wx.wxEVT_KEY_DOWN, onKeyDown)
|
||||
search:Connect(wx.wxEVT_COMMAND_TEXT_UPDATED, onTextUpdated)
|
||||
search:Connect(wx.wxEVT_COMMAND_TEXT_ENTER, function() onExit(linenow) end)
|
||||
search:Connect(wx.wxEVT_KILL_FOCUS, function() onExit() end)
|
||||
|
||||
frame:Show(true)
|
||||
|
||||
search:SetValue((defaultText or "")..(selectedText or ""))
|
||||
search:SetSelection(#(defaultText or ""), -1)
|
||||
end
|
||||
|
||||
local sep = "[/\\%-_ ]+"
|
||||
local weights = {onegram = 0.1, digram = 0.4, trigram = 0.5}
|
||||
local cache = {}
|
||||
local missing = 3 -- penalty for missing symbols (1 missing == N matching)
|
||||
local casemismatch = 0.9 -- score for case mismatch (%% of full match)
|
||||
local function score(p, v)
|
||||
local function ngrams(str, num, low, needcache)
|
||||
local key = str..'\1'..num
|
||||
if cache[key] then return unpack(cache[key]) end
|
||||
|
||||
local t, l, p = {}, {}, 0
|
||||
for i = 1, #str-num+1 do
|
||||
local pair = str:sub(i, i+num-1)
|
||||
p = p + (t[pair] and 0 or 1)
|
||||
if low and pair:find('%u') then l[pair:lower()] = casemismatch end
|
||||
t[pair] = 1
|
||||
end
|
||||
if needcache then cache[key] = {t, p, l} end
|
||||
return t, p, l
|
||||
end
|
||||
|
||||
local function overlap(pattern, value, num)
|
||||
local ph, ps = ngrams(pattern, num, false, true)
|
||||
local vh, vs, vl = ngrams(value, num, true)
|
||||
if ps + vs == 0 then return 0 end
|
||||
|
||||
local is = 0 -- intersection of two sets of ngrams
|
||||
for k in pairs(ph) do is = is + (vh[k] or vl[k:lower()] or 0) end
|
||||
return is / (ps + vs) - (num == 1 and missing * (ps - is) / (ps + vs) or 0)
|
||||
end
|
||||
|
||||
local key = p..'\2'..v
|
||||
if not cache[key] then
|
||||
local score = weights.onegram * overlap(p, v, 1)
|
||||
if score > 0 then -- don't bother with those that can't even score 1grams
|
||||
p = ' '..(p:gsub(sep, ' '))
|
||||
v = ' '..(v:gsub(sep, ' '))
|
||||
score = score + weights.digram * overlap(p, v, 2)
|
||||
score = score + weights.trigram * overlap(' '..p, ' '..v, 3)
|
||||
end
|
||||
cache[key] = 2 * 100 * score
|
||||
end
|
||||
return cache[key]
|
||||
end
|
||||
|
||||
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("%.%*$","")
|
||||
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}
|
||||
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
|
||||
return r
|
||||
end
|
||||
|
||||
ide:AddPackage('core.commandbar', {
|
||||
-- reset ngram cache when switching projects to conserve memory
|
||||
onProjectLoad = function() cache = {} end
|
||||
})
|
||||
@@ -40,10 +40,14 @@ local function findUnusedEditor()
|
||||
end
|
||||
|
||||
function LoadFile(filePath, editor, file_must_exist, skipselection)
|
||||
local filePath = wx.wxFileName(filePath)
|
||||
filePath = filePath:gsub("%s+$","")
|
||||
filePath = wx.wxFileName(filePath)
|
||||
filePath:Normalize() -- make it absolute and remove all .. and . if possible
|
||||
filePath = filePath:GetFullPath()
|
||||
|
||||
-- if the file name is empty or is a directory, don't do anything
|
||||
if filePath == '' or wx.wxDirExists(filePath) then return nil end
|
||||
|
||||
-- prevent files from being reopened again
|
||||
if (not editor) then
|
||||
local doc = ide:FindDocument(filePath)
|
||||
@@ -107,6 +111,7 @@ function LoadFile(filePath, editor, file_must_exist, skipselection)
|
||||
end
|
||||
|
||||
editor:Colourise(0, -1)
|
||||
editor:ResetTokenList() -- reset list of tokens if this is a reused editor
|
||||
editor:Thaw()
|
||||
|
||||
local edcfg = ide.config.editor
|
||||
@@ -137,18 +142,19 @@ function LoadFile(filePath, editor, file_must_exist, skipselection)
|
||||
end
|
||||
|
||||
editor:EmptyUndoBuffer()
|
||||
local id = editor:GetId()
|
||||
if openDocuments[id] then -- existing editor; switch to the tab
|
||||
notebook:SetSelection(openDocuments[id].index)
|
||||
local doc = ide:GetDocument(editor)
|
||||
if doc then -- existing editor; switch to the tab
|
||||
notebook:SetSelection(doc:GetTabIndex())
|
||||
else -- the editor has not been added to notebook
|
||||
AddEditor(editor, wx.wxFileName(filePath):GetFullName()
|
||||
doc = AddEditor(editor, wx.wxFileName(filePath):GetFullName()
|
||||
or ide.config.default.fullname)
|
||||
end
|
||||
openDocuments[id].filePath = filePath
|
||||
openDocuments[id].fileName = wx.wxFileName(filePath):GetFullName()
|
||||
openDocuments[id].modTime = GetFileModTime(filePath)
|
||||
doc.filePath = filePath
|
||||
doc.fileName = wx.wxFileName(filePath):GetFullName()
|
||||
doc.modTime = GetFileModTime(filePath)
|
||||
|
||||
SetDocumentModified(id, false, openDocuments[id].fileName)
|
||||
doc:SetModified(false)
|
||||
doc:SetTabText(doc:GetFileName())
|
||||
|
||||
-- activate the editor; this is needed for those cases when the editor is
|
||||
-- created from some other element, for example, from a project tree.
|
||||
@@ -200,8 +206,12 @@ end
|
||||
|
||||
function ActivateFile(filename)
|
||||
local name, suffix, value = filename:match('(.+):([lLpP]?)(%d+)$')
|
||||
if name and not wx.wxFileExists(filename) and wx.wxFileExists(name) then
|
||||
filename = name
|
||||
if name and not wx.wxFileExists(filename) then filename = name end
|
||||
|
||||
-- check if non-existing file can be loaded from the project folder;
|
||||
-- this is to handle: "project file" used on the command line
|
||||
if not wx.wxFileExists(filename) and not wx.wxIsAbsolutePath(filename) then
|
||||
filename = GetFullPathIfExists(ide:GetProject(), filename) or filename
|
||||
end
|
||||
|
||||
local opened = LoadFile(filename, nil, true)
|
||||
@@ -269,12 +279,14 @@ function SaveFile(editor, filePath)
|
||||
local ok, err = FileWrite(filePath, st)
|
||||
if ok then
|
||||
editor:SetSavePoint()
|
||||
local id = editor:GetId()
|
||||
openDocuments[id].filePath = filePath
|
||||
openDocuments[id].fileName = wx.wxFileName(filePath):GetFullName()
|
||||
openDocuments[id].modTime = GetFileModTime(filePath)
|
||||
SetDocumentModified(id, false, openDocuments[id].fileName)
|
||||
local doc = ide:GetDocument(editor)
|
||||
doc.filePath = filePath
|
||||
doc.fileName = wx.wxFileName(filePath):GetFullName()
|
||||
doc.modTime = GetFileModTime(filePath)
|
||||
doc:SetModified(false)
|
||||
doc:SetTabText(doc:GetFileName())
|
||||
SetAutoRecoveryMark()
|
||||
FileTreeMarkSelected(filePath)
|
||||
|
||||
PackageEventHandle("onEditorSave", editor)
|
||||
|
||||
@@ -329,7 +341,6 @@ function SaveFileAs(editor)
|
||||
|
||||
if cansave and SaveFile(editor, filePath) then
|
||||
SetEditorSelection() -- update title of the editor
|
||||
FileTreeMarkSelected(filePath)
|
||||
if ext ~= GetFileExt(filePath) then
|
||||
-- new extension, so setup new keywords and re-apply indicators
|
||||
editor:ClearDocumentStyle() -- remove styles from the document
|
||||
@@ -495,7 +506,7 @@ function SaveOnExit(allow_cancel)
|
||||
-- are still modified as not modified (they don't need to be saved)
|
||||
-- to keep their tab names correct
|
||||
for id, document in pairs(openDocuments) do
|
||||
if document.isModified then SetDocumentModified(id, false) end
|
||||
if document.isModified then document:SetModified(false) end
|
||||
end
|
||||
|
||||
return true
|
||||
@@ -583,9 +594,7 @@ function CompileProgram(editor, params)
|
||||
local func, err = loadstring(StripShebang(editor:GetText()), '@'..filePath)
|
||||
local line = not func and tonumber(err:match(":(%d+)%s*:")) or nil
|
||||
|
||||
if not params.keepoutput and ide.frame.menuBar:IsChecked(ID_CLEAROUTPUT) then
|
||||
ClearOutput()
|
||||
end
|
||||
if not params.keepoutput then ClearOutput() end
|
||||
|
||||
compileTotal = compileTotal + 1
|
||||
if func then
|
||||
@@ -731,20 +740,21 @@ function SetOpenTabs(params)
|
||||
DisplayOutputLn(TR("Found auto-recovery record and restored saved session."))
|
||||
end
|
||||
for _,doc in ipairs(nametab) do
|
||||
-- check for missing file is no content is stored
|
||||
-- check for missing file if no content is stored
|
||||
if doc.filepath and not doc.content and not wx.wxFileExists(doc.filepath) then
|
||||
DisplayOutputLn(TR("File '%s' is missing and can't be recovered.")
|
||||
:format(doc.filepath))
|
||||
else
|
||||
local editor = doc.filepath and LoadFile(doc.filepath,nil,true,true) or NewFile(doc.filename)
|
||||
local opendoc = openDocuments[editor:GetId()]
|
||||
local editor = (doc.filepath and LoadFile(doc.filepath,nil,true,true)
|
||||
or findUnusedEditor() or NewFile(doc.filename))
|
||||
local opendoc = ide:GetDocument(editor)
|
||||
if doc.content then
|
||||
editor:SetText(doc.content)
|
||||
if doc.filepath and opendoc.modTime and doc.modified < opendoc.modTime:GetTicks() then
|
||||
DisplayOutputLn(TR("File '%s' has more recent timestamp than restored '%s'; please review before saving.")
|
||||
:format(doc.filepath, doc.tabname))
|
||||
:format(doc.filepath, opendoc:GetTabText()))
|
||||
end
|
||||
SetDocumentModified(editor:GetId(), true)
|
||||
opendoc:SetModified(true)
|
||||
end
|
||||
editor:GotoPosDelayed(doc.cursorpos or 0)
|
||||
end
|
||||
@@ -756,21 +766,23 @@ end
|
||||
local function getOpenTabs()
|
||||
local opendocs = {}
|
||||
for _, document in pairs(ide.openDocuments) do
|
||||
local editor = document:GetEditor()
|
||||
table.insert(opendocs, {
|
||||
filename = document.fileName,
|
||||
filepath = document.filePath,
|
||||
tabname = notebook:GetPageText(document.index),
|
||||
modified = document.modTime and document.modTime:GetTicks(), -- get number of seconds
|
||||
content = document.isModified and document.editor:GetText() or nil,
|
||||
id = document.index, cursorpos = document.editor:GetCurrentPos()})
|
||||
filename = document:GetFileName(),
|
||||
filepath = document:GetFilePath(),
|
||||
tabname = document:GetTabText(),
|
||||
modified = document:GetModTime() and document:GetModTime():GetTicks(), -- get number of seconds
|
||||
content = document:IsModified() and editor:GetText() or nil,
|
||||
id = document:GetTabIndex(),
|
||||
cursorpos = editor:GetCurrentPos()})
|
||||
end
|
||||
|
||||
-- to keep tab order
|
||||
table.sort(opendocs, function(a,b) return (a.id < b.id) end)
|
||||
|
||||
local id = GetEditor()
|
||||
id = id and id:GetId()
|
||||
return opendocs, {index = (id and openDocuments[id].index or 0)}
|
||||
local ed = GetEditor()
|
||||
local doc = ed and ide:GetDocument(ed)
|
||||
return opendocs, {index = (doc and doc:GetTabIndex() or 0)}
|
||||
end
|
||||
|
||||
function SetAutoRecoveryMark()
|
||||
@@ -1007,9 +1019,12 @@ ide.editorApp:Connect(wx.wxEVT_ACTIVATE_APP,
|
||||
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
|
||||
wx.wxUpdateUIEvent.SetUpdateInterval(active and updateInterval or -1)
|
||||
-- disable UI refresh when app is inactive, but only when not running
|
||||
wx.wxUpdateUIEvent.SetUpdateInterval(
|
||||
(active or ide:GetLaunchedProcess()) and updateInterval or -1)
|
||||
|
||||
PackageEventHandle(active and "onAppFocusSet" or "onAppFocusLost", ide.editorApp)
|
||||
end
|
||||
|
||||
@@ -18,6 +18,7 @@ debugger.portnumber = ide.config.debugger.port or mobdebug.port -- the port # to
|
||||
debugger.watchCtrl = nil -- the watch ctrl that shows watch information
|
||||
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.hostname = ide.config.debugger.hostname or (function()
|
||||
local hostname = socket.dns.gethostname()
|
||||
@@ -37,9 +38,9 @@ local activate = {CHECKONLY = 1, NOREPORT = 2}
|
||||
|
||||
local function serialize(value, options) return mobdebug.line(value, options) end
|
||||
|
||||
local stackmaxlength = ide.config.debugger.stackmaxlength or 400
|
||||
local stackmaxnum = ide.config.debugger.stackmaxnum or 400
|
||||
local stackmaxlevel = ide.config.debugger.stackmaxlevel or 3
|
||||
local stackmaxlength = ide.config.debugger.maxdatalength
|
||||
local stackmaxnum = ide.config.debugger.maxdatanum
|
||||
local stackmaxlevel = ide.config.debugger.maxdatalevel
|
||||
local params = {comment = false, nocode = true, maxlevel = stackmaxlevel, maxnum = stackmaxnum}
|
||||
|
||||
local function fixUTF8(...)
|
||||
@@ -200,7 +201,7 @@ end
|
||||
|
||||
local function updateStackAndWatches()
|
||||
-- check if the debugger is running and may be waiting for a response.
|
||||
-- allow that request to finish, otherwise updateWatchesSync() does nothing.
|
||||
-- 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() updateWatchesSync() end)
|
||||
@@ -209,7 +210,7 @@ end
|
||||
|
||||
local function updateWatches(item)
|
||||
-- check if the debugger is running and may be waiting for a response.
|
||||
-- allow that request to finish, otherwise updateWatchesSync() does nothing.
|
||||
-- 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() updateWatchesSync(item) end)
|
||||
@@ -217,6 +218,12 @@ local function updateWatches(item)
|
||||
end
|
||||
|
||||
local function debuggerToggleViews(show)
|
||||
-- don't toggle if the current state is the same as the new one
|
||||
local shown = debugger.toggleview.shown
|
||||
if (show and shown) or (not show and not shown) then return end
|
||||
|
||||
debugger.toggleview.shown = nil
|
||||
|
||||
local mgr = ide.frame.uimgr
|
||||
local refresh = false
|
||||
for view, needed in pairs(debugger.toggleview) do
|
||||
@@ -238,6 +245,7 @@ local function debuggerToggleViews(show)
|
||||
end
|
||||
end
|
||||
if refresh then mgr:Update() end
|
||||
if show then debugger.toggleview.shown = true end
|
||||
end
|
||||
|
||||
local function killClient()
|
||||
@@ -303,6 +311,13 @@ local function activateDocument(file, line, activatehow)
|
||||
if line == math.huge then line = 1 end
|
||||
end
|
||||
local line = line - 1 -- editor line operations are zero-based
|
||||
if debugger.runtocursor then
|
||||
local ed, ln = unpack(debugger.runtocursor)
|
||||
if ed:GetId() == editor:GetId() and ln == line then
|
||||
DebuggerToggleBreakpoint(ed, ln)
|
||||
debugger.runtocursor = nil
|
||||
end
|
||||
end
|
||||
editor:MarkerAdd(line, CURRENT_LINE_MARKER)
|
||||
editor:Refresh() -- needed for background markers that don't get refreshed (wx2.9.5)
|
||||
|
||||
@@ -392,7 +407,7 @@ end
|
||||
|
||||
debugger.shell = function(expression, isstatement)
|
||||
-- check if the debugger is running and may be waiting for a response.
|
||||
-- allow that request to finish, otherwise updateWatchesSync() does nothing.
|
||||
-- allow that request to finish, otherwise this function does nothing.
|
||||
if debugger.running then debugger.update() end
|
||||
if debugger.server and not debugger.running
|
||||
and (not debugger.scratchpad or debugger.scratchpad.paused) then
|
||||
@@ -432,7 +447,7 @@ debugger.shell = function(expression, isstatement)
|
||||
if #values == 0 and (forceexpression or not isstatement) then
|
||||
values = {'nil'}
|
||||
end
|
||||
DisplayShell(fixUTF8(unpack(values)))
|
||||
DisplayShell(unpack(values))
|
||||
end
|
||||
|
||||
-- refresh Stack and Watch windows if executed a statement (and no err)
|
||||
@@ -555,9 +570,10 @@ debugger.listen = function(start)
|
||||
debugger.stats = {line = 0}
|
||||
debugger.missing = {}
|
||||
debugger.editormap = {}
|
||||
debugger.runtocursor = nil
|
||||
|
||||
local wxfilepath = GetEditorFileAndCurInfo()
|
||||
local startfile = options.startwith
|
||||
local startfile = ide:GetProjectStartFile() or options.startwith
|
||||
or (wxfilepath and wxfilepath:GetFullPath())
|
||||
|
||||
if not startfile then
|
||||
@@ -621,10 +637,14 @@ debugger.listen = function(start)
|
||||
.." "..TR("Compilation error")
|
||||
..":\n"..err)
|
||||
return debugger.terminate()
|
||||
elseif options.runstart and not debugger.scratchpad
|
||||
and stoppedAtBreakpoint(file, line) then
|
||||
activateDocument(file, line)
|
||||
options.runstart = false
|
||||
elseif options.runstart and not debugger.scratchpad then
|
||||
if stoppedAtBreakpoint(file, line) then
|
||||
activateDocument(file, line)
|
||||
options.runstart = false
|
||||
end
|
||||
elseif file and line then
|
||||
DisplayOutputLn(TR("Debugging suspended at '%s:%s' (couldn't activate the file).")
|
||||
:format(file, line))
|
||||
end
|
||||
elseif not (options.run or debugger.scratchpad) then
|
||||
local file, line, err = debugger.loadfile(startfile)
|
||||
@@ -633,7 +653,7 @@ debugger.listen = function(start)
|
||||
-- with start() method, which can't load new files
|
||||
-- if file and line are set, this indicates option #2
|
||||
if err then
|
||||
DisplayOutputLn(TR("Can't debug the script in the active editor window.")
|
||||
DisplayOutputLn(TR("Can't start debugging for '%s'."):format(startfile)
|
||||
.." "..TR("Compilation error")
|
||||
..":\n"..err)
|
||||
return debugger.terminate()
|
||||
@@ -671,9 +691,8 @@ debugger.listen = function(start)
|
||||
end
|
||||
|
||||
if not activated then
|
||||
DisplayOutputLn(TR("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.")
|
||||
:format(file))
|
||||
return debugger.terminate()
|
||||
DisplayOutputLn(TR("Debugging suspended at '%s:%s' (couldn't activate the file).")
|
||||
:format(file, line))
|
||||
end
|
||||
|
||||
-- debugger may still be available for scratchpad,
|
||||
@@ -681,7 +700,11 @@ debugger.listen = function(start)
|
||||
debugger.scratchable = ide.interpreter.scratchextloop ~= nil
|
||||
else
|
||||
debugger.scratchable = true
|
||||
activateDocument(startfile, 0) -- find the appropriate line
|
||||
local activated = activateDocument(startfile, 0) -- find the appropriate line
|
||||
if not activated then
|
||||
DisplayOutputLn(TR("Debugging suspended at '%s:%s' (couldn't activate the file).")
|
||||
:format(startfile, '?'))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -707,6 +730,11 @@ debugger.listen = function(start)
|
||||
activateDocument(file, line)
|
||||
end
|
||||
end
|
||||
|
||||
-- refresh toolbar and menus in case the main app is not active
|
||||
RequestAttention()
|
||||
ide:GetMainFrame():UpdateWindowUI(wx.wxUPDATE_UI_FROMIDLE)
|
||||
ide:GetToolBar():UpdateWindowUI(wx.wxUPDATE_UI_FROMIDLE)
|
||||
end)
|
||||
debugger.listening = server
|
||||
end
|
||||
@@ -739,9 +767,11 @@ debugger.handle = function(command, server, options)
|
||||
return file, line, err
|
||||
end
|
||||
|
||||
debugger.exec = function(command)
|
||||
debugger.exec = function(command, func)
|
||||
if debugger.server and not debugger.running then
|
||||
copas.addthread(function ()
|
||||
-- execute a custom function (if any) in the context of this thread
|
||||
if type(func) == 'function' then func() end
|
||||
local out
|
||||
local attempts = 0
|
||||
while true do
|
||||
@@ -777,7 +807,7 @@ debugger.exec = function(command)
|
||||
-- If this happens, stop and report allowing users to set
|
||||
-- breakpoints and step through.
|
||||
if debugger.breaking then
|
||||
DisplayOutputLn(TR("Debugging suspended at %s:%s (couldn't activate the file).")
|
||||
DisplayOutputLn(TR("Debugging suspended at '%s:%s' (couldn't activate the file).")
|
||||
:format(file, line))
|
||||
updateStackAndWatches()
|
||||
return
|
||||
@@ -869,6 +899,12 @@ do
|
||||
end
|
||||
end
|
||||
|
||||
local function isemptyline(editor, line)
|
||||
local text = editor:GetLine(line-1)
|
||||
return not text:find("%S")
|
||||
or (text:find("^%s*%-%-") ~= nil and text:find("^%s*%-%-%[=*%[") == nil)
|
||||
end
|
||||
|
||||
debugger.terminate = function()
|
||||
if debugger.server then
|
||||
if debugger.pid then -- if there is PID, try local kill
|
||||
@@ -884,6 +920,42 @@ debugger.trace = function()
|
||||
debugger.loop = true
|
||||
debugger.exec("step")
|
||||
end
|
||||
debugger.runto = function(editor, line)
|
||||
-- check if the location is valid for a breakpoint
|
||||
if isemptyline(editor, line+1) then return end
|
||||
|
||||
local ed, ln = unpack(debugger.runtocursor or {})
|
||||
local same = ed and ln and ed:GetId() == editor:GetId() and ln == line
|
||||
|
||||
-- check if there is already a breakpoint in the "run to" location;
|
||||
-- if so, don't mark the location as "run to" as it will stop there anyway
|
||||
if bit.band(editor:MarkerGet(line), BREAKPOINT_MARKER_VALUE) > 0
|
||||
and not same then
|
||||
debugger.runtocursor = nil
|
||||
debugger.run()
|
||||
return
|
||||
end
|
||||
|
||||
-- save the location of the breakpoint
|
||||
debugger.runtocursor = {editor, line}
|
||||
-- set breakpoint and execute run
|
||||
debugger.exec("run", function()
|
||||
-- if run-to-cursor location is already set, then remove the breakpoint,
|
||||
-- but only if this location is different
|
||||
if ed and ln and not same then
|
||||
DebuggerToggleBreakpoint(ed, ln)
|
||||
debugger.wait()
|
||||
end
|
||||
if not same then
|
||||
DebuggerToggleBreakpoint(editor, line)
|
||||
debugger.wait()
|
||||
end
|
||||
end)
|
||||
end
|
||||
debugger.wait = function()
|
||||
-- wait for all results to come back
|
||||
while debugger.running do debugger.update() end
|
||||
end
|
||||
debugger.over = function() debugger.exec("over") end
|
||||
debugger.out = function() debugger.exec("out") end
|
||||
debugger.run = function() debugger.exec("run") end
|
||||
@@ -951,7 +1023,8 @@ end
|
||||
local function debuggerCreateStackWindow()
|
||||
local stackCtrl = 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_HIDE_ROOT)
|
||||
wx.wxTR_LINES_AT_ROOT + wx.wxTR_HAS_BUTTONS + wx.wxTR_SINGLE
|
||||
+ wx.wxTR_HIDE_ROOT + wx.wxNO_BORDER)
|
||||
|
||||
debugger.stackCtrl = stackCtrl
|
||||
|
||||
@@ -1025,7 +1098,7 @@ local function debuggerCreateWatchWindow()
|
||||
local watchCtrl = 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_HIDE_ROOT + wx.wxTR_EDIT_LABELS)
|
||||
+ wx.wxTR_HIDE_ROOT + wx.wxTR_EDIT_LABELS + wx.wxNO_BORDER)
|
||||
|
||||
debugger.watchCtrl = watchCtrl
|
||||
|
||||
@@ -1251,6 +1324,10 @@ function DebuggerStop(resetpid)
|
||||
local lines = TR("traced %d instruction", debugger.stats.line):format(debugger.stats.line)
|
||||
DisplayOutputLn(TR("Debugging session completed (%s)."):format(lines))
|
||||
nameOutputTab(debugger.pid and TR("Output (running)") or TR("Output"))
|
||||
if debugger.runtocursor then
|
||||
local ed, ln = unpack(debugger.runtocursor)
|
||||
DebuggerToggleBreakpoint(ed, ln)
|
||||
end
|
||||
else
|
||||
-- it's possible that the application couldn't start, or that the
|
||||
-- debugger in the application didn't start, which means there is
|
||||
@@ -1268,13 +1345,19 @@ local function debuggerMakeFileName(editor)
|
||||
end
|
||||
|
||||
function DebuggerToggleBreakpoint(editor, line)
|
||||
local markers = editor:MarkerGet(line)
|
||||
local filePath = debugger.editormap and debugger.editormap[editor]
|
||||
or debuggerMakeFileName(editor)
|
||||
if bit.band(markers, BREAKPOINT_MARKER_VALUE) > 0 then
|
||||
if bit.band(editor:MarkerGet(line), BREAKPOINT_MARKER_VALUE) > 0 then
|
||||
-- if there is pending "run-to-cursor" call at this location, remove it
|
||||
local ed, ln = unpack(debugger.runtocursor or {})
|
||||
local same = ed and ln and ed:GetId() == editor:GetId() and ln == line
|
||||
if same then debugger.runtocursor = nil end
|
||||
|
||||
editor:MarkerDelete(line, BREAKPOINT_MARKER)
|
||||
if debugger.server then debugger.breakpoint(filePath, line+1, false) end
|
||||
else
|
||||
if isemptyline(editor, line+1) then return end
|
||||
|
||||
editor:MarkerAdd(line, BREAKPOINT_MARKER)
|
||||
if debugger.server then debugger.breakpoint(filePath, line+1, true) end
|
||||
end
|
||||
@@ -1302,7 +1385,7 @@ function DebuggerRefreshScratchpad()
|
||||
debugger.scratchpad.running = now
|
||||
end
|
||||
else
|
||||
local clear = ide.frame.menuBar:IsChecked(ID_CLEAROUTPUT)
|
||||
local clear = ide:GetMenuBar():IsChecked(ID_CLEAROUTPUT)
|
||||
local filePath = debuggerMakeFileName(scratchpadEditor)
|
||||
|
||||
-- wrap into a function call to make "return" to work with scratchpad
|
||||
@@ -1321,7 +1404,7 @@ function DebuggerRefreshScratchpad()
|
||||
debugger.scratchpad.updated = false
|
||||
debugger.scratchpad.runs = (debugger.scratchpad.runs or 0) + 1
|
||||
|
||||
if clear then ClearOutput() end
|
||||
if clear then ClearOutput(true) end
|
||||
|
||||
-- the code can be running in two ways under scratchpad:
|
||||
-- 1. controlled by the application, requires stopper (most apps)
|
||||
|
||||
@@ -11,6 +11,7 @@ local notebook = ide.frame.notebook
|
||||
local edcfg = ide.config.editor
|
||||
local styles = ide.config.styles
|
||||
local unpack = table.unpack or unpack
|
||||
local q = EscapeMagic
|
||||
|
||||
local margin = { LINENUMBER = 0, MARKER = 1, FOLD = 2 }
|
||||
local linenummask = "99999"
|
||||
@@ -207,17 +208,6 @@ function GetEditorFileAndCurInfo(nochecksave)
|
||||
return fn,info
|
||||
end
|
||||
|
||||
-- Set if the document is modified and update the notebook page text
|
||||
function SetDocumentModified(id, modified, text)
|
||||
local modpref, doc = '* ', openDocuments[id]
|
||||
if not doc then return end
|
||||
local pageText = text or notebook:GetPageText(doc.index):gsub("^"..EscapeMagic(modpref), "")
|
||||
|
||||
if modified then pageText = modpref..pageText end
|
||||
openDocuments[id].isModified = modified
|
||||
notebook:SetPageText(doc.index, pageText)
|
||||
end
|
||||
|
||||
function EditorAutoComplete(editor)
|
||||
if not (editor and editor.spec) then return end
|
||||
|
||||
@@ -240,8 +230,8 @@ function EditorAutoComplete(editor)
|
||||
lt = lt:gsub("%b()","")
|
||||
lt = lt:gsub("%b{}","")
|
||||
lt = lt:gsub("%b[]",".0")
|
||||
-- match from starting brace
|
||||
lt = lt:match("[^%[%(%{%s,]*$")
|
||||
-- remove everything that can't be auto-completed
|
||||
lt = lt:match("[%w_"..q(editor.spec.sep).."]*$")
|
||||
|
||||
-- know now which string is to be completed
|
||||
local userList = CreateAutoCompList(editor, lt, pos)
|
||||
@@ -376,7 +366,7 @@ function EditorCallTip(editor, pos, x, y)
|
||||
-- don't activate if the window itself is not active (in the background)
|
||||
if not ide.frame:IsActive() then return end
|
||||
|
||||
local var, funccall = getValAtPosition(editor, pos)
|
||||
local var, funccall = editor:ValueFromPosition(pos)
|
||||
-- if this is a value type rather than a function/method call, then use
|
||||
-- full match to avoid calltip about coroutine.status for "status" vars
|
||||
local tip = GetTipInfo(editor, funccall or var, false, not funccall)
|
||||
@@ -659,9 +649,8 @@ end
|
||||
-- ----------------------------------------------------------------------------
|
||||
-- Create an editor
|
||||
function CreateEditor(bare)
|
||||
local editor = wxstc.wxStyledTextCtrl(notebook, editorID,
|
||||
wx.wxDefaultPosition, wx.wxSize(0, 0),
|
||||
wx.wxBORDER_NONE)
|
||||
local editor = ide:CreateStyledTextCtrl(notebook, editorID,
|
||||
wx.wxDefaultPosition, wx.wxSize(0, 0), wx.wxBORDER_NONE)
|
||||
|
||||
editorID = editorID + 1 -- increment so they're always unique
|
||||
|
||||
@@ -785,14 +774,12 @@ function CreateEditor(bare)
|
||||
editor:AutoCompStops([[ \n\t=-+():.,;*/!"'$%&~'#°^@?´`<>][|}{]])
|
||||
end
|
||||
|
||||
function editor:GotoPosEnforcePolicy(pos)
|
||||
self:GotoPos(pos)
|
||||
self:EnsureVisibleEnforcePolicy(self:LineFromPosition(pos))
|
||||
end
|
||||
|
||||
function editor:GetTokenList() return self.tokenlist end
|
||||
function editor:ResetTokenList() self.tokenlist = {}; return self.tokenlist end
|
||||
|
||||
function editor:SetupKeywords(...) return SetupKeywords(self, ...) end
|
||||
function editor:ValueFromPosition(pos) return getValAtPosition(self, pos) end
|
||||
|
||||
-- GotoPos should work by itself, but it doesn't (wx 2.9.5).
|
||||
-- This is likely because the editor window hasn't been refreshed yet,
|
||||
-- so its LinesOnScreen method returns 0/-1, which skews the calculations.
|
||||
@@ -821,8 +808,6 @@ function CreateEditor(bare)
|
||||
end
|
||||
end
|
||||
|
||||
function editor:SetupKeywords(...) return SetupKeywords(self, ...) end
|
||||
|
||||
if bare then return editor end -- bare editor doesn't have any event handlers
|
||||
|
||||
editor.ev = {}
|
||||
@@ -869,6 +854,14 @@ function CreateEditor(bare)
|
||||
local firstLine = editor:LineFromPosition(event:GetPosition())
|
||||
if not editor:GetFoldExpanded(firstLine) then editor:ToggleFold(firstLine) end
|
||||
end
|
||||
|
||||
-- hide calltip/auto-complete after undo/redo/delete
|
||||
local undodelete = (wxstc.wxSTC_MOD_DELETETEXT
|
||||
+ wxstc.wxSTC_PERFORMED_UNDO + wxstc.wxSTC_PERFORMED_REDO)
|
||||
if bit.band(evtype, undodelete) ~= 0 then
|
||||
if editor:CallTipActive() then editor:CallTipCancel() end
|
||||
if editor:AutoCompActive() then editor:AutoCompCancel() end
|
||||
end
|
||||
|
||||
if ide.config.acandtip.nodynwords then return end
|
||||
-- only required to track changes
|
||||
@@ -1041,12 +1034,14 @@ function CreateEditor(bare)
|
||||
|
||||
editor:Connect(wxstc.wxEVT_STC_SAVEPOINTREACHED,
|
||||
function ()
|
||||
SetDocumentModified(editor:GetId(), false)
|
||||
local doc = ide:GetDocument(editor)
|
||||
if doc then doc:SetModified(false) end
|
||||
end)
|
||||
|
||||
editor:Connect(wxstc.wxEVT_STC_SAVEPOINTLEFT,
|
||||
function ()
|
||||
SetDocumentModified(editor:GetId(), true)
|
||||
local doc = ide:GetDocument(editor)
|
||||
if doc then doc:SetModified(true) end
|
||||
end)
|
||||
|
||||
-- "updateStatusText" should be called in UPDATEUI event, but it creates
|
||||
@@ -1060,7 +1055,11 @@ function CreateEditor(bare)
|
||||
PackageEventHandle("onEditorPainted", editor, event)
|
||||
|
||||
if ide.osname == 'Windows' then
|
||||
updateStatusText(editor)
|
||||
-- STC_PAINTED is called on multiple editors when they point to
|
||||
-- the same document; only update status for the active one
|
||||
if notebook:GetSelection() == notebook:GetPageIndex(editor) then
|
||||
updateStatusText(editor)
|
||||
end
|
||||
|
||||
if edcfg.usewrap ~= true and editor:AutoCompActive() then
|
||||
-- showing auto-complete list leaves artifacts on the screen,
|
||||
@@ -1075,6 +1074,8 @@ function CreateEditor(bare)
|
||||
local alreadyProcessed = 0
|
||||
editor:Connect(wxstc.wxEVT_STC_UPDATEUI,
|
||||
function (event)
|
||||
PackageEventHandle("onEditorUpdateUI", editor, event)
|
||||
|
||||
-- some of UPDATEUI events are triggered by blinking cursor, and since
|
||||
-- there are no changes, the rest of the processing can be skipped;
|
||||
-- the reason for `alreadyProcessed` is that it is not possible
|
||||
@@ -1090,8 +1091,6 @@ function CreateEditor(bare)
|
||||
end
|
||||
alreadyProcessed = alreadyProcessed + 1
|
||||
|
||||
PackageEventHandle("onEditorUpdateUI", editor, event)
|
||||
|
||||
if ide.osname ~= 'Windows' then updateStatusText(editor) end
|
||||
|
||||
editor:GotoPosDelayed()
|
||||
@@ -1137,7 +1136,7 @@ function CreateEditor(bare)
|
||||
and not event:ShiftDown() and not event:MetaDown() then
|
||||
local point = event:GetPosition()
|
||||
local pos = editor:PositionFromPointClose(point.x, point.y)
|
||||
local value = pos ~= wxstc.wxSTC_INVALID_POSITION and getValAtPosition(editor, pos) or nil
|
||||
local value = pos ~= wxstc.wxSTC_INVALID_POSITION and editor:ValueFromPosition(pos) or nil
|
||||
local instances = value and indicateFindInstances(editor, value, pos+1)
|
||||
if instances and instances[0] then
|
||||
navigateToPosition(editor, pos, instances[0]-1, #value)
|
||||
@@ -1292,7 +1291,7 @@ function CreateEditor(bare)
|
||||
-- only activate selection of instances on Ctrl/Cmd-DoubleClick
|
||||
if event:GetModifiers() == wx.wxMOD_CONTROL then
|
||||
local pos = event:GetPosition()
|
||||
local value = pos ~= wxstc.wxSTC_INVALID_POSITION and getValAtPosition(editor, pos) or nil
|
||||
local value = pos ~= wxstc.wxSTC_INVALID_POSITION and editor:ValueFromPosition(pos) or nil
|
||||
local instances = value and indicateFindInstances(editor, value, pos+1)
|
||||
if instances and (instances[0] or #instances > 0) then
|
||||
selectAllInstances(instances, value, pos)
|
||||
@@ -1323,7 +1322,7 @@ function CreateEditor(bare)
|
||||
function (event)
|
||||
local point = editor:ScreenToClient(event:GetPosition())
|
||||
pos = editor:PositionFromPointClose(point.x, point.y)
|
||||
value = pos ~= wxstc.wxSTC_INVALID_POSITION and getValAtPosition(editor, pos) or nil
|
||||
value = pos ~= wxstc.wxSTC_INVALID_POSITION and editor:ValueFromPosition(pos) or nil
|
||||
instances = value and indicateFindInstances(editor, value, pos+1)
|
||||
|
||||
local occurrences = (not instances or #instances == 0) and ""
|
||||
|
||||
@@ -11,15 +11,20 @@ ide.filetree = {
|
||||
projdir = "",
|
||||
projdirlist = {},
|
||||
projdirpartmap = {},
|
||||
projtree = nil,
|
||||
imglist = ide:CreateImageList("PROJECT", "FOLDER", "FILE-KNOWN", "FILE-NORMAL"),
|
||||
settings = {extensionignore = {}},
|
||||
projtreeCtrl = nil,
|
||||
imglist = ide:CreateImageList("PROJECT",
|
||||
"FOLDER", "FILE-KNOWN", "FILE-NORMAL", "FILE-NORMAL-START",
|
||||
"FOLDER-MAPPED"),
|
||||
settings = {extensionignore = {}, startfile = {}, mapped = {}},
|
||||
}
|
||||
local filetree = ide.filetree
|
||||
local iscaseinsensitive = wx.wxFileName("A"):SameAs(wx.wxFileName("a"))
|
||||
local pathsep = GetPathSeparator()
|
||||
local q = EscapeMagic
|
||||
local image = { DIRECTORY = 0, FILEKNOWN = 1, FILEOTHER = 2 }
|
||||
local image = {
|
||||
DIRECTORY = 0, FILEKNOWN = 1, FILEOTHER = 2, FILEOTHERSTART = 3,
|
||||
DIRECTORYMAPPED = 4,
|
||||
}
|
||||
|
||||
do
|
||||
local settings = ide:AddPackage('core.filetree', {}):GetSettings()
|
||||
@@ -31,6 +36,15 @@ end
|
||||
-- generic tree
|
||||
-- ------------
|
||||
|
||||
local function getIcon(name, isdir)
|
||||
local startfile = GetFullPathIfExists(FileTreeGetDir(),
|
||||
filetree.settings.startfile[FileTreeGetDir()])
|
||||
local known = GetSpec(GetFileExt(name))
|
||||
local icon = isdir and image.DIRECTORY or known and image.FILEKNOWN or image.FILEOTHER
|
||||
if startfile and startfile == name then icon = image.FILEOTHERSTART end
|
||||
return icon
|
||||
end
|
||||
|
||||
local function treeAddDir(tree,parent_id,rootdir)
|
||||
local items = {}
|
||||
local item, cookie = tree:GetFirstChild(parent_id)
|
||||
@@ -41,14 +55,27 @@ local function treeAddDir(tree,parent_id,rootdir)
|
||||
|
||||
local cache = {}
|
||||
local curr
|
||||
local files = FileSysGetRecursive(rootdir)
|
||||
local dirmapped = {}
|
||||
if tree:IsRoot(parent_id) then
|
||||
local mapped = filetree.settings.mapped[FileTreeGetDir()] or {}
|
||||
table.sort(mapped)
|
||||
-- insert into files at the sorted order
|
||||
for i, v in ipairs(mapped) do
|
||||
table.insert(files, i, v)
|
||||
dirmapped[v] = true
|
||||
end
|
||||
end
|
||||
|
||||
for _, file in ipairs(FileSysGetRecursive(rootdir)) do
|
||||
for _, file in ipairs(files) do
|
||||
local name, dir = file:match("([^"..pathsep.."]+)("..pathsep.."?)$")
|
||||
local isdir = #dir>0
|
||||
local ext = GetFileExt(name)
|
||||
if isdir or not filetree.settings.extensionignore[ext] then
|
||||
local known = GetSpec(ext)
|
||||
local icon = isdir and image.DIRECTORY or known and image.FILEKNOWN or image.FILEOTHER
|
||||
if isdir or not filetree.settings.extensionignore[GetFileExt(name)] then
|
||||
local icon = getIcon(file, isdir)
|
||||
|
||||
-- keep full name for the mapped directories
|
||||
if dirmapped[file] then name, icon = file, image.DIRECTORYMAPPED end
|
||||
|
||||
local item = items[name .. icon]
|
||||
if item then -- existing item
|
||||
-- keep deleting items until we find item
|
||||
@@ -145,8 +172,10 @@ local function treeSetConnectorsAndIcons(tree)
|
||||
local function isIt(item, imgtype) return tree:GetItemImage(item) == imgtype end
|
||||
|
||||
function tree:IsDirectory(item_id) return isIt(item_id, image.DIRECTORY) end
|
||||
function tree:IsDirMapped(item_id) return isIt(item_id, image.DIRECTORYMAPPED) end
|
||||
function tree:IsFileKnown(item_id) return isIt(item_id, image.FILEKNOWN) end
|
||||
function tree:IsFileOther(item_id) return isIt(item_id, image.FILEOTHER) end
|
||||
function tree:IsFileStart(item_id) return isIt(item_id, image.FILEOTHERSTART) end
|
||||
function tree:IsRoot(item_id) return not tree:GetItemParent(item_id):IsOk() end
|
||||
|
||||
function tree:FindItem(match)
|
||||
@@ -204,7 +233,7 @@ local function treeSetConnectorsAndIcons(tree)
|
||||
end
|
||||
|
||||
-- refresh the folder
|
||||
if (tree:IsDirectory(item_id)) then
|
||||
if (tree:IsDirectory(item_id) or tree:IsDirMapped(item_id)) then
|
||||
if wx.wxDirExists(name) then treeAddDir(tree,item_id,name)
|
||||
else refreshAncestors(tree:GetItemParent(item_id)) end -- stale content
|
||||
else -- open file
|
||||
@@ -213,14 +242,41 @@ local function treeSetConnectorsAndIcons(tree)
|
||||
end
|
||||
end
|
||||
|
||||
local function unMapDir(dir)
|
||||
local project = FileTreeGetDir()
|
||||
local mapped = filetree.settings.mapped[project] or {}
|
||||
for k, m in ipairs(mapped) do
|
||||
if m == dir then table.remove(mapped, k) end
|
||||
end
|
||||
filetree.settings.mapped[project] = mapped
|
||||
refreshAncestors(tree:GetRootItem())
|
||||
end
|
||||
local function mapDir()
|
||||
local project = FileTreeGetDir()
|
||||
local dirPicker = wx.wxDirDialog(ide.frame, TR("Choose a directory to map"),
|
||||
project ~= "" and project or wx.wxGetCwd(), wx.wxDIRP_DIR_MUST_EXIST)
|
||||
if dirPicker:ShowModal(true) ~= wx.wxID_OK then return end
|
||||
local dir = wx.wxFileName.DirName(FixDir(dirPicker:GetPath())):GetFullPath()
|
||||
local mapped = filetree.settings.mapped[project] or {}
|
||||
for _, m in ipairs(mapped) do
|
||||
if m == dir then return end -- already on the list
|
||||
end
|
||||
table.insert(mapped, dir)
|
||||
filetree.settings.mapped[project] = mapped
|
||||
refreshAncestors(tree:GetRootItem())
|
||||
end
|
||||
|
||||
local empty = ""
|
||||
local function renameItem(itemsrc, target)
|
||||
local isdir = tree:GetItemImage(itemsrc) == image.DIRECTORY
|
||||
local isdir = tree:IsDirectory(itemsrc)
|
||||
local isnew = tree:GetItemText(itemsrc) == empty
|
||||
local source = tree:GetItemFullName(itemsrc)
|
||||
local fn = wx.wxFileName(target)
|
||||
|
||||
if wx.wxFileName(source):SameAs(fn) then return false end
|
||||
-- check if the target is the same as the source;
|
||||
-- SameAs check is not used here as "Test" and "test" are the same
|
||||
-- on case insensitive systems, but need to be allowed in renaming.
|
||||
if source == target then return end
|
||||
|
||||
local docs = {}
|
||||
if not isnew then -- find if source is already opened in the editor
|
||||
@@ -237,6 +293,7 @@ local function treeSetConnectorsAndIcons(tree)
|
||||
|
||||
-- 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
|
||||
|
||||
if not fn:Mkdir(tonumber(755,8), wx.wxPATH_MKDIR_FULL) then
|
||||
@@ -284,7 +341,13 @@ local function treeSetConnectorsAndIcons(tree)
|
||||
return true
|
||||
end
|
||||
local function deleteItem(item_id)
|
||||
local isdir = tree:GetItemImage(item_id) == image.DIRECTORY
|
||||
-- if delete is for mapped directory, unmap it instead
|
||||
if tree:IsDirMapped(item_id) then
|
||||
unMapDir(tree:GetItemText(item_id))
|
||||
return
|
||||
end
|
||||
|
||||
local isdir = tree:IsDirectory(item_id)
|
||||
local source = tree:GetItemFullName(item_id)
|
||||
|
||||
if isdir and FileDirHasContent(source..pathsep) then return false end
|
||||
@@ -320,9 +383,12 @@ local function treeSetConnectorsAndIcons(tree)
|
||||
tree:ActivateItem(event:GetItem())
|
||||
end)
|
||||
|
||||
-- save configuration and refresh the tree
|
||||
local function saveSettingsAndRefresh()
|
||||
local function saveSettings()
|
||||
ide:AddPackage('core.filetree', {}):SetSettings(filetree.settings)
|
||||
end
|
||||
|
||||
-- refresh the tree
|
||||
local function refreshChildren()
|
||||
tree:RefreshChildren()
|
||||
-- now mark the current file (if it was previously disabled)
|
||||
local editor = ide:GetEditor()
|
||||
@@ -331,7 +397,7 @@ local function treeSetConnectorsAndIcons(tree)
|
||||
|
||||
-- handle context menu
|
||||
local function addItem(item_id, name, img)
|
||||
local isdir = tree:GetItemImage(item_id) == image.DIRECTORY
|
||||
local isdir = tree:IsDirectory(item_id)
|
||||
local parent = isdir and item_id or tree:GetItemParent(item_id)
|
||||
if isdir then tree:Expand(item_id) end -- expand to populate if needed
|
||||
|
||||
@@ -344,6 +410,25 @@ local function treeSetConnectorsAndIcons(tree)
|
||||
return item
|
||||
end
|
||||
|
||||
local function unsetStartFile()
|
||||
local project = FileTreeGetDir()
|
||||
local startfile = filetree.settings.startfile[project]
|
||||
filetree.settings.startfile[project] = nil
|
||||
if startfile then
|
||||
local item_id = tree:FindItem(startfile)
|
||||
if item_id and item_id:IsOk() then
|
||||
tree:SetItemImage(item_id, getIcon(tree:GetItemFullName(item_id)))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function setStartFile(item_id)
|
||||
local project = FileTreeGetDir()
|
||||
local startfile = tree:GetItemFullName(item_id):gsub(project, "")
|
||||
filetree.settings.startfile[project] = startfile
|
||||
tree:SetItemImage(item_id, getIcon(tree:GetItemFullName(item_id)))
|
||||
end
|
||||
|
||||
tree:Connect(ID_NEWFILE, wx.wxEVT_COMMAND_MENU_SELECTED,
|
||||
function()
|
||||
tree:EditLabel(addItem(tree:GetSelection(), empty, image.FILEOTHER))
|
||||
@@ -391,12 +476,35 @@ local function treeSetConnectorsAndIcons(tree)
|
||||
function()
|
||||
local ext = GetFileExt(tree:GetItemText(tree:GetSelection()))
|
||||
filetree.settings.extensionignore[ext] = true
|
||||
saveSettingsAndRefresh()
|
||||
saveSettings()
|
||||
refreshChildren()
|
||||
end)
|
||||
tree:Connect(ID_SHOWEXTENSIONALL, wx.wxEVT_COMMAND_MENU_SELECTED,
|
||||
function()
|
||||
filetree.settings.extensionignore = {}
|
||||
saveSettingsAndRefresh()
|
||||
saveSettings()
|
||||
refreshChildren()
|
||||
end)
|
||||
tree:Connect(ID_SETSTARTFILE, wx.wxEVT_COMMAND_MENU_SELECTED,
|
||||
function()
|
||||
unsetStartFile()
|
||||
setStartFile(tree:GetSelection())
|
||||
saveSettings()
|
||||
end)
|
||||
tree:Connect(ID_UNSETSTARTFILE, wx.wxEVT_COMMAND_MENU_SELECTED,
|
||||
function()
|
||||
unsetStartFile()
|
||||
saveSettings()
|
||||
end)
|
||||
tree:Connect(ID_MAPDIRECTORY, wx.wxEVT_COMMAND_MENU_SELECTED,
|
||||
function()
|
||||
mapDir()
|
||||
saveSettings()
|
||||
end)
|
||||
tree:Connect(ID_UNMAPDIRECTORY, wx.wxEVT_COMMAND_MENU_SELECTED,
|
||||
function()
|
||||
unMapDir(tree:GetItemText(tree:GetSelection()))
|
||||
saveSettings()
|
||||
end)
|
||||
|
||||
tree:Connect(wx.wxEVT_COMMAND_TREE_ITEM_MENU,
|
||||
@@ -409,6 +517,7 @@ local function treeSetConnectorsAndIcons(tree)
|
||||
or TR("&Rename"))
|
||||
local fname = tree:GetItemText(item_id)
|
||||
local ext = GetFileExt(fname)
|
||||
local startfile = filetree.settings.startfile[FileTreeGetDir()]
|
||||
local menu = wx.wxMenu {
|
||||
{ ID_NEWFILE, TR("New &File") },
|
||||
{ ID_NEWDIRECTORY, TR("&New Directory") },
|
||||
@@ -418,6 +527,11 @@ local function treeSetConnectorsAndIcons(tree)
|
||||
{ },
|
||||
{ ID_HIDEEXTENSION, TR("Hide '.%s' Files"):format(ext) },
|
||||
{ },
|
||||
{ ID_SETSTARTFILE, TR("Set As Start File") },
|
||||
{ ID_UNSETSTARTFILE, TR("Unset '%s' As Start File"):format(startfile or "<none>") },
|
||||
{ },
|
||||
{ ID_MAPDIRECTORY, TR("Map Directory...") },
|
||||
{ ID_UNMAPDIRECTORY, TR("Unmap Directory") },
|
||||
{ ID_OPENEXTENSION, TR("Open With Default Program") },
|
||||
{ ID_COPYFULLPATH, TR("Copy Full Path") },
|
||||
{ ID_SHOWLOCATION, TR("Show Location") },
|
||||
@@ -445,11 +559,15 @@ local function treeSetConnectorsAndIcons(tree)
|
||||
local projectdirectory = wx.wxMenuItem(menu, ID_PROJECTDIR,
|
||||
TR("Project Directory"), TR("Set the project directory to be used"),
|
||||
wx.wxITEM_NORMAL, projectdirectorymenu)
|
||||
menu:Insert(9, projectdirectory)
|
||||
menu:Insert(14, projectdirectory)
|
||||
FileTreeProjectListUpdate(projectdirectorymenu, 0)
|
||||
|
||||
-- disable Delete on non-empty directories
|
||||
local isdir = tree:GetItemImage(item_id) == image.DIRECTORY
|
||||
local isdir = tree:IsDirectory(item_id)
|
||||
local ismapped = tree:IsDirMapped(item_id)
|
||||
menu:Destroy(ismapped and ID_MAPDIRECTORY or ID_UNMAPDIRECTORY)
|
||||
if not startfile then menu:Destroy(ID_UNSETSTARTFILE) end
|
||||
if ismapped then menu:Enable(ID_RENAMEFILE, false) end
|
||||
if isdir then
|
||||
local source = tree:GetItemFullName(item_id)
|
||||
menu:Enable(ID_DELETEFILE, not FileDirHasContent(source..pathsep))
|
||||
@@ -460,6 +578,7 @@ local function treeSetConnectorsAndIcons(tree)
|
||||
menu:Enable(ID_OPENEXTENSION, ft and #ft:GetOpenCommand("") > 0)
|
||||
menu:Enable(ID_HIDEEXTENSION, not filetree.settings.extensionignore[ext])
|
||||
end
|
||||
menu:Enable(ID_SETSTARTFILE, tree:IsFileOther(item_id) or tree:IsFileKnown(item_id))
|
||||
menu:Enable(ID_SHOWEXTENSION, next(filetree.settings.extensionignore) ~= nil)
|
||||
|
||||
PackageEventHandle("onMenuFiletree", menu, tree, event)
|
||||
@@ -490,7 +609,7 @@ local function treeSetConnectorsAndIcons(tree)
|
||||
end
|
||||
|
||||
if item_id and bit.band(flags, mask) > 0 then
|
||||
if tree:GetItemImage(item_id) == image.DIRECTORY then
|
||||
if tree:IsDirectory(item_id) then
|
||||
tree:Toggle(item_id)
|
||||
tree:SelectItem(item_id)
|
||||
else
|
||||
@@ -507,7 +626,7 @@ local function treeSetConnectorsAndIcons(tree)
|
||||
function (event)
|
||||
local itemsrc = event:GetItem()
|
||||
parent = tree:GetItemParent(itemsrc)
|
||||
if not itemsrc:IsOk() then event:Veto() end
|
||||
if not itemsrc:IsOk() or tree:IsDirMapped(itemsrc) then event:Veto() end
|
||||
end)
|
||||
tree:Connect(wx.wxEVT_COMMAND_TREE_END_LABEL_EDIT,
|
||||
function (event)
|
||||
@@ -564,12 +683,11 @@ end
|
||||
local projtree = wx.wxTreeCtrl(ide.frame, wx.wxID_ANY,
|
||||
wx.wxDefaultPosition, wx.wxDefaultSize,
|
||||
wx.wxTR_HAS_BUTTONS + wx.wxTR_SINGLE + wx.wxTR_LINES_AT_ROOT
|
||||
+ wx.wxTR_EDIT_LABELS)
|
||||
+ wx.wxTR_EDIT_LABELS + wx.wxNO_BORDER)
|
||||
projtree:SetFont(ide.font.fNormal)
|
||||
filetree.projtree = projtree
|
||||
filetree.projtreeCtrl = projtree
|
||||
|
||||
local projnotebook = ide.frame.projnotebook
|
||||
projnotebook:AddPage(projtree, TR("Project"), true)
|
||||
ide:GetProjectNotebook():AddPage(projtree, TR("Project"), true)
|
||||
|
||||
-- proj connectors
|
||||
-- ---------------
|
||||
|
||||
@@ -109,20 +109,24 @@ function findReplace:GetSelectedString()
|
||||
end
|
||||
|
||||
local function shake(window, shakes, duration, vigour)
|
||||
shakes = shakes or 4
|
||||
duration = duration or 0.5
|
||||
vigour = vigour or 0.05
|
||||
|
||||
if not window then return end
|
||||
|
||||
local delay = math.floor(duration/shakes/2)
|
||||
shakes = shakes or 3
|
||||
duration = duration or 0.2 -- in seconds
|
||||
vigour = vigour or 0.03
|
||||
|
||||
local function oneshake(x, y, delay)
|
||||
local s = os.clock()
|
||||
window:Move(x, y)
|
||||
window:Update() window:Refresh() -- force refresh
|
||||
wx.wxMilliSleep(math.max(0, math.floor((delay-(os.clock()-s))*1000)))
|
||||
end
|
||||
local delay = duration/shakes/2
|
||||
local position = window:GetPosition() -- get current position
|
||||
local deltax = window:GetSize():GetWidth()*vigour
|
||||
for _ = 1, shakes do
|
||||
window:Move(position:GetX()-deltax, position:GetY())
|
||||
wx.wxMilliSleep(delay)
|
||||
window:Move(position:GetX()+deltax, position:GetY())
|
||||
wx.wxMilliSleep(delay)
|
||||
oneshake(position:GetX()-deltax, position:GetY(), delay)
|
||||
oneshake(position:GetX()+deltax, position:GetY(), delay)
|
||||
end
|
||||
window:Move(position) -- restore position
|
||||
end
|
||||
@@ -147,7 +151,7 @@ function findReplace:FindString(reverse)
|
||||
findReplace.foundString = true
|
||||
local start = editor:GetTargetStart()
|
||||
local finish = editor:GetTargetEnd()
|
||||
editor:EnsureVisibleEnforcePolicy(editor:LineFromPosition(start))
|
||||
editor:ShowPosEnforcePolicy(finish)
|
||||
editor:SetSelection(start, finish)
|
||||
ide.frame:SetStatusText("")
|
||||
end
|
||||
@@ -229,8 +233,7 @@ function findReplace:ReplaceString(fReplaceAll, inFileRegister)
|
||||
editor:TargetFromSelection()
|
||||
-- check if there is anything selected as well as the user can
|
||||
-- move the cursor after successful search
|
||||
if findReplace.foundString
|
||||
and editor:GetSelectionStart() ~= editor:GetSelectionEnd()
|
||||
if editor:GetSelectionStart() ~= editor:GetSelectionEnd()
|
||||
-- check that the current selection matches what's being searched for
|
||||
and editor:SearchInTarget(findReplace.findText) ~= NOTFOUND then
|
||||
local start = editor:GetSelectionStart()
|
||||
@@ -308,10 +311,11 @@ end
|
||||
function findReplace:RunInFiles(replace)
|
||||
if not findReplace:HasText() then return end
|
||||
|
||||
findReplace.oveditor = wxstc.wxStyledTextCtrl(findReplace.dialog, wx.wxID_ANY,
|
||||
findReplace.oveditor = ide:CreateStyledTextCtrl(findReplace.dialog, wx.wxID_ANY,
|
||||
wx.wxDefaultPosition, wx.wxSize(1,1), wx.wxBORDER_NONE)
|
||||
findReplace.occurrences = 0
|
||||
|
||||
ClearOutput()
|
||||
ActivateOutput()
|
||||
|
||||
local startdir = findReplace.filedirText
|
||||
@@ -500,7 +504,7 @@ function findReplace:createDialog(replace,infiles)
|
||||
mainSizer:SetSizeHints(findDialog)
|
||||
findDialog:SetSizer(mainSizer)
|
||||
|
||||
local function TransferDataFromWindow()
|
||||
local function transferDataFromWindow()
|
||||
findReplace.fWholeWord = wholeWordCheckBox:GetValue()
|
||||
findReplace.fMatchCase = matchCaseCheckBox:GetValue()
|
||||
findReplace.fWrap = wrapAroundCheckBox:GetValue()
|
||||
@@ -545,7 +549,7 @@ function findReplace:createDialog(replace,infiles)
|
||||
|
||||
findDialog:Connect(ID_FIND_NEXT, wx.wxEVT_COMMAND_BUTTON_CLICKED,
|
||||
function()
|
||||
TransferDataFromWindow()
|
||||
transferDataFromWindow()
|
||||
if (findReplace.infiles) then
|
||||
for _, b in pairs(findReplace.buttons) do b:Disable() end
|
||||
findReplace:RunInFiles()
|
||||
@@ -558,7 +562,7 @@ function findReplace:createDialog(replace,infiles)
|
||||
|
||||
findDialog:Connect(ID_REPLACE, wx.wxEVT_COMMAND_BUTTON_CLICKED,
|
||||
function(event)
|
||||
TransferDataFromWindow()
|
||||
transferDataFromWindow()
|
||||
event:Skip()
|
||||
if findReplace.replace then
|
||||
if (findReplace.infiles) then
|
||||
@@ -577,7 +581,7 @@ function findReplace:createDialog(replace,infiles)
|
||||
if replaceAllButton then
|
||||
findDialog:Connect(ID_REPLACE_ALL, wx.wxEVT_COMMAND_BUTTON_CLICKED,
|
||||
function(event)
|
||||
TransferDataFromWindow()
|
||||
transferDataFromWindow()
|
||||
event:Skip()
|
||||
findReplace:ReplaceString(true)
|
||||
end)
|
||||
|
||||
@@ -394,7 +394,7 @@ local function createBottomNotebook(frame)
|
||||
bottomnotebook:Connect(wxaui.wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE,
|
||||
function (event) event:Veto() end)
|
||||
|
||||
local errorlog = wxstc.wxStyledTextCtrl(bottomnotebook, wx.wxID_ANY,
|
||||
local errorlog = ide:CreateStyledTextCtrl(bottomnotebook, wx.wxID_ANY,
|
||||
wx.wxDefaultPosition, wx.wxDefaultSize, wx.wxBORDER_NONE)
|
||||
|
||||
errorlog:Connect(wx.wxEVT_CONTEXT_MENU,
|
||||
@@ -415,11 +415,9 @@ local function createBottomNotebook(frame)
|
||||
end)
|
||||
|
||||
errorlog:Connect(ID_CLEAROUTPUT, wx.wxEVT_COMMAND_MENU_SELECTED,
|
||||
function(event)
|
||||
ClearOutput()
|
||||
end)
|
||||
function(event) ClearOutput(true) end)
|
||||
|
||||
local shellbox = wxstc.wxStyledTextCtrl(bottomnotebook, wx.wxID_ANY,
|
||||
local shellbox = ide:CreateStyledTextCtrl(bottomnotebook, wx.wxID_ANY,
|
||||
wx.wxDefaultPosition, wx.wxDefaultSize, wx.wxBORDER_NONE)
|
||||
|
||||
bottomnotebook:AddPage(errorlog, TR("Output"), true)
|
||||
@@ -480,9 +478,12 @@ do
|
||||
Bottom():Layer(1):Position(1):PaneBorder(false):
|
||||
CloseButton(true):MaximizeButton(false):PinButton(true))
|
||||
|
||||
for _, uimgr in pairs {mgr, frame.notebook:GetAuiManager(),
|
||||
frame.bottomnotebook:GetAuiManager(), frame.projnotebook:GetAuiManager()} do
|
||||
uimgr:GetArtProvider():SetMetric(wxaui.wxAUI_DOCKART_SASH_SIZE, 2)
|
||||
if type(ide.config.bordersize) == 'number' then
|
||||
for _, uimgr in pairs {mgr, frame.notebook:GetAuiManager(),
|
||||
frame.bottomnotebook:GetAuiManager(), frame.projnotebook:GetAuiManager()} do
|
||||
uimgr:GetArtProvider():SetMetric(wxaui.wxAUI_DOCKART_SASH_SIZE,
|
||||
ide.config.bordersize)
|
||||
end
|
||||
end
|
||||
|
||||
for _, nb in pairs {frame.bottomnotebook, frame.projnotebook} do
|
||||
|
||||
@@ -26,8 +26,12 @@ 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()
|
||||
@@ -61,6 +65,11 @@ ID_BOOKMARK = NewID()
|
||||
ID_BOOKMARKTOGGLE = NewID()
|
||||
ID_BOOKMARKNEXT = NewID()
|
||||
ID_BOOKMARKPREV = NewID()
|
||||
ID_NAVIGATE = NewID()
|
||||
ID_NAVIGATETOFILE = NewID()
|
||||
ID_NAVIGATETOLINE = NewID()
|
||||
ID_NAVIGATETOSYMBOL = NewID()
|
||||
ID_NAVIGATETOMETHOD = NewID()
|
||||
-- don't use wx.wxID_PREFERENCES to avoid merging with OSX app menu, because
|
||||
-- Apple guidelines describe Preferences as a "normal" item without submenus.
|
||||
ID_PREFERENCES = NewID()
|
||||
@@ -75,7 +84,6 @@ ID_FINDSELECTPREV = NewID()
|
||||
ID_REPLACE = NewID()
|
||||
ID_FINDINFILES = NewID()
|
||||
ID_REPLACEINFILES = NewID()
|
||||
ID_GOTOLINE = NewID()
|
||||
ID_SORT = NewID()
|
||||
-- View menu
|
||||
ID_VIEWFILETREE = NewID()
|
||||
@@ -105,6 +113,7 @@ ID_DETACHDEBUG = NewID()
|
||||
ID_STEP = NewID()
|
||||
ID_STEPOVER = NewID()
|
||||
ID_STEPOUT = NewID()
|
||||
ID_RUNTO = NewID()
|
||||
ID_BREAK = NewID()
|
||||
ID_TRACE = NewID()
|
||||
ID_CLEAROUTPUT = NewID()
|
||||
@@ -134,11 +143,10 @@ ID_QUICKEVAL = NewID()
|
||||
ID_ADDTOSCRATCHPAD = NewID()
|
||||
|
||||
local ids = {}
|
||||
function ID (name)
|
||||
ids[name] = ids[name] or NewID()
|
||||
return ids[name]
|
||||
function IDgen (name)
|
||||
ids[name] = ids[name] or NewID()
|
||||
return ids[name]
|
||||
end
|
||||
function IDget (name) return ids[name] end
|
||||
|
||||
function IDget (name)
|
||||
return ids[name]
|
||||
end
|
||||
ID = setmetatable({}, ide.proto.ID)
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
---------------------------------------------------------
|
||||
|
||||
local M, LA, LI, T = {}
|
||||
local FAST = true
|
||||
|
||||
local function init()
|
||||
if LA then return end
|
||||
@@ -16,11 +15,6 @@ local function init()
|
||||
LA = require "luainspect.ast"
|
||||
LI = require "luainspect.init"
|
||||
T = require "luainspect.types"
|
||||
|
||||
if FAST then
|
||||
LI.eval_comments = function () end
|
||||
LI.infer_values = function () end
|
||||
end
|
||||
end
|
||||
|
||||
function M.pos2line(pos)
|
||||
@@ -33,13 +27,20 @@ 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
|
||||
|
||||
if FAST then
|
||||
LI.inspect(ast, nil, src)
|
||||
LA.ensure_parents_marked(ast)
|
||||
else
|
||||
if ide.config.staticanalyzer.infervalue then
|
||||
local tokenlist = LA.ast_to_tokenlist(ast, src)
|
||||
LI.inspect(ast, tokenlist, src)
|
||||
LI.mark_related_keywords(ast, tokenlist, src)
|
||||
else
|
||||
-- stub out LI functions that depend on tokenlist,
|
||||
-- which is not built in the "fast" mode
|
||||
local ec, iv = LI.eval_comments, LI.infer_values
|
||||
LI.eval_comments, LI.infer_values = function() end, function() end
|
||||
|
||||
LI.inspect(ast, nil, src)
|
||||
LA.ensure_parents_marked(ast)
|
||||
|
||||
LI.eval_comments, LI.infer_values = ec, iv
|
||||
end
|
||||
|
||||
local globinit = {}
|
||||
@@ -73,7 +74,10 @@ function M.show_warnings(top_ast, globinit)
|
||||
end
|
||||
local function known(o) return not T.istype[o] end
|
||||
local function index(f) -- build abc.def.xyz name recursively
|
||||
return (f[1].tag == 'Id' and f[1][1] or index(f[1])) .. '.' .. f[2][1] end
|
||||
if not f or f.tag ~= 'Index' or not f[1] or not f[2] then return end
|
||||
local main = f[1].tag == 'Id' and f[1][1] or index(f[1])
|
||||
return main and type(f[2][1]) == "string" and (main .. '.' .. f[2][1]) or nil
|
||||
end
|
||||
local globseen, isseen, fieldseen = globinit or {}, {}, {}
|
||||
LA.walk(top_ast, function(ast)
|
||||
M.ast = ast
|
||||
@@ -126,7 +130,7 @@ function M.show_warnings(top_ast, globinit)
|
||||
line, path)
|
||||
end
|
||||
else
|
||||
if parent.tag == 'Localrec' then -- local function foo...
|
||||
if parent and parent.tag == 'Localrec' then -- local function foo...
|
||||
warn("unused local function '" .. name .. "'", line, path)
|
||||
else
|
||||
warn("unused local variable '" .. name .. "'; "..
|
||||
@@ -134,16 +138,24 @@ function M.show_warnings(top_ast, globinit)
|
||||
end
|
||||
end
|
||||
end
|
||||
-- added check for FAST as ast.seevalue relies on value evaluation,
|
||||
-- added check for "fast" mode as ast.seevalue relies on value evaluation,
|
||||
-- which is very slow even on simple and short scripts
|
||||
if not FAST and ast.isfield and not(known(ast.seevalue.value) and ast.seevalue.value ~= nil) then
|
||||
if ide.config.staticanalyzer.infervalue and ast.isfield
|
||||
and not(known(ast.seevalue.value) and ast.seevalue.value ~= nil) then
|
||||
if not fieldseen[name] then
|
||||
fieldseen[name] = true
|
||||
local parent = ast.parent
|
||||
and (" in '"..index(ast.parent):gsub("%."..name.."$","").."'")
|
||||
local var = index(ast.parent)
|
||||
local parent = ast.parent and var
|
||||
and (" in '"..var:gsub("%."..name.."$","").."'")
|
||||
or ""
|
||||
warn("first use of unknown field '" .. name .."'"..parent,
|
||||
ast.lineinfo and tostring(ast.lineinfo.first):match('|L(%d+)'), path)
|
||||
|
||||
local tblref = ast.parent and ast.parent[1]
|
||||
local localparam = (tblref and tblref.localdefinition
|
||||
and tblref.localdefinition.isparam)
|
||||
if not localparam then
|
||||
warn("first use of unknown field '" .. name .."'"..parent,
|
||||
ast.lineinfo and tostring(ast.lineinfo.first):match('|L(%d+)'), path)
|
||||
end
|
||||
end
|
||||
elseif ast.tag == 'Id' and not ast.localdefinition and not ast.definedglobal then
|
||||
if not globseen[name] then
|
||||
@@ -194,7 +206,7 @@ end
|
||||
local debugger = ide.debugger
|
||||
|
||||
local function analyzeProgram(editor)
|
||||
if ide:GetMenuBar():IsChecked(ID_CLEAROUTPUT) then ClearOutput() end
|
||||
ClearOutput()
|
||||
DisplayOutput("Analyzing the source code")
|
||||
frame:Update()
|
||||
|
||||
@@ -203,13 +215,13 @@ local function analyzeProgram(editor)
|
||||
local filePath = doc:GetFilePath() or doc:GetFileName()
|
||||
local warn, err = M.warnings_from_string(editorText, filePath)
|
||||
if err then -- report compilation error
|
||||
DisplayOutput((": not completed.\n%s\n"):format(cleanError(err)))
|
||||
DisplayOutputLn((": not completed.\n%s"):format(cleanError(err)))
|
||||
return false
|
||||
end
|
||||
|
||||
DisplayOutput((": %s warning%s.\n")
|
||||
DisplayOutputLn((": %s warning%s.")
|
||||
:format(#warn > 0 and #warn or 'no', #warn == 1 and '' or 's'))
|
||||
DisplayOutputNoMarker(table.concat(warn, "\n") .. "\n")
|
||||
DisplayOutputNoMarker(table.concat(warn, "\n") .. (#warn > 0 and "\n" or ""))
|
||||
|
||||
return true -- analyzed ok
|
||||
end
|
||||
|
||||
@@ -53,6 +53,10 @@ ide.config.keymap = {
|
||||
[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",
|
||||
@@ -62,7 +66,6 @@ ide.config.keymap = {
|
||||
[ID_REPLACE] = "Ctrl-R",
|
||||
[ID_FINDINFILES] = "Ctrl-Shift-F",
|
||||
[ID_REPLACEINFILES] = "Ctrl-Shift-R",
|
||||
[ID_GOTOLINE] = "Ctrl-G",
|
||||
[ID_SORT] = "",
|
||||
-- View menu
|
||||
[ID_VIEWFILETREE] = "Ctrl-Shift-P",
|
||||
@@ -85,6 +88,7 @@ ide.config.keymap = {
|
||||
[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",
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
---------------------------------------------------------
|
||||
|
||||
local ide = ide
|
||||
|
||||
-- ---------------------------------------------------------------------------
|
||||
-- Create the Edit menu and attach the callback functions
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ local uimgr = frame.uimgr
|
||||
|
||||
local debugTab = {
|
||||
{ ID_RUN, TR("&Run")..KSC(ID_RUN), TR("Execute the current project/file") },
|
||||
{ ID_RUNNOW, TR("Run as Scratchpad")..KSC(ID_RUNNOW), TR("Execute the current project/file and keep updating the code to see immediate results"), wx.wxITEM_CHECK },
|
||||
{ ID_RUNNOW, TR("Run As Scratchpad")..KSC(ID_RUNNOW), TR("Execute the current project/file and keep updating the code to see immediate results"), wx.wxITEM_CHECK },
|
||||
{ ID_COMPILE, TR("&Compile")..KSC(ID_COMPILE), TR("Compile the current file") },
|
||||
{ ID_STARTDEBUG, TR("Start &Debugging")..KSC(ID_STARTDEBUG), TR("Start or continue debugging") },
|
||||
{ ID_ATTACHDEBUG, TR("&Start Debugger Server")..KSC(ID_ATTACHDEBUG), TR("Allow external process to start debugging"), wx.wxITEM_CHECK },
|
||||
@@ -26,6 +26,7 @@ local debugTab = {
|
||||
{ ID_STEP, TR("Step &Into")..KSC(ID_STEP), TR("Step into") },
|
||||
{ ID_STEPOVER, TR("Step &Over")..KSC(ID_STEPOVER), TR("Step over") },
|
||||
{ ID_STEPOUT, TR("Step O&ut")..KSC(ID_STEPOUT), TR("Step out of the current function") },
|
||||
{ ID_RUNTO, TR("Run To Cursor")..KSC(ID_RUNTO), TR("Run to cursor") },
|
||||
{ ID_TRACE, TR("Tr&ace")..KSC(ID_TRACE), TR("Trace execution showing each executed line") },
|
||||
{ ID_BREAK, TR("&Break")..KSC(ID_BREAK), TR("Break execution at the next executed line of code") },
|
||||
{ },
|
||||
@@ -121,7 +122,10 @@ end
|
||||
-- Project directory handling
|
||||
|
||||
function ProjectUpdateProjectDir(projdir,skiptree)
|
||||
-- strip trailing spaces as this may create issues with "path/ " on Windows
|
||||
projdir = projdir:gsub("%s+$","")
|
||||
local dir = wx.wxFileName.DirName(FixDir(projdir))
|
||||
dir:Normalize() -- turn into absolute path if needed
|
||||
if not wx.wxDirExists(dir:GetFullPath()) then return end
|
||||
|
||||
projdir = dir:GetPath(wx.wxPATH_GET_VOLUME) -- no trailing slash
|
||||
@@ -129,9 +133,8 @@ function ProjectUpdateProjectDir(projdir,skiptree)
|
||||
ide.config.path.projectdir = projdir ~= "" and projdir or nil
|
||||
frame:SetStatusText(projdir)
|
||||
frame:SetTitle(ExpandPlaceholders(ide.config.format.apptitle))
|
||||
if (not skiptree) then
|
||||
ide.filetree:updateProjectDir(projdir)
|
||||
end
|
||||
if (not skiptree) then ide.filetree:updateProjectDir(projdir) end
|
||||
return true
|
||||
end
|
||||
|
||||
local function projChoose(event)
|
||||
@@ -144,13 +147,12 @@ local function projChoose(event)
|
||||
local filePicker = wx.wxDirDialog(frame, TR("Choose a project directory"),
|
||||
projectdir ~= "" and projectdir or wx.wxGetCwd(), wx.wxDIRP_DIR_MUST_EXIST)
|
||||
if filePicker:ShowModal(true) == wx.wxID_OK then
|
||||
ProjectUpdateProjectDir(filePicker:GetPath())
|
||||
return ProjectUpdateProjectDir(filePicker:GetPath())
|
||||
end
|
||||
return true
|
||||
return false
|
||||
end
|
||||
|
||||
frame:Connect(ID_PROJECTDIRCHOOSE, wx.wxEVT_COMMAND_MENU_SELECTED, projChoose)
|
||||
frame:Connect(ID_PROJECTDIRCHOOSE, wx.wxEVT_COMMAND_BUTTON_CLICKED, projChoose)
|
||||
|
||||
local function projFromFile(event)
|
||||
local editor = GetEditor()
|
||||
@@ -187,12 +189,12 @@ local function getNameToRun(skipcheck)
|
||||
return
|
||||
end
|
||||
|
||||
local id = editor:GetId()
|
||||
if not openDocuments[id].filePath then SetDocumentModified(id, true) end
|
||||
local doc = ide:GetDocument(editor)
|
||||
if not doc:GetFilePath() then doc:SetModified(true) end
|
||||
if not SaveIfModified(editor) then return end
|
||||
if ide.config.editor.saveallonrun then SaveAll(true) end
|
||||
|
||||
return wx.wxFileName(openDocuments[id].filePath)
|
||||
return wx.wxFileName(ide:GetProjectStartFile() or doc:GetFilePath())
|
||||
end
|
||||
|
||||
function ActivateOutput()
|
||||
@@ -210,7 +212,7 @@ function ActivateOutput()
|
||||
end
|
||||
|
||||
local function runInterpreter(wfilename, withdebugger)
|
||||
if ide.frame.menuBar:IsChecked(ID_CLEAROUTPUT) then ClearOutput() end
|
||||
ClearOutput()
|
||||
ActivateOutput()
|
||||
|
||||
ClearAllCurrentLineMarkers()
|
||||
@@ -360,6 +362,18 @@ frame:Connect(ID_DETACHDEBUG, wx.wxEVT_UPDATE_UI,
|
||||
and (not debugger.scratchpad))
|
||||
end)
|
||||
|
||||
frame:Connect(ID_RUNTO, wx.wxEVT_COMMAND_MENU_SELECTED,
|
||||
function ()
|
||||
local editor = GetEditor()
|
||||
debugger.runto(editor, editor:GetCurrentLine())
|
||||
end)
|
||||
frame:Connect(ID_RUNTO, wx.wxEVT_UPDATE_UI,
|
||||
function (event)
|
||||
local editor = GetEditor()
|
||||
event:Enable((debugger.server ~= nil) and (not debugger.running)
|
||||
and (editor ~= nil) and (not debugger.scratchpad))
|
||||
end)
|
||||
|
||||
frame:Connect(ID_STEP, wx.wxEVT_COMMAND_MENU_SELECTED,
|
||||
function () debugger.step() end)
|
||||
frame:Connect(ID_STEP, wx.wxEVT_UPDATE_UI,
|
||||
|
||||
@@ -4,26 +4,32 @@
|
||||
---------------------------------------------------------
|
||||
|
||||
local ide = ide
|
||||
-- Create the Search menu and attach the callback functions
|
||||
local q = EscapeMagic
|
||||
local unpack = table.unpack or unpack
|
||||
|
||||
local frame = ide.frame
|
||||
local menuBar = frame.menuBar
|
||||
|
||||
local findReplace = ide.findReplace
|
||||
|
||||
local findMenu = wx.wxMenu{
|
||||
{ ID_FIND, TR("&Find")..KSC(ID_FIND), TR("Find text") },
|
||||
{ ID_FINDNEXT, TR("Find &Next")..KSC(ID_FINDNEXT), TR("Find the next text occurrence") },
|
||||
{ ID_FINDPREV, TR("Find &Previous")..KSC(ID_FINDPREV), TR("Find the earlier text occurence") },
|
||||
{ ID_FINDSELECTNEXT, TR("Select and Find Next")..KSC(ID_FINDSELECTNEXT), TR("Select the word under cursor and find its next occurrence") },
|
||||
{ ID_FINDSELECTPREV, TR("Select and Find Previous")..KSC(ID_FINDSELECTPREV), TR("Select the word under cursor and find its previous occurrence") },
|
||||
{ ID_FINDSELECTNEXT, TR("Select And Find Next")..KSC(ID_FINDSELECTNEXT), TR("Select the word under cursor and find its next occurrence") },
|
||||
{ ID_FINDSELECTPREV, TR("Select And Find Previous")..KSC(ID_FINDSELECTPREV), TR("Select the word under cursor and find its previous occurrence") },
|
||||
{ ID_REPLACE, TR("&Replace")..KSC(ID_REPLACE), TR("Find and replace text") },
|
||||
{ },
|
||||
{ ID_FINDINFILES, TR("Find &In Files")..KSC(ID_FINDINFILES), TR("Find text in files") },
|
||||
{ ID_REPLACEINFILES, TR("Re&place In Files")..KSC(ID_REPLACEINFILES), TR("Find and replace text in files") },
|
||||
{ },
|
||||
{ ID_GOTOLINE, TR("&Go To Line...")..KSC(ID_GOTOLINE), TR("Go to a selected line") },
|
||||
}
|
||||
findMenu:Append(ID_NAVIGATE, TR("Navigate"), wx.wxMenu {
|
||||
{ ID_NAVIGATETOFILE, TR("Go To File...")..KSC(ID_NAVIGATETOFILE), TR("Go to file") },
|
||||
{ ID_NAVIGATETOLINE, TR("Go To Line...")..KSC(ID_NAVIGATETOLINE), TR("Go to line") },
|
||||
{ ID_NAVIGATETOSYMBOL, TR("Go To Symbol...")..KSC(ID_NAVIGATETOSYMBOL), TR("Go to symbol") },
|
||||
{ ID_NAVIGATETOMETHOD, TR("Insert Library Function...")..KSC(ID_NAVIGATETOMETHOD), TR("Find and insert library function") },
|
||||
})
|
||||
|
||||
menuBar:Append(findMenu, TR("&Search"))
|
||||
|
||||
local function onUpdateUISearchMenu(event) event:Enable(GetEditor() ~= nil) end
|
||||
@@ -56,7 +62,7 @@ frame:Connect(ID_FINDNEXT, wx.wxEVT_COMMAND_MENU_SELECTED,
|
||||
local selection = editor:GetMainSelection() + 1
|
||||
if selection >= editor:GetSelections() then selection = 0 end
|
||||
editor:SetMainSelection(selection)
|
||||
editor:EnsureCaretVisible()
|
||||
editor:ShowPosEnforcePolicy(editor:GetCurrentPos())
|
||||
else
|
||||
if findReplace:GetSelectedString() or findReplace:HasText() then
|
||||
findReplace:FindString()
|
||||
@@ -74,7 +80,7 @@ frame:Connect(ID_FINDPREV, wx.wxEVT_COMMAND_MENU_SELECTED,
|
||||
local selection = editor:GetMainSelection() - 1
|
||||
if selection < 0 then selection = editor:GetSelections() - 1 end
|
||||
editor:SetMainSelection(selection)
|
||||
editor:EnsureCaretVisible()
|
||||
editor:ShowPosEnforcePolicy(editor:GetCurrentPos())
|
||||
else
|
||||
if findReplace:GetSelectedString() or findReplace:HasText() then
|
||||
findReplace:FindString(true) -- search up
|
||||
@@ -129,20 +135,270 @@ frame:Connect(ID_FINDSELECTPREV, wx.wxEVT_COMMAND_MENU_SELECTED,
|
||||
end)
|
||||
frame:Connect(ID_FINDSELECTPREV, wx.wxEVT_UPDATE_UI, onUpdateUISearchMenu)
|
||||
|
||||
-------------------- Find replace end
|
||||
local markername = "commandbar.background"
|
||||
local mac = ide.osname == 'Macintosh'
|
||||
local win = ide.osname == 'Windows'
|
||||
local special = {SYMBOL = '@', LINE = ':', METHOD = ';'}
|
||||
local function navigateTo(default, selected)
|
||||
local styles = ide.config.styles
|
||||
local marker = ide:AddMarker(markername,
|
||||
wxstc.wxSTC_MARK_BACKGROUND, styles.text.fg, styles.caretlinebg.bg)
|
||||
|
||||
frame:Connect(ID_GOTOLINE, wx.wxEVT_COMMAND_MENU_SELECTED,
|
||||
function (event)
|
||||
local editor = GetEditor()
|
||||
local linecur = editor:LineFromPosition(editor:GetCurrentPos())
|
||||
local linemax = editor:LineFromPosition(editor:GetLength()) + 1
|
||||
local linenum = wx.wxGetNumberFromUser(TR("Enter line number"),
|
||||
"1 .. "..tostring(linemax),
|
||||
TR("Go To Line"),
|
||||
linecur, 1, linemax,
|
||||
frame)
|
||||
if linenum > 0 then
|
||||
editor:GotoLine(linenum-1)
|
||||
end
|
||||
local nb = ide:GetEditorNotebook()
|
||||
local selection = nb:GetSelection()
|
||||
local files, preview, origline, functions, methods
|
||||
|
||||
local function markLine(ed, toline)
|
||||
ed:MarkerDefine(ide:GetMarker(markername))
|
||||
ed:MarkerDeleteAll(marker)
|
||||
ed:MarkerAdd(toline-1, marker)
|
||||
-- store the original line if not stored yet
|
||||
origline = origline or (ed:GetCurrentLine()+1)
|
||||
ed:EnsureVisibleEnforcePolicy(toline-1)
|
||||
end
|
||||
|
||||
CommandBarShow({
|
||||
defaultText = default or "",
|
||||
selectedText = selected or "",
|
||||
onDone = function(t, enter, text)
|
||||
if not mac then nb:Freeze() end
|
||||
|
||||
-- delete all current line markers if any; restore line position
|
||||
local ed = ide:GetEditor()
|
||||
if ed and origline then
|
||||
ed:MarkerDeleteAll(marker)
|
||||
ed:EnsureVisibleEnforcePolicy(origline-1)
|
||||
end
|
||||
|
||||
local pindex = preview and nb:GetPageIndex(preview)
|
||||
if enter then
|
||||
local fline, sline, tabindex = unpack(t or {})
|
||||
local ed = ide:GetEditor()
|
||||
|
||||
-- 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
|
||||
-- insert selected method
|
||||
elseif text and text:find('^%s*'..special.METHOD) then
|
||||
if ed then -- clean up text and insert at the current location
|
||||
local method = sline
|
||||
local isfunc = methods.desc[method][1]:find(q(method).."%s*%(")
|
||||
local text = method .. (isfunc and "()" or "")
|
||||
local pos = ed:GetCurrentPos()
|
||||
ed:InsertText(pos, text)
|
||||
ed:EnsureVisibleEnforcePolicy(ed:LineFromPosition(pos))
|
||||
ed:GotoPos(pos + #method + (isfunc and 1 or 0))
|
||||
if isfunc then -- show the tooltip
|
||||
ide.frame:AddPendingEvent(wx.wxCommandEvent(
|
||||
wx.wxEVT_COMMAND_MENU_SELECTED, ID_SHOWTOOLTIP))
|
||||
end
|
||||
end
|
||||
-- set line position in the (current) editor if requested
|
||||
elseif text and text:find(special.LINE..'(%d+)%s*$') then
|
||||
local toline = tonumber(text:match(special.LINE..'(%d+)'))
|
||||
if toline and ed then
|
||||
ed:GotoLine(toline-1)
|
||||
ed:EnsureVisibleEnforcePolicy(toline-1)
|
||||
ed:SetFocus() -- in case the focus is on some other panel
|
||||
end
|
||||
elseif tabindex then -- switch to existing tab
|
||||
SetEditorSelection(tabindex)
|
||||
if pindex and pindex ~= tabindex then ClosePage(pindex) end
|
||||
-- load a new file (into preview if set)
|
||||
elseif sline or text then
|
||||
-- 1. use "text" if Ctrl/Cmd-Enter is used
|
||||
-- 2. otherwise use currently selected file
|
||||
-- 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
|
||||
if pindex then ClosePage(pindex) end
|
||||
end
|
||||
end
|
||||
else
|
||||
-- close preview
|
||||
if pindex then ClosePage(pindex) end
|
||||
-- restore original selection if canceled
|
||||
if nb:GetSelection() ~= selection then nb:SetSelection(selection) end
|
||||
end
|
||||
preview = nil
|
||||
if not mac then nb:Thaw() end
|
||||
end,
|
||||
onUpdate = function(text)
|
||||
local lines = {}
|
||||
local projdir = ide:GetProject()
|
||||
|
||||
-- delete all current line markers if any
|
||||
-- restore the original position if search text is updated
|
||||
local ed = ide:GetEditor()
|
||||
if ed and origline then ed:MarkerDeleteAll(marker) end
|
||||
|
||||
-- reset cached functions if no symbol search
|
||||
if text and not text:find(special.SYMBOL) then
|
||||
functions = nil
|
||||
if ed and origline then ed:EnsureVisibleEnforcePolicy(origline-1) end
|
||||
end
|
||||
-- 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 not functions then
|
||||
local funcs, nums = OutlineFunctions(ed), {}
|
||||
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
|
||||
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
|
||||
local func, score = unpack(item)
|
||||
topscore = topscore or score
|
||||
nums[func] = (nums[func] or 0) + 1
|
||||
local num = nums[func]
|
||||
if score > topscore / 4 and score > 1 then
|
||||
table.insert(lines, {("%2d %s"):format(score, func),
|
||||
functions.src[func..num], functions.pos[func..num]})
|
||||
end
|
||||
end
|
||||
else
|
||||
for n, name in ipairs(functions) do
|
||||
nums[name] = (nums[name] or 0) + 1
|
||||
local num = nums[name]
|
||||
lines[n] = {name, functions.src[name..num], functions.pos[name..num]}
|
||||
end
|
||||
end
|
||||
elseif ed and text and text:find('^%s*'..special.METHOD) then
|
||||
if not methods then
|
||||
methods = {desc = {}}
|
||||
local num = 1
|
||||
if ed.api and ed.api.tip and ed.api.tip.shortfinfoclass then
|
||||
for libname, lib in pairs(ed.api.tip.shortfinfoclass) do
|
||||
for method, val in pairs(lib) do
|
||||
local signature, desc = val:match('(.-)\n(.*)')
|
||||
local m = libname..'.'..method
|
||||
desc = desc and desc:gsub("\n", " ") or val
|
||||
methods[num] = m
|
||||
methods.desc[m] = {signature or (libname..'.'..method), desc}
|
||||
num = num + 1
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
local method = text:match(special.METHOD..'(.*)')
|
||||
if #method > 0 then
|
||||
local topscore
|
||||
for _, item in ipairs(CommandBarScoreItems(methods, method, 100)) do
|
||||
local method, score = unpack(item)
|
||||
topscore = topscore or score
|
||||
if score > topscore / 4 and score > 1 then
|
||||
table.insert(lines, { score, method })
|
||||
end
|
||||
end
|
||||
end
|
||||
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
|
||||
-- populate the list of files
|
||||
if not files then
|
||||
files = FileSysGetRecursive(projdir, true)
|
||||
for k = #files, 1, -1 do
|
||||
if IsDirectory(files[k]) then
|
||||
table.remove(files, k)
|
||||
else
|
||||
files[k] = files[k]:gsub("^"..q(projdir), "")
|
||||
end
|
||||
end
|
||||
end
|
||||
local topscore
|
||||
for _, item in ipairs(CommandBarScoreItems(files, text, 100)) do
|
||||
local file, score = unpack(item)
|
||||
topscore = topscore or score
|
||||
if score > topscore / 4 and score > 1 then
|
||||
table.insert(lines, {
|
||||
("%2d %s"):format(score, wx.wxFileName(file):GetFullName()),
|
||||
file,
|
||||
})
|
||||
end
|
||||
end
|
||||
else
|
||||
for _, doc in pairs(ide:GetDocuments()) do
|
||||
lines[doc:GetTabIndex()+1] = {doc:GetFileName(), doc:GetFilePath(), doc:GetTabIndex()}
|
||||
end
|
||||
end
|
||||
return lines
|
||||
end,
|
||||
onItem = function(t)
|
||||
if methods then
|
||||
local score, method = unpack(t)
|
||||
return ("%2d %s"):format(score, methods.desc[method][1]), methods.desc[method][2]
|
||||
else
|
||||
return unpack(t)
|
||||
end
|
||||
end,
|
||||
onSelection = function(t, text)
|
||||
local _, file, tabindex = unpack(t)
|
||||
if text and text:find(special.SYMBOL) then
|
||||
local ed = ide:GetEditor()
|
||||
if ed then markLine(ed, ed:LineFromPosition(tabindex-1)+1) end
|
||||
return
|
||||
elseif text and text:find(special.METHOD) then
|
||||
return
|
||||
end
|
||||
|
||||
if file then file = MergeFullPath(ide:GetProject(), file) end
|
||||
-- disabling event handlers for the notebook and the editor
|
||||
-- to minimize changes in the UI when editors are switched
|
||||
-- or files in the preview are updated.
|
||||
nb:SetEvtHandlerEnabled(false)
|
||||
local doc = file and ide:FindDocument(file)
|
||||
if doc and not tabindex then tabindex = doc:GetTabIndex() end
|
||||
if tabindex then
|
||||
local ed = nb:GetPage(tabindex)
|
||||
ed:SetEvtHandlerEnabled(false)
|
||||
if nb:GetSelection() ~= tabindex then nb:SetSelection(tabindex) end
|
||||
ed:SetEvtHandlerEnabled(true)
|
||||
elseif file then
|
||||
-- skip binary files with unknown extensions
|
||||
if #ide:GetKnownExtensions(GetFileExt(file)) > 0
|
||||
or not isBinary(FileRead(file, 2048)) then
|
||||
preview = preview or NewFile()
|
||||
preview:SetEvtHandlerEnabled(false)
|
||||
LoadFile(file, preview, true, true)
|
||||
preview:SetFocus()
|
||||
-- force refresh since the panel covers the editor on OSX/Linux
|
||||
-- this fixes the preview window not always redrawn on Linux
|
||||
if not win then preview:Update() preview:Refresh() end
|
||||
preview:SetEvtHandlerEnabled(true)
|
||||
elseif preview then
|
||||
ClosePage(nb:GetPageIndex(preview))
|
||||
preview = nil
|
||||
end
|
||||
end
|
||||
nb:SetEvtHandlerEnabled(true)
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
frame:Connect(ID_NAVIGATETOFILE, wx.wxEVT_COMMAND_MENU_SELECTED,
|
||||
function() navigateTo("") end)
|
||||
frame:Connect(ID_NAVIGATETOLINE, wx.wxEVT_COMMAND_MENU_SELECTED,
|
||||
function() navigateTo(special.LINE) end)
|
||||
frame:Connect(ID_NAVIGATETOMETHOD, wx.wxEVT_COMMAND_MENU_SELECTED,
|
||||
function() navigateTo(special.METHOD) end)
|
||||
frame:Connect(ID_NAVIGATETOSYMBOL, wx.wxEVT_COMMAND_MENU_SELECTED,
|
||||
function()
|
||||
local ed = GetEditor()
|
||||
navigateTo(special.SYMBOL, ed and ed:ValueFromPosition(ed:GetCurrentPos()))
|
||||
end)
|
||||
frame:Connect(ID_GOTOLINE, wx.wxEVT_UPDATE_UI, onUpdateUISearchMenu)
|
||||
|
||||
@@ -75,7 +75,7 @@ local function outlineRefresh(editor, force)
|
||||
caches[editor] = cache
|
||||
|
||||
-- add file
|
||||
local filename = ide:GetDocument(editor):GetFileName()
|
||||
local filename = ide:GetDocument(editor):GetTabText()
|
||||
local fileitem = cache.fileitem
|
||||
if not fileitem then
|
||||
local root = ctrl:GetRootItem()
|
||||
@@ -95,6 +95,7 @@ local function outlineRefresh(editor, force)
|
||||
do -- check if any changes in the cached function list
|
||||
local prevfuncs = cache.funcs or {}
|
||||
local nochange = #funcs == #prevfuncs
|
||||
local resort = {} -- items that need to be re-sorted
|
||||
if nochange then
|
||||
for n, func in ipairs(funcs) do
|
||||
func.item = prevfuncs[n].item -- carry over cached items
|
||||
@@ -103,6 +104,7 @@ local function outlineRefresh(editor, force)
|
||||
elseif nochange 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
|
||||
end
|
||||
if func.image ~= prevfuncs[n].image then
|
||||
ctrl:SetItemImage(prevfuncs[n].item, func.image)
|
||||
@@ -111,7 +113,12 @@ local function outlineRefresh(editor, force)
|
||||
end
|
||||
end
|
||||
cache.funcs = funcs -- set new cache as positions may change
|
||||
if nochange and not force then return end -- return if no visible changes
|
||||
if nochange and not force then -- return if no visible changes
|
||||
if outcfg.sort then -- resort items for all parents that have been modified
|
||||
for item in pairs(resort) do ctrl:SortChildren(item) end
|
||||
end
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
-- refresh the tree
|
||||
@@ -124,15 +131,20 @@ local function outlineRefresh(editor, force)
|
||||
ctrl:Freeze()
|
||||
ctrl:DeleteChildren(fileitem)
|
||||
local stack = {fileitem}
|
||||
local resort = {} -- items that need to be re-sorted
|
||||
for n, func in ipairs(funcs) do
|
||||
local depth = func.depth
|
||||
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
|
||||
end
|
||||
if outcfg.sort then -- resort items for all parents that have been modified
|
||||
for item in pairs(resort) do ctrl:SortChildren(item) end
|
||||
end
|
||||
ctrl:ExpandAllChildren(fileitem)
|
||||
-- scroll to the fileitem, but only if it's not a root item (as it's hidden)
|
||||
if fileitem:GetValue() ~= ctrl:GetRootItem():GetValue() then
|
||||
@@ -151,7 +163,7 @@ local function outlineCreateOutlineWindow()
|
||||
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_HIDE_ROOT)
|
||||
+ wx.wxTR_HIDE_ROOT + wx.wxNO_BORDER)
|
||||
|
||||
ide.outline.outlineCtrl = ctrl
|
||||
ide.timers.outline = wx.wxTimer(ctrl)
|
||||
@@ -220,7 +232,7 @@ local function outlineCreateOutlineWindow()
|
||||
|
||||
local layout = ide:GetSetting("/view", "uimgrlayout")
|
||||
if not layout or not layout:find("outlinepanel") then
|
||||
ide:AddPanelDocked(ide.frame.projnotebook, ctrl, "outlinepanel", TR("Outline"), reconfigure, false)
|
||||
ide:AddPanelDocked(ide:GetProjectNotebook(), ctrl, "outlinepanel", TR("Outline"), reconfigure, false)
|
||||
else
|
||||
ide:AddPanel(ctrl, "outlinepanel", TR("Outline"), reconfigure)
|
||||
end
|
||||
@@ -238,6 +250,16 @@ 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
|
||||
end
|
||||
|
||||
ide:AddPackage('core.outline', {
|
||||
-- remove the editor from the list
|
||||
onEditorClose = function(self, editor)
|
||||
@@ -255,8 +277,8 @@ ide:AddPackage('core.outline', {
|
||||
local fileitem = cache and cache.fileitem
|
||||
local doc = ide:GetDocument(editor)
|
||||
local ctrl = ide.outline.outlineCtrl
|
||||
if doc and fileitem and ctrl:GetItemText(fileitem) ~= doc:GetFileName() then
|
||||
ctrl:SetItemText(fileitem, doc:GetFileName())
|
||||
if doc and fileitem and ctrl:GetItemText(fileitem) ~= doc:GetTabText() then
|
||||
ctrl:SetItemText(fileitem, doc:GetTabText())
|
||||
end
|
||||
end,
|
||||
|
||||
@@ -267,15 +289,23 @@ ide:AddPackage('core.outline', {
|
||||
return
|
||||
end
|
||||
|
||||
local cache = caches[editor]
|
||||
local fileitem = cache and cache.fileitem
|
||||
local ctrl = ide.outline.outlineCtrl
|
||||
local itemname = ide:GetDocument(editor):GetTabText()
|
||||
|
||||
-- fix file name if it changed in the editor
|
||||
if fileitem and ctrl:GetItemText(fileitem) ~= itemname then
|
||||
ctrl:SetItemText(fileitem, itemname)
|
||||
end
|
||||
|
||||
-- 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 caches[editor] then
|
||||
if not cache and ide.config.outlineinactivity then
|
||||
ide.timers.outline:Start(ide.config.outlineinactivity*1000, wx.wxTIMER_ONE_SHOT)
|
||||
end
|
||||
|
||||
local cache = caches[editor]
|
||||
local fileitem = cache and cache.fileitem
|
||||
eachNode(function(ctrl, item)
|
||||
local found = fileitem and item:GetValue() == fileitem:GetValue()
|
||||
if not found and ctrl:IsBold(item) then
|
||||
@@ -284,7 +314,6 @@ ide:AddPackage('core.outline', {
|
||||
end
|
||||
end)
|
||||
|
||||
local ctrl = ide.outline.outlineCtrl
|
||||
if fileitem and not ctrl:IsBold(fileitem) then
|
||||
ctrl:SetItemBold(fileitem, true)
|
||||
ctrl:ExpandAllChildren(fileitem)
|
||||
|
||||
@@ -33,7 +33,8 @@ end
|
||||
|
||||
StylesApplyToEditor(ide.config.stylesoutshell,errorlog,ide.font.oNormal,ide.font.oItalic)
|
||||
|
||||
function ClearOutput()
|
||||
function ClearOutput(force)
|
||||
if not (force or ide:GetMenuBar():IsChecked(ID_CLEAROUTPUT)) then return end
|
||||
errorlog:SetReadOnly(false)
|
||||
errorlog:ClearAll()
|
||||
errorlog:SetReadOnly(true)
|
||||
|
||||
@@ -92,10 +92,14 @@ function ide:GetMainFrame() return self.frame end
|
||||
function ide:GetUIManager() return self.frame.uimgr end
|
||||
function ide:GetDocument(ed) return self.openDocuments[ed:GetId()] end
|
||||
function ide:GetDocuments() return self.openDocuments end
|
||||
function ide:GetKnownExtensions()
|
||||
local knownexts = {}
|
||||
function ide:GetKnownExtensions(ext)
|
||||
local knownexts, extmatch = {}, ext and ext:lower()
|
||||
for _, spec in pairs(ide.specs) do
|
||||
for _, ext in ipairs(spec.exts or {}) do table.insert(knownexts, ext) end
|
||||
for _, ext in ipairs(spec.exts or {}) do
|
||||
if not extmatch or extmatch == ext:lower() then
|
||||
table.insert(knownexts, ext)
|
||||
end
|
||||
end
|
||||
end
|
||||
return knownexts
|
||||
end
|
||||
@@ -151,13 +155,47 @@ 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: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]
|
||||
return MergeFullPath(projectdir, startfile), startfile
|
||||
end
|
||||
function ide:GetLaunchedProcess() return self.debugger and self.debugger.pid end
|
||||
function ide:GetProjectTree() return ide.filetree.projtree end
|
||||
function ide:GetProjectTree() return ide.filetree.projtreeCtrl end
|
||||
function ide:GetOutlineTree() return ide.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
|
||||
function ide:Yield() wx.wxYield() end
|
||||
function ide:CreateBareEditor() return CreateEditor(true) end
|
||||
function ide:CreateStyledTextCtrl(...)
|
||||
local editor = wxstc.wxStyledTextCtrl(...)
|
||||
function editor:GotoPosEnforcePolicy(pos)
|
||||
self:GotoPos(pos)
|
||||
self:EnsureVisibleEnforcePolicy(self:LineFromPosition(pos))
|
||||
end
|
||||
|
||||
local function getMarginWidth(editor)
|
||||
local width = 0
|
||||
for m = 0, 7 do width = width + editor:GetMarginWidth(m) end
|
||||
return width
|
||||
end
|
||||
|
||||
function editor:ShowPosEnforcePolicy(pos)
|
||||
local line = self:LineFromPosition(pos)
|
||||
self:EnsureVisibleEnforcePolicy(line)
|
||||
-- skip the rest if line wrapping is on
|
||||
if editor:GetWrapMode() ~= wxstc.wxSTC_WRAP_NONE then return end
|
||||
local xwidth = self:GetClientSize():GetWidth() - getMarginWidth(self)
|
||||
local xoffset = self:GetTextExtent(self:GetLine(line):sub(1, pos-self:PositionFromLine(line)+1))
|
||||
self:SetXOffset(xoffset > xwidth and xoffset-xwidth or 0)
|
||||
end
|
||||
|
||||
return editor
|
||||
end
|
||||
|
||||
function ide:LoadFile(...) return LoadFile(...) end
|
||||
|
||||
function ide:GetSetting(path, setting)
|
||||
local settings = self.settings
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
-- Copyright 2013-14 Paul Kulchenko, ZeroBrane LLC
|
||||
---------------------------------------------------------
|
||||
|
||||
local q = EscapeMagic
|
||||
local modpref = '* '
|
||||
|
||||
ide.proto.Document = {__index = {
|
||||
GetFileName = function(self) return self.fileName end,
|
||||
GetFilePath = function(self) return self.filePath end,
|
||||
@@ -9,9 +12,20 @@ ide.proto.Document = {__index = {
|
||||
GetEditor = function(self) return self.editor end,
|
||||
GetTabIndex = function(self) return self.index end,
|
||||
IsModified = function(self) return self.isModified end,
|
||||
SetModified = function(self, modified) SetDocumentModified(self.editor:GetId(), modified) end,
|
||||
SetTabText = function(self, text) SetDocumentModified(self.editor:GetId(), self.isModified, text) end,
|
||||
SetModified = function(self, modified)
|
||||
self.isModified = modified
|
||||
self:SetTabText()
|
||||
end,
|
||||
SetTabText = function(self, text)
|
||||
ide:GetEditorNotebook():SetPageText(self.index,
|
||||
(self.isModified and modpref or '')..(text or self:GetTabText()))
|
||||
end,
|
||||
GetTabText = function(self)
|
||||
if self.index == nil then return self.fileName end
|
||||
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
|
||||
}}
|
||||
|
||||
ide.proto.Plugin = {__index = {
|
||||
@@ -41,3 +55,8 @@ ide.proto.Debugger = {__index = {
|
||||
GetHostName = function(self) return self.hostname end,
|
||||
GetPortNumber = function(self) return self.portnumber end,
|
||||
}}
|
||||
|
||||
ide.proto.ID = {
|
||||
__index = function(t, id) return _G['ID_'..id] end,
|
||||
__call = function(t, id) return IDgen(id) end,
|
||||
}
|
||||
|
||||
@@ -4,6 +4,16 @@
|
||||
---------------------------------------------------------
|
||||
|
||||
local ide = ide
|
||||
local layoutlabel = {
|
||||
UIMANAGER = "uimgrlayout",
|
||||
NOTEBOOK = "nblayout",
|
||||
NOTEBOOKOUTPUT = "nbbtmlayout",
|
||||
NOTEBOOKPROJECT = "nbprojlayout",
|
||||
DOCKNOTEBOOK = "nbdocklayout",
|
||||
DOCKNOTEBOOKOUTPUT = "nbbtmdocklayout",
|
||||
DOCKNOTEBOOKPROJECT = "nbprojdocklayout",
|
||||
STATUSBAR = "statusbar",
|
||||
}
|
||||
|
||||
-- ----------------------------------------------------------------------------
|
||||
-- Initialize the wxConfig for loading/saving the preferences
|
||||
@@ -390,7 +400,7 @@ function SettingsRestoreView()
|
||||
local uimgr = frame.uimgr
|
||||
|
||||
local layoutcur = uimgr:SavePerspective()
|
||||
local layout = settingsReadSafe(settings,"uimgrlayout",layoutcur)
|
||||
local layout = settingsReadSafe(settings,layoutlabel.UIMANAGER,layoutcur)
|
||||
if (layout ~= layoutcur) then
|
||||
-- save the current toolbar besth and re-apply after perspective is loaded
|
||||
-- bestw and besth has two separate issues:
|
||||
@@ -424,26 +434,32 @@ function SettingsRestoreView()
|
||||
end
|
||||
end
|
||||
|
||||
frame:GetStatusBar():Show(settingsReadSafe(settings,"statusbar",true))
|
||||
frame:GetStatusBar():Show(settingsReadSafe(settings,layoutlabel.STATUSBAR,true))
|
||||
|
||||
uimgr:Update()
|
||||
|
||||
layoutcur = saveNotebook(frame.bottomnotebook)
|
||||
layout = settingsReadSafe(settings,"nbbtmlayout",layoutcur)
|
||||
layoutcur = saveNotebook(ide:GetOutputNotebook())
|
||||
layout = settingsReadSafe(settings,layoutlabel.NOTEBOOKOUTPUT,layoutcur)
|
||||
if (layout ~= layoutcur) then
|
||||
loadNotebook(ide.frame.bottomnotebook,layout,
|
||||
loadNotebook(ide:GetOutputNotebook(),layout,
|
||||
-- treat "Output (running)" same as "Output"
|
||||
function(name) return
|
||||
name:match(TR("Output")) or name:match("Output") or name end)
|
||||
end
|
||||
|
||||
layoutcur = saveNotebook(ide:GetProjectNotebook())
|
||||
layout = settingsReadSafe(settings,layoutlabel.NOTEBOOKPROJECT,layoutcur)
|
||||
if (layout ~= layoutcur) then
|
||||
loadNotebook(ide:GetProjectNotebook(),layout)
|
||||
end
|
||||
|
||||
-- always select Output tab
|
||||
local bottomnotebook = frame.bottomnotebook
|
||||
local bottomnotebook = ide:GetOutputNotebook()
|
||||
local index = bottomnotebook:GetPageIndex(bottomnotebook.errorlog)
|
||||
if index >= 0 then bottomnotebook:SetSelection(index) end
|
||||
|
||||
layoutcur = saveNotebook(frame.notebook)
|
||||
layout = settingsReadSafe(settings,"nblayout",layoutcur)
|
||||
layout = settingsReadSafe(settings,layoutlabel.NOTEBOOK,layoutcur)
|
||||
if (layout ~= layoutcur) then
|
||||
loadNotebook(ide.frame.notebook,layout)
|
||||
local openDocuments = ide.openDocuments
|
||||
@@ -458,8 +474,9 @@ function SettingsRestoreView()
|
||||
-- load saved dock_size values and update current values with saved ones
|
||||
-- where dock_size configuration matches
|
||||
for l, m in pairs({
|
||||
nbdocklayout = frame.notebook:GetAuiManager(),
|
||||
nbbtmdocklayout = frame.bottomnotebook:GetAuiManager(),
|
||||
[layoutlabel.DOCKNOTEBOOK] = ide:GetEditorNotebook():GetAuiManager(),
|
||||
[layoutlabel.DOCKNOTEBOOKOUTPUT] = ide:GetOutputNotebook():GetAuiManager(),
|
||||
[layoutlabel.DOCKNOTEBOOKPROJECT] = ide:GetProjectNotebook():GetAuiManager(),
|
||||
}) do
|
||||
-- ...|dock_size(5,0,0)=20|dock_size(2,1,0)=200|...
|
||||
local prevlayout = settingsReadSafe(settings, l, "")
|
||||
@@ -486,12 +503,14 @@ function SettingsSaveView()
|
||||
local frame = ide.frame
|
||||
local uimgr = frame.uimgr
|
||||
|
||||
settings:Write("uimgrlayout", uimgr:SavePerspective())
|
||||
settings:Write("nblayout", saveNotebook(frame.notebook))
|
||||
settings:Write("nbbtmlayout", saveNotebook(frame.bottomnotebook))
|
||||
settings:Write("statusbar", frame:GetStatusBar():IsShown())
|
||||
settings:Write("nbdocklayout", frame.notebook:GetAuiManager():SavePerspective())
|
||||
settings:Write("nbbtmdocklayout", frame.bottomnotebook:GetAuiManager():SavePerspective())
|
||||
settings:Write(layoutlabel.UIMANAGER, uimgr:SavePerspective())
|
||||
settings:Write(layoutlabel.NOTEBOOK, saveNotebook(ide:GetEditorNotebook()))
|
||||
settings:Write(layoutlabel.NOTEBOOKOUTPUT, saveNotebook(ide:GetOutputNotebook()))
|
||||
settings:Write(layoutlabel.NOTEBOOKPROJECT, saveNotebook(ide:GetProjectNotebook()))
|
||||
settings:Write(layoutlabel.DOCKNOTEBOOK, ide:GetEditorNotebook():GetAuiManager():SavePerspective())
|
||||
settings:Write(layoutlabel.DOCKNOTEBOOKOUTPUT, ide:GetOutputNotebook():GetAuiManager():SavePerspective())
|
||||
settings:Write(layoutlabel.DOCKNOTEBOOKPROJECT, ide:GetProjectNotebook():GetAuiManager():SavePerspective())
|
||||
settings:Write(layoutlabel.STATUSBAR, frame:GetStatusBar():IsShown())
|
||||
|
||||
settings:SetPath(path)
|
||||
end
|
||||
|
||||
@@ -4,9 +4,6 @@
|
||||
|
||||
local ide = ide
|
||||
local unpack = table.unpack or unpack
|
||||
--
|
||||
-- shellbox - a lua testbed environment within the IDE
|
||||
--
|
||||
|
||||
local bottomnotebook = ide.frame.bottomnotebook
|
||||
local out = bottomnotebook.shellbox
|
||||
@@ -147,8 +144,23 @@ local function shellPrint(marker, ...)
|
||||
local x = select(i,...)
|
||||
text = text .. tostring(x)..(i < cnt and "\t" or "")
|
||||
end
|
||||
|
||||
-- split the text into smaller chunks as one large line
|
||||
-- is difficult to handle for the editor
|
||||
local prev, maxlength = 0, ide.config.debugger.maxdatalength
|
||||
if #text > maxlength and not text:find("\n.") then
|
||||
text = text:gsub("()(%s+)", function(p, s)
|
||||
if p-prev >= maxlength then
|
||||
prev = p
|
||||
return "\n"
|
||||
else
|
||||
return s
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
-- add "\n" if it is missing
|
||||
if text then text = text:gsub("\n+$", "") .. "\n" end
|
||||
text = text:gsub("\n+$", "") .. "\n"
|
||||
|
||||
local lines = out:GetLineCount()
|
||||
local promptLine = isPrompt and getPromptLine() or nil
|
||||
|
||||
@@ -50,9 +50,7 @@ if success then -- ok, server was started, we are solo
|
||||
if filename then
|
||||
RequestAttention()
|
||||
if wx.wxDirExists(filename) then
|
||||
local dir = wx.wxFileName.DirName(filename)
|
||||
dir:Normalize() -- turn into absolute path if needed
|
||||
ProjectUpdateProjectDir(dir:GetFullPath())
|
||||
ProjectUpdateProjectDir(filename)
|
||||
elseif not ActivateFile(filename) then
|
||||
DisplayOutputLn(TR("Can't open file '%s': %s"):format(filename, wx.wxSysErrorMsg()))
|
||||
end
|
||||
|
||||
@@ -5,7 +5,8 @@ ide.config.toolbar.icons = {
|
||||
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_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,
|
||||
@@ -22,11 +23,12 @@ ide.config.toolbar.iconmap = {
|
||||
[ID_REPLACE] = {"FIND-AND-REPLACE", "Find and replace text"},
|
||||
[ID_FINDINFILES] = {"FIND-IN-FILES", "Find in files"},
|
||||
[ID_RUN] = {"RUN", "Execute the current project/file"},
|
||||
[ID_RUNNOW] = {"RUN-NOW", "Run as Scratchpad"},
|
||||
[ID_RUNNOW] = {"RUN-NOW", "Run as Scratchpad"}, -- TR("Run as Scratchpad")
|
||||
[ID_STARTDEBUG] = {"DEBUG-START", "Start or continue debugging"},
|
||||
[ID_STOPDEBUG] = {"DEBUG-STOP", "Stop the currently running process"},
|
||||
[ID_DETACHDEBUG]= {"DEBUG-DETACH", "Stop debugging and continue running the process"},
|
||||
[ID_BREAK] = {"DEBUG-BREAK", "Break execution at the next executed line of code"},
|
||||
[ID_RUNTO] = {"DEBUG-RUN-TO", "Run to cursor"},
|
||||
[ID_STEP] = {"DEBUG-STEP-INTO", "Step into"},
|
||||
[ID_STEPOVER] = {"DEBUG-STEP-OVER", "Step over"},
|
||||
[ID_STEPOUT] = {"DEBUG-STEP-OUT", "Step out of the current function"},
|
||||
|
||||
53
src/main.lua
53
src/main.lua
@@ -4,15 +4,22 @@
|
||||
|
||||
-- put bin/ and lualibs/ first to avoid conflicts with included modules
|
||||
-- that may have other versions present somewhere else in path/cpath.
|
||||
local function isproc()
|
||||
local file = io.open("/proc")
|
||||
if file then file:close() end
|
||||
return file ~= nil
|
||||
end
|
||||
local iswindows = os.getenv('WINDIR') or (os.getenv('OS') or ''):match('[Ww]indows')
|
||||
local islinux = not iswindows and not os.getenv('DYLD_LIBRARY_PATH') and io.open("/proc")
|
||||
local islinux = not iswindows and isproc()
|
||||
local arch = "x86" -- use 32bit by default
|
||||
local unpack = table.unpack or unpack
|
||||
|
||||
if islinux then
|
||||
local file = io.popen("uname -m")
|
||||
if file then
|
||||
arch = file:read("*a"):find("x86_64") and "x64" or "x86"
|
||||
local machine=file:read("*l")
|
||||
local archtype= { x86_64="x64", armv7l="armhf" }
|
||||
arch = archtype[machine] or "x86"
|
||||
file:close()
|
||||
end
|
||||
end
|
||||
@@ -62,6 +69,9 @@ ide = {
|
||||
port = nil,
|
||||
runonstart = nil,
|
||||
redirect = nil,
|
||||
maxdatalength = 400,
|
||||
maxdatanum = 400,
|
||||
maxdatalevel = 3,
|
||||
},
|
||||
default = {
|
||||
name = 'untitled',
|
||||
@@ -76,6 +86,16 @@ ide = {
|
||||
},
|
||||
outline = {
|
||||
showanonymous = '~',
|
||||
showflat = false,
|
||||
showmethodindicator = false,
|
||||
showonefile = false,
|
||||
sort = false,
|
||||
},
|
||||
commandbar = {
|
||||
prefilter = 250, -- number of records after which to apply filtering
|
||||
},
|
||||
staticanalyzer = {
|
||||
infervalue = false, -- off by default as it's a slower mode
|
||||
},
|
||||
|
||||
toolbar = {
|
||||
@@ -103,8 +123,10 @@ ide = {
|
||||
strategy = 2,
|
||||
width = 60,
|
||||
maxlength = 450,
|
||||
warning = true,
|
||||
},
|
||||
arg = {}, -- command line arguments
|
||||
api = {}, -- additional APIs to load
|
||||
|
||||
format = { -- various formatting strings
|
||||
menurecentprojects = "%f | %i",
|
||||
@@ -119,6 +141,7 @@ ide = {
|
||||
outlineinactivity = 0.250, -- seconds
|
||||
filehistorylength = 20,
|
||||
projecthistorylength = 20,
|
||||
bordersize = 2,
|
||||
savebak = false,
|
||||
singleinstance = false,
|
||||
singleinstanceport = 0xe493,
|
||||
@@ -216,7 +239,7 @@ end
|
||||
|
||||
dofile "src/version.lua"
|
||||
|
||||
for _, file in ipairs({"ids", "style", "keymap", "proto", "toolbar"}) do
|
||||
for _, file in ipairs({"proto", "ids", "style", "keymap", "toolbar"}) do
|
||||
dofile("src/editor/"..file..".lua")
|
||||
end
|
||||
|
||||
@@ -253,7 +276,8 @@ local function setLuaPaths(mainpath, osname)
|
||||
wx.wxSetEnv("LUA_PATH",
|
||||
(os.getenv("LUA_PATH") or ';') .. ';'
|
||||
.. "./?.lua;./?/init.lua;./lua/?.lua;./lua/?/init.lua" .. ';'
|
||||
.. mainpath.."lualibs/?/?.lua;"..mainpath.."lualibs/?.lua"
|
||||
.. mainpath.."lualibs/?/?.lua;"..mainpath.."lualibs/?.lua;"
|
||||
.. mainpath.."lualibs/?/?/init.lua;"..mainpath.."lualibs/?/init.lua"
|
||||
.. (luadev_path and (';' .. luadev_path) or ''))
|
||||
|
||||
ide.osclibs = -- keep the list to use for other Lua versions
|
||||
@@ -428,7 +452,7 @@ end
|
||||
-- process config
|
||||
|
||||
-- set ide.config environment
|
||||
setmetatable(ide.config, {__index = {os = os, wxstc = wxstc, wx = wx}})
|
||||
setmetatable(ide.config, {__index = {os = os, wxstc = wxstc, wx = wx, ID = ID}})
|
||||
ide.config.load = { interpreters = loadInterpreters, specs = loadSpecs,
|
||||
tools = loadTools }
|
||||
do
|
||||
@@ -481,8 +505,17 @@ do
|
||||
|
||||
-- process all other configs (if any)
|
||||
for _, v in ipairs(configs) do LoadLuaConfig(v, true) end
|
||||
|
||||
configs = nil
|
||||
|
||||
-- check and apply default styles in case a user resets styles in the config
|
||||
for _, styles in ipairs({"styles", "stylesoutshell"}) do
|
||||
if not ide.config[styles] then
|
||||
print(("Ignored incorrect value of '%s' setting in the configuration file")
|
||||
:format(styles))
|
||||
ide.config[styles] = StylesGetDefault()
|
||||
end
|
||||
end
|
||||
|
||||
local sep = GetPathSeparator()
|
||||
if ide.config.language then
|
||||
LoadLuaFileExt(ide.config.messages, "cfg"..sep.."i18n"..sep..ide.config.language..".lua")
|
||||
@@ -495,8 +528,8 @@ loadPackages()
|
||||
-- Load App
|
||||
|
||||
for _, file in ipairs({
|
||||
"markup", "settings", "singleinstance", "iofilters",
|
||||
"package", "gui", "filetree", "output", "debugger", "outline",
|
||||
"markup", "settings", "singleinstance", "iofilters", "package",
|
||||
"gui", "filetree", "output", "debugger", "outline", "commandbar",
|
||||
"editor", "findreplace", "commands", "autocomplete", "shellbox",
|
||||
"menu_file", "menu_edit", "menu_search",
|
||||
"menu_view", "menu_project", "menu_tools", "menu_help",
|
||||
@@ -529,9 +562,7 @@ do
|
||||
for _, filename in ipairs(filenames) do
|
||||
if filename ~= "--" then
|
||||
if wx.wxDirExists(filename) then
|
||||
local dir = wx.wxFileName.DirName(filename)
|
||||
dir:Normalize() -- turn into absolute path if needed
|
||||
ProjectUpdateProjectDir(dir:GetFullPath())
|
||||
ProjectUpdateProjectDir(filename)
|
||||
elseif not ActivateFile(filename) then
|
||||
DisplayOutputLn(("Can't open file '%s': %s"):format(filename, wx.wxSysErrorMsg()))
|
||||
end
|
||||
|
||||
21
src/util.lua
21
src/util.lua
@@ -137,7 +137,7 @@ function GetFileModTime(filePath)
|
||||
end
|
||||
|
||||
function GetFileExt(filePath)
|
||||
local match = filePath and filePath:match("%.([^./\\]*)$")
|
||||
local match = filePath and filePath:gsub("%s+$",""):match("%.([^./\\]*)$")
|
||||
return match and match:lower() or ''
|
||||
end
|
||||
|
||||
@@ -169,7 +169,7 @@ function FileSysGetRecursive(path, recursive, spec, skip)
|
||||
local dir = wx.wxDir(path)
|
||||
if not dir:IsOpened() then return end
|
||||
|
||||
local log = wx.wxLogNull() -- disable error reporting; will report as needed
|
||||
local _ = wx.wxLogNull() -- disable error reporting; will report as needed
|
||||
local found, file = dir:GetFirst("*", wx.wxDIR_DIRS)
|
||||
while found do
|
||||
if not skip or not file:find(skip) then
|
||||
@@ -179,11 +179,12 @@ function FileSysGetRecursive(path, recursive, spec, skip)
|
||||
-- Skip the processing if it does as it could lead to infinite
|
||||
-- recursion with circular references created by symlinks.
|
||||
if recursive and select(2, fname:gsub(EscapeMagic(file..sep),'')) <= 2 then
|
||||
getDir(fname, spec) end
|
||||
getDir(fname, spec)
|
||||
end
|
||||
end
|
||||
found, file = dir:GetNext()
|
||||
end
|
||||
local found, file = dir:GetFirst(spec, wx.wxDIR_FILES)
|
||||
found, file = dir:GetFirst(spec, wx.wxDIR_FILES)
|
||||
while found do
|
||||
if not skip or not file:find(skip) then
|
||||
local fname = wx.wxFileName(path, file):GetFullPath()
|
||||
@@ -227,7 +228,7 @@ function MergeFullPath(p, f)
|
||||
end
|
||||
|
||||
function FileWrite(file, content)
|
||||
local log = wx.wxLogNull() -- disable error reporting; will report as needed
|
||||
local _ = wx.wxLogNull() -- disable error reporting; will report as needed
|
||||
|
||||
if not wx.wxFileExists(file)
|
||||
and not wx.wxFileName(file):Mkdir(tonumber(755,8), wx.wxPATH_MKDIR_FULL) then
|
||||
@@ -242,26 +243,26 @@ function FileWrite(file, content)
|
||||
return true
|
||||
end
|
||||
|
||||
function FileRead(file)
|
||||
function FileRead(file, length)
|
||||
-- on OSX "Open" dialog allows to open applications, which are folders
|
||||
if wx.wxDirExists(file) then return nil, "Can't read directory as file." end
|
||||
|
||||
local log = wx.wxLogNull() -- disable error reporting; will report as needed
|
||||
local _ = wx.wxLogNull() -- disable error reporting; will report as needed
|
||||
local file = wx.wxFile(file, wx.wxFile.read)
|
||||
if not file:IsOpened() then return nil, wx.wxSysErrorMsg() end
|
||||
|
||||
local _, content = file:Read(file:Length())
|
||||
local _, content = file:Read(length or file:Length())
|
||||
file:Close()
|
||||
return content, wx.wxSysErrorMsg()
|
||||
end
|
||||
|
||||
function FileRename(file1, file2)
|
||||
local log = wx.wxLogNull() -- disable error reporting; will report as needed
|
||||
local _ = wx.wxLogNull() -- disable error reporting; will report as needed
|
||||
return wx.wxRenameFile(file1, file2), wx.wxSysErrorMsg()
|
||||
end
|
||||
|
||||
function FileCopy(file1, file2)
|
||||
local log = wx.wxLogNull() -- disable error reporting; will report as needed
|
||||
local _ = wx.wxLogNull() -- disable error reporting; will report as needed
|
||||
return wx.wxCopyFile(file1, file2), wx.wxSysErrorMsg()
|
||||
end
|
||||
|
||||
|
||||
@@ -52,6 +52,15 @@ editor:AddText([[
|
||||
ok(limit(10000, function() EditorAutoComplete(editor) end),
|
||||
"Auto-complete doesn't loop for classes that reference '...'.")
|
||||
|
||||
editor:SetText('')
|
||||
editor:AddText([[
|
||||
buf = str
|
||||
str = buf..str
|
||||
buf = buf..]])
|
||||
|
||||
ok(limit(10000, function() EditorAutoComplete(editor) end),
|
||||
"Auto-complete doesn't loop for string concatenations with self-reference.")
|
||||
|
||||
-- create a valuetype self-reference
|
||||
-- this is to test "s = Scan(); s:" fragment
|
||||
ide.apis.lua.baselib.io.valuetype = "io"
|
||||
@@ -94,6 +103,39 @@ 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('-- @tparam string foo\n')
|
||||
editor.assignscache = false
|
||||
|
||||
ok((CreateAutoCompList(editor, "foo.") or ""):match('byte'),
|
||||
"Auto-complete offers methods for variable defined as '@tparam string'.")
|
||||
|
||||
editor:SetText('')
|
||||
editor:AddText('-- @param[type=string] foo\n')
|
||||
editor.assignscache = false
|
||||
|
||||
ok((CreateAutoCompList(editor, "foo:") or ""):match('byte'),
|
||||
"Auto-complete offers methods for variable defined as '@param[type=string]'.")
|
||||
|
||||
local strategy = ide.config.acandtip.strategy
|
||||
ide.config.acandtip.strategy = 1
|
||||
|
||||
editor:SetText('')
|
||||
editor:AddText('local value\nprint(va')
|
||||
IndicateAll(editor)
|
||||
|
||||
local status, res = pcall(CreateAutoCompList, editor, "va")
|
||||
ok(status and (res or ""):match('value'),
|
||||
"Auto-complete offers methods for strategy=1' (1/2).")
|
||||
|
||||
editor:SetText('')
|
||||
editor:AddText('local value\nprint(va')
|
||||
|
||||
local status, res = pcall(CreateAutoCompList, editor, "va")
|
||||
ok(status and (res or ""):match('value'),
|
||||
"Auto-complete offers methods for strategy=1' (2/2).")
|
||||
|
||||
-- cleanup
|
||||
ide.config.acandtip.strategy = strategy
|
||||
ide:GetDocument(editor).isModified = false
|
||||
ClosePage()
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
local output = ide.frame.bottomnotebook.errorlog
|
||||
local shell = ide.frame.bottomnotebook.shellbox
|
||||
local output = ide:GetOutput()
|
||||
local shell = ide:GetConsole()
|
||||
|
||||
local text = output:GetText()
|
||||
output:SetReadOnly(false)
|
||||
|
||||
23
t/7-fuzzysearch.lua
Normal file
23
t/7-fuzzysearch.lua
Normal file
@@ -0,0 +1,23 @@
|
||||
-- other tests for fuzzy searches
|
||||
-- textmate: https://github.com/textmate/textmate/blob/master/Frameworks/text/tests/t_ranker.cc
|
||||
-- brackets: https://github.com/adobe/brackets/blob/2c1616a6346dfee29a8321b5ecc9e0f636ec42d8/test/spec/StringMatch-test.js
|
||||
|
||||
local function check(s, p1, p2)
|
||||
local r = CommandBarScoreItems({p1, p2}, s)
|
||||
ok(r[1][1] == p1,
|
||||
("'%s' is more similar to '%s' (%d) than to '%s' (%d).")
|
||||
:format(s, p1, r[1][1] == p1 and r[1][2] or r[2][2],
|
||||
p2, r[2][1] == p2 and r[2][2] or r[1][2]))
|
||||
end
|
||||
|
||||
check("mtv", "MTVStatusBar.txt", "MyTextView.txt")
|
||||
check("doc", "document.lua", "MyDocument.txt")
|
||||
check("paste", "Paste Selection Online", "Encrypt With Password")
|
||||
check("zerobrane", "zerobrane", "ZeroBraneStudio")
|
||||
check("barfileopen", "BarFileOpen", "BarFinderLabelOpen")
|
||||
check("readme", "readme", "README")
|
||||
check("ReadMe", "READme", "readME")
|
||||
check("f", "fun", "funclist.lua")
|
||||
|
||||
ok(1 == #CommandBarScoreItems({"funclist.lua", "f"}, "fun"),
|
||||
"Patterns longer than strings don't match.")
|
||||
10
t/8-file.lua
Normal file
10
t/8-file.lua
Normal file
@@ -0,0 +1,10 @@
|
||||
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).")
|
||||
|
||||
local fullpath = MergeFullPath(wx.wxFileName.GetCwd(), 't/test.lua')
|
||||
ok(ActivateFile('t/test.lua:10'), "Load file:line.")
|
||||
ok(not ActivateFile('t/foo.bar:10'), "Doesn't load non-existent file:line.")
|
||||
ok(ActivateFile(fullpath..':10'), "Load fullpath/file:line.")
|
||||
ok(not ActivateFile(fullpath..'/foo.bar:10'), "Doesn't load non-existent fullpath/file:line.")
|
||||
@@ -1,2 +1 @@
|
||||
@echo off
|
||||
zbstudio -cfg t/test.lua
|
||||
@zbstudio -cfg t/test.lua
|
||||
|
||||
@@ -6,6 +6,10 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
if [[ $(uname) == 'Darwin' ]]; then
|
||||
(cd "$DIR"; open zbstudio/ZeroBraneStudio.app --args "$@")
|
||||
else
|
||||
if [[ "$(uname -m)" == "x86_64" ]]; then ARCH="x64"; else ARCH="x86"; fi
|
||||
case "$(uname -m)" in
|
||||
x86_64) ARCH=x64;;
|
||||
armv7l) ARCH=armhf;;
|
||||
*) ARCH=x86;;
|
||||
esac
|
||||
(cd "$DIR"; bin/linux/$ARCH/lua src/main.lua zbstudio "$@") &
|
||||
fi
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
local skipspecs = {
|
||||
cg = true, glsl = true, luxres = true, opencl = true, sql = true,
|
||||
cbase = true, hlsl = true, oglgpuprog = true, ptx = true, text = true,
|
||||
}
|
||||
return {
|
||||
loadfilters = {
|
||||
tools = function(file) return false end,
|
||||
specs = function(file) return file:find('spec[/\\]lua%.lua$') end,
|
||||
specs = function(file) return not skipspecs[file:match('spec[/\\]([^/\\]+)%.lua$') or ''] end,
|
||||
interpreters = function(file) return not file:find('estrela') end,
|
||||
},
|
||||
|
||||
|
||||
BIN
zbstudio/res/16/DEBUG-RUN-TO.png
Normal file
BIN
zbstudio/res/16/DEBUG-RUN-TO.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 321 B |
BIN
zbstudio/res/16/FILE-NORMAL-START.png
Normal file
BIN
zbstudio/res/16/FILE-NORMAL-START.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 743 B |
BIN
zbstudio/res/16/FOLDER-MAPPED.png
Normal file
BIN
zbstudio/res/16/FOLDER-MAPPED.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 656 B |
@@ -7,7 +7,7 @@ Jean-Francois Goulet (granted on 2012/01/02).
|
||||
|
||||
LuaEdit
|
||||
|
||||
Copyright © 2004-2009 Jean-Francois Goulet
|
||||
Copyright © 2004-2009 Jean-Francois Goulet
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
BIN
zbstudio/res/24/DEBUG-RUN-TO.png
Normal file
BIN
zbstudio/res/24/DEBUG-RUN-TO.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 376 B |
Reference in New Issue
Block a user