Skip to content
This repository was archived by the owner on Oct 15, 2025. It is now read-only.

Commit b5791b4

Browse files
author
Hörmet Yiltiz
committed
cuttom setting works!
1 parent fc59e70 commit b5791b4

1 file changed

Lines changed: 52 additions & 2 deletions

File tree

lisp_eval/__init__.py

Lines changed: 52 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
# -*- coding: utf-8 -*-
22
# Copyright (c) 2025 Hormet Yiltiz
33

4+
"""
5+
Evaluates an S-Expression using an available Lisp language. Choose from the detected interpreters.
6+
"""
7+
48
from builtins import pow
59
from pathlib import Path
610
import subprocess
@@ -69,14 +73,23 @@ def __init__(self):
6973
result = proc.stdout.strip()
7074
if result:
7175
detected_langs.append(lang)
72-
break # TODO: unless we provide alternatives in drop-down menu, do not bother detecting the rest
76+
pass # break DONE: unless we provide alternatives in drop-down menu, do not bother detecting the rest
7377
except FileNotFoundError as ex:
7478
warning(str(ex))
7579
continue
7680

7781
PluginInstance.__init__(self)
7882
self.detected_langs = detected_langs
79-
self.call_external = lang_opts[detected_langs[0]]
83+
84+
self._detected_langs = self.readConfig('detected_langs', list[str])
85+
if self._detected_langs is None:
86+
self._detected_langs = detected_langs
87+
88+
self._lang = self.readConfig('lang', str)
89+
if self._lang is None:
90+
self._lang = detected_langs[0]
91+
92+
self.call_external = self.lang_opts[self._lang]
8093
self.iconUrls = [f"file:{Path(__file__).parent}/{self.call_external['url']}"]
8194
TriggerQueryHandler.__init__(
8295
self,
@@ -87,6 +100,43 @@ def __init__(self):
87100
defaultTrigger="() ",
88101
)
89102

103+
104+
@property
105+
def detected_langs(self):
106+
return self._detected_langs
107+
108+
@detected_langs.setter
109+
def detected_langs(self, value):
110+
self._detected_langs = value
111+
self.writeConfig('detected_langs', value)
112+
113+
@property
114+
def lang(self):
115+
return self._lang
116+
117+
@lang.setter
118+
def lang(self, value):
119+
self._lang = value
120+
print('Setting lang to', self.lang)
121+
print('Setting _lang to', self._lang)
122+
self.writeConfig('lang', value)
123+
self.call_external = self.lang_opts[self._lang]
124+
self.iconUrls = [f"file:{Path(__file__).parent}/{self.call_external['url']}"]
125+
126+
def configWidget(self):
127+
return [
128+
{
129+
'type': 'label',
130+
'text': __doc__.strip(),
131+
},
132+
{
133+
'type': 'combobox',
134+
'property': 'lang',
135+
'label': 'Lisp Interpreter',
136+
'items': self._detected_langs,
137+
},
138+
]
139+
90140
def runSubprocess(self, query_script):
91141
try:
92142
script = self.call_external["args"][-1].format(query_script)

0 commit comments

Comments
 (0)