mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-05-31 13:36:45 +08:00
GP-6669: JsonDoclet now outputs public/private/protected, which Jython
and PyGhidra will display in help()
This commit is contained in:
@@ -1,17 +1,17 @@
|
||||
## ###
|
||||
# IP: GHIDRA
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
# IP: GHIDRA
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
##
|
||||
"""
|
||||
Ties the Ghidra documentation into the builtin Python help.
|
||||
@@ -123,6 +123,8 @@ class _Helper:
|
||||
sig = "%s %s" % (field["type_long"], field["name"])
|
||||
if field["static"]:
|
||||
sig = "static " + sig
|
||||
if field["access"]:
|
||||
sig = field["access"] + " " + sig
|
||||
if field["constant_value"]:
|
||||
sig += " = " + field["constant_value"]
|
||||
sig += "\n"
|
||||
@@ -143,6 +145,8 @@ class _Helper:
|
||||
sig = "%s %s(%s)\n" % (method["return"]["type_short"], method["name"], paramsig)
|
||||
if method["static"]:
|
||||
sig = "static " + sig
|
||||
if method["access"]:
|
||||
sig = method["access"] + " " + sig
|
||||
desc = " %s\n\n" % (method["comment"]) if len(method["comment"]) > 0 else ""
|
||||
ret = ""
|
||||
if method["return"]["type_short"] != "void":
|
||||
|
||||
@@ -567,6 +567,10 @@ import pdb # imports Python's pdb
|
||||
import pdb_ # imports Ghidra's pdb
|
||||
```
|
||||
## Change History
|
||||
__3.2.0__
|
||||
* PyGhidra's `help()` override can now show `public/private/protected` on Ghidra Java fields and
|
||||
methods (available in Ghidra 12.2 and later).
|
||||
|
||||
__3.1.0__
|
||||
* PyGhidra will now, by default, restore `sys.modules` to its prior state after a PyGhidra script is
|
||||
run (or the interactive interpreter is reset) so the next time a script is run, it freshly loads
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
##
|
||||
__version__ = "3.1.0"
|
||||
__version__ = "3.2.0"
|
||||
|
||||
# stub for documentation and typing
|
||||
# this is mostly to hide the function parameter
|
||||
|
||||
@@ -103,6 +103,8 @@ class _Helper:
|
||||
sig = f"{field['type_long']} {field['name']}"
|
||||
if field['static']:
|
||||
sig = "static " + sig
|
||||
if field.get("access"):
|
||||
sig = field.get("access") + " " + sig
|
||||
if constant_value := field['constant_value']:
|
||||
sig += " = " + constant_value
|
||||
sig += "\n"
|
||||
@@ -124,6 +126,8 @@ class _Helper:
|
||||
sig = f"{method['return']['type_short']} {method['name']}({paramsig})\n"
|
||||
if method['static']:
|
||||
sig = "static " + sig
|
||||
if method.get("access"):
|
||||
sig = method.get("access") + " " + sig
|
||||
if comment := method['comment']:
|
||||
desc = f" {comment}\n\n"
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user