mirror of
https://github.com/j1g5awi/krunner-vscode.git
synced 2024-11-21 23:59:30 +00:00
Merge pull request #1 from RealOrangeOne/feature/support-alternative-vscode-installs
Support alternative VSCode installs
This commit is contained in:
commit
a51c71d209
1 changed files with 29 additions and 16 deletions
|
@ -15,6 +15,13 @@ objpath = "/vscode"
|
|||
iface = "org.kde.krunner1"
|
||||
|
||||
|
||||
VSCODE_DIRS = [
|
||||
"Code",
|
||||
"Code - OSS",
|
||||
"VSCodium"
|
||||
]
|
||||
|
||||
|
||||
class Match(NamedTuple):
|
||||
data: str
|
||||
display_text: str
|
||||
|
@ -24,25 +31,31 @@ class Match(NamedTuple):
|
|||
properties: dict
|
||||
|
||||
|
||||
# TODO Check VSCode or Code - OSS or VSCodium
|
||||
|
||||
# Read path_list from database
|
||||
def get_path_list():
|
||||
con = sqlite3.connect(
|
||||
os.path.join(
|
||||
os.environ["HOME"], ".config", "Code - OSS/User/globalStorage/state.vscdb"
|
||||
)
|
||||
paths = {}
|
||||
|
||||
for vscode_dir in VSCODE_DIRS:
|
||||
state_file = os.path.join(
|
||||
os.environ["HOME"], ".config", vscode_dir, "User/globalStorage/state.vscdb"
|
||||
)
|
||||
|
||||
if not os.path.exists(state_file):
|
||||
continue
|
||||
|
||||
con = sqlite3.connect(state_file)
|
||||
cur = con.cursor()
|
||||
rows = cur.execute(
|
||||
"SELECT value FROM ItemTable WHERE key = 'history.recentlyOpenedPathsList'"
|
||||
)
|
||||
data = json.loads(rows.fetchone()[0])
|
||||
con.close()
|
||||
return [
|
||||
paths.update(
|
||||
{
|
||||
"~" + path[len(os.environ["HOME"]) :] if os.environ["HOME"] in path else path
|
||||
for path in [i["folderUri"][7:] for i in data["entries"] if "folderUri" in i]
|
||||
]
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
class Runner(dbus.service.Object):
|
||||
|
|
Loading…
Reference in a new issue