brackets-archive / bracketsIssues

Archive of issues in brackets.
0 stars 0 forks source link

[CLOSED] [JS Code Hints] Seems to be looking in wrong place for modules #3492

Open core-ai-bot opened 3 years ago

core-ai-bot commented 3 years ago

Issue by redmunds Monday May 06, 2013 at 21:33 GMT Originally opened as https://github.com/adobe/brackets/issues/3731


Maybe I don't understand what's going on, but it appears that JavaScriptCodeHints are looking for Brackets modules in the wrong place.

Recipe:

  1. Switch to a project outside of the brackets repo
  2. Debug > Reload Brackets
  3. Debug > Show Performance Data

Results: You'll see entries for readAsText() trying to read Brackets modules inside current project.

I copied data from my project below. Project path: /Users/randyedmunds/Sites/brackets

And they are also attempting to read from the sub-folder where the open files are: /Users/randyedmunds/Sites/brackets/scratch

The code should be able to find Brackets modules in either of these folders: Development machine: [app-folder]/Contents/dev/src Installed build: [app-folder]/Contents/www/src

1225273 brackets module dependencies resolved
1225398 window.document Ready
27  readAsText: /Users/randyedmunds/github/brackets-shell/xcodebuild/Release/Brackets.app/Contents/dev/src/extensions/default/CodeHintToggler/package.json
9   readAsText: /Users/randyedmunds/github/brackets-shell/xcodebuild/Release/Brackets.app/Contents/dev/src/extensions/default/JavaScriptQuickEdit/package.json
57  readAsText: /Users/randyedmunds/github/brackets-shell/xcodebuild/Release/Brackets.app/Contents/dev/src/extensions/default/LESSSupport/package.json
56  readAsText: /Users/randyedmunds/github/brackets-shell/xcodebuild/Release/Brackets.app/Contents/dev/src/extensions/default/QuickOpenCSS/package.json
54  readAsText: /Users/randyedmunds/github/brackets-shell/xcodebuild/Release/Brackets.app/Contents/dev/src/extensions/default/QuickOpenHTML/package.json
53  readAsText: /Users/randyedmunds/github/brackets-shell/xcodebuild/Release/Brackets.app/Contents/dev/src/extensions/default/QuickOpenJavaScript/package.json
45  readAsText: /Users/randyedmunds/github/brackets-shell/xcodebuild/Release/Brackets.app/Contents/dev/src/extensions/default/StaticServer/package.json
41  readAsText: /Users/randyedmunds/github/brackets-shell/xcodebuild/Release/Brackets.app/Contents/dev/src/extensions/dev/bracketsBusyIndicatorActivator-master/package.json
95  readAsText: /Users/randyedmunds/github/brackets-shell/xcodebuild/Release/Brackets.app/Contents/dev/src/extensions/default/CSSCodeHints/package.json
90  readAsText: /Users/randyedmunds/github/brackets-shell/xcodebuild/Release/Brackets.app/Contents/dev/src/extensions/default/DebugCommands/package.json
89  readAsText: /Users/randyedmunds/github/brackets-shell/xcodebuild/Release/Brackets.app/Contents/dev/src/extensions/default/HTMLCodeHints/package.json
87  readAsText: /Users/randyedmunds/github/brackets-shell/xcodebuild/Release/Brackets.app/Contents/dev/src/extensions/default/HtmlEntityCodeHints/package.json
87  readAsText: /Users/randyedmunds/github/brackets-shell/xcodebuild/Release/Brackets.app/Contents/dev/src/extensions/default/JavaScriptCodeHints/package.json
41  readAsText: /Users/randyedmunds/github/brackets-shell/xcodebuild/Release/Brackets.app/Contents/dev/src/extensions/default/JSLint/package.json
36  readAsText: /Users/randyedmunds/Library/Application Support/Brackets/extensions/user/BracketLESS-master/package.json
110 readAsText: /Users/randyedmunds/github/brackets-shell/xcodebuild/Release/Brackets.app/Contents/dev/src/extensions/default/JavaScriptCodeHints/thirdparty/tern/defs/ecma5.json
23  readAsText: /Users/randyedmunds/github/brackets-shell/xcodebuild/Release/Brackets.app/Contents/dev/src/extensions/default/QuickView/package.json
114 readAsText: /Users/randyedmunds/github/brackets-shell/xcodebuild/Release/Brackets.app/Contents/dev/src/extensions/default/JavaScriptCodeHints/thirdparty/tern/defs/browser.json
21  readAsText: /Users/randyedmunds/github/brackets-shell/xcodebuild/Release/Brackets.app/Contents/dev/src/extensions/default/RecentProjects/package.json
116 readAsText: /Users/randyedmunds/github/brackets-shell/xcodebuild/Release/Brackets.app/Contents/dev/src/extensions/default/JavaScriptCodeHints/thirdparty/tern/defs/jquery.json
18  readAsText: /Users/randyedmunds/Library/Application Support/Brackets/extensions/user/brackets-beautify-Sprint-22/package.json
83  readAsText: /Users/randyedmunds/github/brackets-shell/xcodebuild/Release/Brackets.app/Contents/dev/src/extensions/default/WebPlatformDocs/package.json
74  readAsText: /Users/randyedmunds/github/brackets-shell/xcodebuild/Release/Brackets.app/Contents/dev/src/extensions/default/InlineColorEditor/package.json
163 Load Project: /Users/randyedmunds/Sites/brackets/
19  readAsText: /Users/randyedmunds/Sites/brackets/scratch/scratch.js
0   refreshText:    /Users/randyedmunds/Sites/brackets/scratch/scratch.js
20  getDocumentForPath: /Users/randyedmunds/Sites/brackets/scratch/scratch.js
10  Edtitor._resetText()    /Users/randyedmunds/Sites/brackets/scratch/scratch.js
45  EditorManager._onCurrentDocumentChange():   /Users/randyedmunds/Sites/brackets/scratch/scratch.js
26  FileViewController._onCurrentDocumentChange():  /Users/randyedmunds/Sites/brackets/scratch/scratch.js
81  setCurrentDocument: /Users/randyedmunds/Sites/brackets/scratch/scratch.js
101 Open File:  /Users/randyedmunds/Sites/brackets/scratch/scratch.js
1226167 Application Startup
181 readAsText: /Users/randyedmunds/github/brackets-shell/xcodebuild/Release/Brackets.app/Contents/dev/.git/HEAD
23  readAsText: /Users/randyedmunds/github/brackets-shell/xcodebuild/Release/Brackets.app/Contents/dev/.git/refs/heads/randy/perf-typing-codehints
5   readAsText: /Users/randyedmunds/Sites/brackets/scratch/1544a.js
0   refreshText:    /Users/randyedmunds/Sites/brackets/scratch/1544a.js
6   getDocumentForPath: /Users/randyedmunds/Sites/brackets/scratch/1544a.js
5   readAsText: /Users/randyedmunds/Sites/brackets/scratch/1544c.js
0   refreshText:    /Users/randyedmunds/Sites/brackets/scratch/1544c.js
5   getDocumentForPath: /Users/randyedmunds/Sites/brackets/scratch/1544c.js
5   readAsText: /Users/randyedmunds/Sites/brackets/scratch/brackets_copy.js
0   refreshText:    /Users/randyedmunds/Sites/brackets/scratch/brackets_copy.js
5   getDocumentForPath: /Users/randyedmunds/Sites/brackets/scratch/brackets_copy.js
5   readAsText: /Users/randyedmunds/Sites/brackets/scratch/casesensitive_test.js
1   refreshText:    /Users/randyedmunds/Sites/brackets/scratch/casesensitive_test.js
6   getDocumentForPath: /Users/randyedmunds/Sites/brackets/scratch/casesensitive_test.js
5   readAsText: /Users/randyedmunds/Sites/brackets/scratch/scratch.min.js
0   refreshText:    /Users/randyedmunds/Sites/brackets/scratch/scratch.min.js
5   getDocumentForPath: /Users/randyedmunds/Sites/brackets/scratch/scratch.min.js
5   readAsText: /Users/randyedmunds/Sites/brackets/scratch/scratch2.min.js
0   refreshText:    /Users/randyedmunds/Sites/brackets/scratch/scratch2.min.js
5   getDocumentForPath: /Users/randyedmunds/Sites/brackets/scratch/scratch2.min.js
5   readAsText: /Users/randyedmunds/Sites/brackets/scratch/test.js
0   refreshText:    /Users/randyedmunds/Sites/brackets/scratch/test.js
6   getDocumentForPath: /Users/randyedmunds/Sites/brackets/scratch/test.js
5   readAsText: /Users/randyedmunds/Sites/brackets/scratch/This-file-has-a-really-long-file-name.js
0   refreshText:    /Users/randyedmunds/Sites/brackets/scratch/This-file-has-a-really-long-file-name.js
5   getDocumentForPath: /Users/randyedmunds/Sites/brackets/scratch/This-file-has-a-really-long-file-name.js
5   readAsText: /Users/randyedmunds/Sites/brackets/scratch/Untitled-1.js
0   refreshText:    /Users/randyedmunds/Sites/brackets/scratch/Untitled-1.js
5   getDocumentForPath: /Users/randyedmunds/Sites/brackets/scratch/Untitled-1.js
6   readAsText: /Users/randyedmunds/Sites/brackets/scratch/widgets/bootstrap-dropdown.js
5   readAsText: /Users/randyedmunds/Sites/brackets/scratch/widgets/bootstrap-modal.js
6   readAsText: /Users/randyedmunds/Sites/brackets/scratch/thirdparty/path-utils/path-utils.min.js
6   readAsText: /Users/randyedmunds/Sites/brackets/scratch/thirdparty/smart-auto-complete/jquery.smart_autocomplete.js
6   readAsText: /Users/randyedmunds/Sites/brackets/scratch/LiveDevelopment/main.js
7   readAsText: /Users/randyedmunds/Sites/brackets/scratch/project/ProjectManager.js
6   readAsText: /Users/randyedmunds/Sites/brackets/scratch/document/DocumentManager.js
6   readAsText: /Users/randyedmunds/Sites/brackets/scratch/editor/EditorManager.js
6   readAsText: /Users/randyedmunds/Sites/brackets/scratch/editor/CSSInlineEditor.js
6   readAsText: /Users/randyedmunds/Sites/brackets/scratch/project/WorkingSetView.js
7   readAsText: /Users/randyedmunds/Sites/brackets/scratch/document/DocumentCommandHandlers.js
7   readAsText: /Users/randyedmunds/Sites/brackets/scratch/project/FileViewController.js
6   readAsText: /Users/randyedmunds/Sites/brackets/scratch/project/FileSyncManager.js
6   readAsText: /Users/randyedmunds/Sites/brackets/scratch/command/KeyBindingManager.js
6   readAsText: /Users/randyedmunds/Sites/brackets/scratch/command/KeyMap.js
7   readAsText: /Users/randyedmunds/Sites/brackets/scratch/command/Commands.js
7   readAsText: /Users/randyedmunds/Sites/brackets/scratch/command/CommandManager.js
6   readAsText: /Users/randyedmunds/Sites/brackets/scratch/editor/CodeHintManager.js
6   readAsText: /Users/randyedmunds/Sites/brackets/scratch/utils/PerfUtils.js
6   readAsText: /Users/randyedmunds/Sites/brackets/scratch/project/FileIndexManager.js
7   readAsText: /Users/randyedmunds/Sites/brackets/scratch/search/QuickFileOpen.js
7   readAsText: /Users/randyedmunds/Sites/brackets/scratch/command/Menus.js
7   readAsText: /Users/randyedmunds/Sites/brackets/scratch/file/FileUtils.js
6   readAsText: /Users/randyedmunds/Sites/brackets/scratch/utils/ExtensionLoader.js
6   readAsText: /Users/randyedmunds/Sites/brackets/scratch/language/JSLintUtils.js
7   readAsText: /Users/randyedmunds/Sites/brackets/scratch/debug/DebugCommandHandlers.js
7   readAsText: /Users/randyedmunds/Sites/brackets/scratch/view/ViewCommandHandlers.js
7   readAsText: /Users/randyedmunds/Sites/brackets/scratch/search/FindInFiles.js
7   readAsText: /Users/randyedmunds/Sites/brackets/scratch/preferences/PreferencesManager.js
6   readAsText: /Users/randyedmunds/Sites/brackets/widgets/bootstrap-dropdown.js
7   readAsText: /Users/randyedmunds/Sites/brackets/scratch/language/CSSUtils.js
7   readAsText: /Users/randyedmunds/Sites/brackets/scratch/LiveDevelopment/LiveDevelopment.js
7   readAsText: /Users/randyedmunds/Sites/brackets/scratch/LiveDevelopment/Inspector/Inspector.js
7   readAsText: /Users/randyedmunds/Sites/brackets/scratch/utils/NativeApp.js
8   readAsText: /Users/randyedmunds/Sites/brackets/widgets/bootstrap-modal.js
7   readAsText: /Users/randyedmunds/Sites/brackets/scratch/utils/ShellAPI.js
7   readAsText: /Users/randyedmunds/Sites/brackets/thirdparty/path-utils/path-utils.min.js
7   readAsText: /Users/randyedmunds/Sites/brackets/thirdparty/smart-auto-complete/jquery.smart_autocomplete.js
7   readAsText: /Users/randyedmunds/Sites/brackets/LiveDevelopment/main.js
6   readAsText: /Users/randyedmunds/Sites/brackets/project/ProjectManager.js
6   readAsText: /Users/randyedmunds/Sites/brackets/document/DocumentManager.js
6   readAsText: /Users/randyedmunds/Sites/brackets/editor/EditorManager.js
7   readAsText: /Users/randyedmunds/Sites/brackets/editor/CSSInlineEditor.js
7   readAsText: /Users/randyedmunds/Sites/brackets/project/WorkingSetView.js
6   readAsText: /Users/randyedmunds/Sites/brackets/document/DocumentCommandHandlers.js
6   readAsText: /Users/randyedmunds/Sites/brackets/project/FileViewController.js
6   readAsText: /Users/randyedmunds/Sites/brackets/project/FileSyncManager.js
6   readAsText: /Users/randyedmunds/Sites/brackets/command/KeyBindingManager.js
6   readAsText: /Users/randyedmunds/Sites/brackets/command/KeyMap.js
5   readAsText: /Users/randyedmunds/Sites/brackets/command/Commands.js
5   readAsText: /Users/randyedmunds/Sites/brackets/command/CommandManager.js
6   readAsText: /Users/randyedmunds/Sites/brackets/editor/CodeHintManager.js
6   readAsText: /Users/randyedmunds/Sites/brackets/utils/PerfUtils.js
5   readAsText: /Users/randyedmunds/Sites/brackets/project/FileIndexManager.js
5   readAsText: /Users/randyedmunds/Sites/brackets/search/QuickFileOpen.js
5   readAsText: /Users/randyedmunds/Sites/brackets/command/Menus.js
5   readAsText: /Users/randyedmunds/Sites/brackets/file/FileUtils.js
5   readAsText: /Users/randyedmunds/Sites/brackets/utils/ExtensionLoader.js
4   readAsText: /Users/randyedmunds/Sites/brackets/language/JSLintUtils.js
4   readAsText: /Users/randyedmunds/Sites/brackets/debug/DebugCommandHandlers.js
5   readAsText: /Users/randyedmunds/Sites/brackets/view/ViewCommandHandlers.js
5   readAsText: /Users/randyedmunds/Sites/brackets/search/FindInFiles.js
5   readAsText: /Users/randyedmunds/Sites/brackets/preferences/PreferencesManager.js
4   readAsText: /Users/randyedmunds/Sites/brackets/language/CSSUtils.js
4   readAsText: /Users/randyedmunds/Sites/brackets/LiveDevelopment/LiveDevelopment.js
4   readAsText: /Users/randyedmunds/Sites/brackets/LiveDevelopment/Inspector/Inspector.js
4   readAsText: /Users/randyedmunds/Sites/brackets/utils/NativeApp.js
3   readAsText: /Users/randyedmunds/Sites/brackets/utils/ShellAPI.js
32  FILE_INDEX_MANAGER_SYNC
core-ai-bot commented 3 years ago

Comment by pthiess Monday May 13, 2013 at 18:33 GMT


Hi Erik@eztierney - not sure if this is truly a JS Code Hint issue, please feel free to reassign as you find out more. Thanks, Peter :)

core-ai-bot commented 3 years ago

Comment by dangoor Tuesday May 28, 2013 at 15:21 GMT


I'm nominating this for sprint 26.

core-ai-bot commented 3 years ago

Comment by njx Friday Jun 07, 2013 at 18:56 GMT


@eztierney - wondering if you've had a chance to look at this and figure out whether it's important to take for this sprint - we're trying to be pencils down today. It's ok to punt if this is an edge case. Thanks!

core-ai-bot commented 3 years ago

Comment by eztierney Friday Jun 07, 2013 at 19:19 GMT


@njx I think this is just a side effect of how we look for files. Maybe there is a better way to implement this, but I don't think it's causing any problems.

When tern sees a call to require it asks us to resolve the file. Since we don't know what the baseUrl is, we look for the file in the following places:

  1. relative to the directory the current open file is in
  2. relative to the project root
  3. look for any file ending with the right path

For 1 & 2 we call DocumentManager.getDocumentForPath(), which calls FileUtils.readAsText(). We chain these lookups by using the .fail() of the promise returned from getDocumentForPath() - maybe theres a better way to decide if a file exists or not that we should be using instead?

core-ai-bot commented 3 years ago

Comment by njx Friday Jun 07, 2013 at 19:25 GMT


Ah, that makes sense. I think a slightly more direct way to get this info is to create a NativeFileSystem.FileEntry for the file and then call getMetadata on it (which under the hood basically does a stat()). I don't know if there would be a significant performance difference between the two though.

In any case, I think that makes this a low pri bug. Punting out of the sprint.@redmunds let us know if you disagree.

(It would be interesting to consider having a way for the user to specify what their require baseURL is on a per-project basis. Feature request :))

core-ai-bot commented 3 years ago

Comment by redmunds Friday Jun 07, 2013 at 19:32 GMT


I don't think this is important for this sprint. I'm not sure about other projects, but for Brackets the most likely place is 2, so maybe swapping the order of 1 & 2 would be a little more efficient?

core-ai-bot commented 3 years ago

Comment by eztierney Friday Jun 07, 2013 at 19:47 GMT


It depends on if you're editing core brackets, or one of the extensions. For extensions 1 is usually what you want - we may have been biased towards extensions when we implemented this in our extension ;)

@njx Now that darrell has implemented a preferences file, it should be relatively easy to implement a baseURL option.

core-ai-bot commented 3 years ago

Comment by redmunds Monday Jun 10, 2013 at 19:33 GMT


This seems to be working as designed. Closing.