Skip to content

Commit

Permalink
Merge pull request #60 from mrjoelkemp/fix_commonjs
Browse files Browse the repository at this point in the history
Fix CommonJS support
  • Loading branch information
mrjoelkemp committed Nov 23, 2014
2 parents b734778 + a888f13 commit e26c049
Show file tree
Hide file tree
Showing 11 changed files with 141 additions and 85 deletions.
25 changes: 21 additions & 4 deletions Dependents.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,19 @@ def run(self, modifier=''):
settings = get_project_settings(base_path)

self.window.root = settings['root']
if self.window.root[-1] != '/':
self.window.root += '/'

self.window.config = settings['config']
self.window.sass_root = settings['sass_root']

if not self.window.root and not self.window.sass_root:
show_error('Please set the "root" or "sass_root" in \nPreferences -> Package Settings -> Dependents -> Settings - User')
return

if self.window.root == './' or self.window.root == '.':
self.window.root = base_path

self.view = self.window.active_view()
self.view.filename = self.view.file_name()
# The part of the path before the root
Expand Down Expand Up @@ -78,9 +84,15 @@ def get_dependents(self):
"""
Asks the node tool for the dependents of the current module
"""
root = self.view.path

# In case the user supplied the base path as the root
if self.window.root != self.view.path:
root += self.window.root

args = {
'filename': self.view.filename,
'root': self.view.path + self.window.root
'root': root
}

if self.window.config:
Expand All @@ -100,13 +112,12 @@ def trim_paths(self, files):
for f in files:
if f:
try:
filename = f[f.index(self.window.root) + len(self.window.root) + 1:]
filename = f[f.index(self.window.root) + len(self.window.root):]
except:
print('Didn\'t have root in path: ', f)
filename = f

trimmed.append(filename)

return trimmed

def show_quick_panel(self):
Expand All @@ -124,8 +135,14 @@ def on_done(self, picked):
self.open_file(dependent)

def open_file(self, dependent):
path = self.view.path

# In case the root is the directory root (path)
if path != self.window.root:
path += self.window.root

# We removed the root originally when populating the dependents list
filename = self.view.path + self.window.root + '/' + dependent
filename = path + dependent

if not os.path.isfile(filename):
cant_find_file()
Expand Down
11 changes: 9 additions & 2 deletions JumpToDependency.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,13 @@ def run(self):
settings = get_project_settings(base_path)

self.window.root = settings['root']

if self.window.root[-1] != '/':
self.window.root += '/'

if self.window.root == './' or self.window.root == '.':
self.window.root = base_path

self.window.config = settings['config']

self.view = self.window.active_view()
Expand Down Expand Up @@ -145,8 +152,8 @@ def get_absolute_path(self, module):
# a module that uses plugin loader
if self.view.path not in module:
filename += self.view.path
if self.window.root not in module:
filename += self.window.root + '/'
if self.window.root not in module and self.view.path != self.window.root:
filename += self.window.root

filename += module
return filename
Expand Down
16 changes: 14 additions & 2 deletions node_modules/dependents/index.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 8 additions & 8 deletions node_modules/dependents/package.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions node_modules/dependents/test/example/commonjs/subfolder/c.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

123 changes: 72 additions & 51 deletions node_modules/dependents/test/test.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"description": "Sublime Text plugin to navigate JS codebases",
"main": "index.js",
"dependencies": {
"dependents": "~1.6.2"
"dependents": "~1.6.3"
},
"private": true,
"devDependencies": {},
Expand Down
24 changes: 11 additions & 13 deletions project_settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,15 @@
import os
import json

def get_settings_from_source(source):
settings = {}

settings['root'] = source.get('root', '')
settings['config'] = source.get('config', '')
settings['sass_root'] = source.get('sass_root', '')

return settings

def get_project_settings(base_path):
"""
Returns a settings map that contains project settings
Expand All @@ -17,20 +26,9 @@ def get_project_settings(base_path):
data = json.load(json_data)
json_data.close()

settings = data
settings = get_settings_from_source(data)
else:
sublime_settings = sublime.load_settings('Dependents.sublime-settings')
try:
settings['root'] = sublime_settings.get('root')
except:
settings['root'] = ''
try:
settings['config'] = sublime_settings.get('config')
except:
settings['config'] = ''
try:
settings['sass_root'] = sublime_settings.get('sass_root')
except:
settings['sass_root'] = ''
settings = get_settings_from_source(sublime_settings)

return settings

0 comments on commit e26c049

Please sign in to comment.