Skip to content

Commit

Permalink
Revert a0d393a to avoid potentially loading from C:/
Browse files Browse the repository at this point in the history
  • Loading branch information
DanielRosenwasser committed Feb 23, 2021
1 parent 27c0c0c commit b97a02d
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 64 deletions.
17 changes: 0 additions & 17 deletions README.md
Expand Up @@ -22,23 +22,6 @@ This plugin can be configured to load an alternate version of TypeScript. This i
"typescript_tsdk": "<path to your folder>/node_modules/typescript/lib"
```

The path may be relative. In such case the plugin will look in the following locations in this order:

```
/foo/project_folder_1/<typescript_tsdk>
/foo/<typescript_tsdk>
/<typescript_tsdk>
/bar/project_folder_2/<typescript_tsdk>
/bar/<typescript_tsdk>
/baz/open_file_1_folder/<typescript_tsdk>
/baz/<typescript_tsdk>
/baz/open_file_2_folder/<typescript_tsdk>
```

In case of Yarn 2, just [install its editor SDK](https://yarnpkg.com/advanced/editor-sdks) using `yarn dlx @yarnpkg/pnpify --sdk base` and set `typescript_tsdk` to `.yarn/sdks/typescript/lib`.

**Note.** The plugin isn't reloaded when switching projects or updating settings at the moment, so you must restart Sublime Text when doing so, unfortunately. When in doubt, check the console for "Path of tsserver.js" and "Path of tsc.js", and see if they point where you expect them to point.

Installation
------------
If using [Package Control](https://packagecontrol.io/) for Sublime Text, simply install the `TypeScript` package.
Expand Down
60 changes: 13 additions & 47 deletions typescript/libs/editor_client.py
Expand Up @@ -52,53 +52,19 @@ def initialize(self):
initialized during loading time
"""

# Default to and fall back to the bundled SDK
tsdk_location_default = os.path.join(PLUGIN_DIR, "tsserver")
tsdk_location = tsdk_location_default

is_tsdk_location_good = lambda x: (
os.path.isfile(os.path.join(x, "tsserver.js"))
and os.path.isfile(os.path.join(x, "tsc.js"))
)

active_window = sublime.active_window()
settings = active_window.active_view().settings()
typescript_tsdk_setting = settings.get("typescript_tsdk")
if typescript_tsdk_setting:
if os.path.isabs(typescript_tsdk_setting):
if is_tsdk_location_good(typescript_tsdk_setting):
tsdk_location = typescript_tsdk_setting
else:
def look_for_tsdk(x):
x_appended = os.path.join(x, typescript_tsdk_setting)
if is_tsdk_location_good(x_appended):
return x_appended
parent = os.path.dirname(x)
if parent == x:
return None # We have reached the root
return look_for_tsdk(parent)

# list(OrderedDict.fromkeys(x)) = deduped x, order preserved
folders = active_window.folders() + list(
collections.OrderedDict.fromkeys(
[
os.path.dirname(x.file_name())
for x in active_window.views()
if x.file_name() # It's None for unsaved files
]
)
)
for folder in folders:
x = look_for_tsdk(folder)
if x != None:
tsdk_location = x
break

proc_file = os.path.join(tsdk_location, "tsserver.js")
global_vars._tsc_path = os.path.join(tsdk_location, "tsc.js")

log.warn("Path of tsserver.js: " + proc_file)
log.warn("Path of tsc.js: " + get_tsc_path())
# retrieve the path to tsserver.js
# first see if user set the path to the file
settings = sublime.load_settings("Preferences.sublime-settings")
tsdk_location = settings.get("typescript_tsdk")
if tsdk_location:
proc_file = os.path.join(tsdk_location, "tsserver.js")
global_vars._tsc_path = os.path.join(tsdk_location, "tsc.js")
else:
# otherwise, get tsserver.js from package directory
proc_file = os.path.join(PLUGIN_DIR, "tsserver", "tsserver.js")
global_vars._tsc_path = os.path.join(PLUGIN_DIR, "tsserver", "tsc.js")
log.debug("Path of tsserver.js: " + proc_file)
log.debug("Path of tsc.js: " + get_tsc_path())

self.node_client = ServerClient(proc_file)
self.worker_client = WorkerClient(proc_file)
Expand Down

0 comments on commit b97a02d

Please sign in to comment.