Commit Graph
1107 Commits
Author SHA1 Message Date
baldurk 2d0ba78a49 Add a function to fetch the texture display config from texture viewer 2026-08-13 17:46:46 +01:00
baldurk 7d2477026a Add TextureViewer.GetChannelVisibility that returns a tuple
* This is more natural to access and use from python. The old function could
  probably be removed but since we also changed the name we'll keep it.
2026-08-13 17:46:46 +01:00
baldurk 3f653cfbf2 Remove RENDERDOC_GetDefaultCaptureOptions, initialise in constructor 2026-08-13 17:46:46 +01:00
baldurk e3b0fa0a24 Add UI thread invokers for all windows
* This is necessary as they expect to be run on the UI thread, but can be
  fetched from python scripts running on the python script thread. We block
  invoke over to the UI and suspend python's GIL to avoid deadlocks.
2026-08-13 17:46:46 +01:00
baldurk db75eec620 Expose capture connection windows to python scripting 2026-08-13 17:46:46 +01:00
baldurk 7806d1557d Rename CaptureDialog::TriggerCapture to Launch as better naming 2026-08-13 17:46:45 +01:00
baldurk e6cd4d2e98 Add an entry to the recent files list for unsaved/temp recovery script 2026-08-13 17:46:45 +01:00
baldurk 782e7101e6 Improve formatting of function tooltips 2026-08-13 17:46:45 +01:00
baldurk b83fabce3a Try to patch in 'pass' instead of commenting to preserve scopes 2026-08-13 17:46:45 +01:00
baldurk 4f3dab116b Properly update docstrings with optional/default parameters 2026-08-13 17:46:45 +01:00
baldurk 567b0228aa Call OnCaptureClosed for capture viewers before resetting capture info 2026-08-13 17:46:45 +01:00
baldurk cd79225daa Call OnSelectedEventChanged() on new capture viewers 2026-08-13 17:46:44 +01:00
baldurk 21ebe7e6cc When reloading an extension send errors to its output channel 2026-08-13 17:46:44 +01:00
baldurk 16a24406b2 In python extensions, set pyrenderdoc global before calling register() 2026-08-13 17:46:44 +01:00
baldurk 7fab2e0e0a Add a forwarding ReplayController wrapper for python that auto invokes 2026-08-13 17:46:44 +01:00
baldurk 10272fa35b Make most extension json fields optional
* We require `extension_api` and `version` fields in case needed for future
  compatibility
2026-08-13 17:46:44 +01:00
baldurk c97850e39b Allow customisation of VS Code executable 2026-08-13 17:46:44 +01:00
baldurk ca0ac6157a Fix some issues with reference counting on python objects 2026-08-13 17:46:44 +01:00
baldurk 459bfb2592 Add a project explorer to the python scripting window
* This displays the current UI extension files, some built-in examples, and
  recently opened loose files
2026-08-13 17:46:44 +01:00
baldurk c95a69c8a1 Returning const arrays forces a copy
* This doesn't cover all cases but helps with 'pythonic' cases where a list
  returned from a function should be expected to be mutable. Modifying direct
  'members' can still modify through const.
2026-08-13 17:46:43 +01:00
baldurk 88782bea97 Use reflection script for autocomplete and help in python shell
* Also add syntax checking via parse attempts.
2026-08-13 17:46:43 +01:00
baldurk 2aff86b678 Change python scripting panel to allow multiple editor windows
* We also remove the old completion/help functionality as it will be replaced.
2026-08-13 17:46:43 +01:00
baldurk 8a86b754f6 Generate autocomplete tooltips inside python reflector 2026-08-13 17:46:43 +01:00
baldurk b9595f3685 Handle forward-referenced string return annotations 2026-08-13 17:46:43 +01:00
baldurk 09c036bd36 Embed and initialise reflection script in python context 2026-08-13 17:46:42 +01:00
baldurk be3d34fb93 Add support for aliasing modules when processing reflection
* This is a little specific to us, but when we see references to a `renderdoc`
  module etc we want to be able to look up the generated stubs instead as they
  have better type hints for processing.
2026-08-13 17:46:42 +01:00
baldurk 64645aa9d6 Add autocomplete helpers for members and function calls
* This requires a small quasi-hack for tracking user defined function calls
  while looking up types.
2026-08-13 17:46:42 +01:00
baldurk e0ca14d55a Add a helper to figure out which function call and argument we're in 2026-08-13 17:46:42 +01:00
baldurk 575d8ed853 Add a function to figure out the trailing subexpression in an expr
* This is what will be used for autocompletion at a cursor point
2026-08-13 17:46:42 +01:00
baldurk 1b5ba59336 Return the correct type for list comprehension targets 2026-08-13 17:46:42 +01:00
baldurk d7c3371777 Add a helper function that replaces contents of any strings with "xxx" 2026-08-13 17:46:42 +01:00
baldurk 6a2fca967c Add a helper to get the friendly name for a type 2026-08-13 17:46:42 +01:00
baldurk 6b85e503fe Add testing for type checking 2026-08-13 17:46:42 +01:00
baldurk e7845446db Add a query to pull the type of a given location 2026-08-13 17:46:41 +01:00
baldurk f090436670 Determine best-effort type information for AST nodes
* This is not perfect but does a good enough job for most common cases.
2026-08-13 17:46:41 +01:00
baldurk e57d9db9c4 Process scope declarations and identifiers in AST tree
* We don't generate type information yet, _get_type is stubbed out.
2026-08-13 17:46:41 +01:00
baldurk b2b46e7e7c Add structs for tracking identifiers and scopes 2026-08-13 17:46:41 +01:00
baldurk 08369056d3 Add python script for autocompletion parsing
* This tries to ast parse source that may contain an error.
* We don't try to fully error recover from unlimited problems, but a single
  statement that is being edited can be tolerated by commenting out lines around
  it
2026-08-13 17:46:41 +01:00
baldurk 23ca2cf053 Show syntax errors when editing in python script editor 2026-08-13 17:46:41 +01:00
baldurk a70ee3a2eb Watch python extensions for changes on disk and update status bar
* We show a button to quickly reload changed extensions.
2026-08-13 17:46:41 +01:00
baldurk a995ded466 Add quick-helper to view extension output from manager dialog 2026-08-13 17:46:41 +01:00
baldurk 02ead51303 Add a status entry showing loaded python extensions & debugger status 2026-08-13 17:46:40 +01:00
baldurk 3c6dfd23b4 Add a drop-down for the script output panel to switch context
* By default we still display all messages, but this allows users to switch to
  just seeing the output from one extension if desired.
2026-08-13 17:46:40 +01:00
baldurk 768d8fa615 Add a static context for connecting Qt signals for python extensions 2026-08-13 17:46:40 +01:00
baldurk b1f0b9d310 Flush output before an exception
* We buffer output to avoid spamming huge numbers of signals especially when
  single lines can be many write calls. This means if an exception is processed
  immediately after a print the output from the print may come after the
  extension.
2026-08-13 17:46:40 +01:00
baldurk 229c4c8746 Avoid polluting globals with completion objects 2026-08-13 17:46:40 +01:00
baldurk 60b989f2b7 Give extensions their own OutputRedirector object to identify them 2026-08-13 17:46:40 +01:00
baldurk 3ff393c91f Add option to launch/wait for debugger on python contexts 2026-08-13 17:46:40 +01:00
baldurk 3dfd829331 Initialise debugpy on a thread to reduce startup time 2026-08-13 17:46:40 +01:00
baldurk d71827d6a1 Load debugpy when possible to allow python debugging in-program 2026-08-13 17:46:39 +01:00