Skip to content
This repository was archived by the owner on Sep 6, 2021. It is now read-only.

Language Server Protocol Support for Brackets #14606

Merged
merged 187 commits into from
Apr 2, 2019
Merged
Show file tree
Hide file tree
Changes from 82 commits
Commits
Show all changes
187 commits
Select commit Hold shift + click to select a range
2bfb400
LSP Initial set of changes
Nov 18, 2018
ac24b4c
Adding comments and a bit of cleanup
Nov 22, 2018
0a585d5
Adding php client for lsp
Nov 22, 2018
58bdca0
further cleanup
Nov 22, 2018
908af27
removing dependency on HintUtils
Nov 22, 2018
1d9a45f
removing phpClient extension from this branch
Nov 23, 2018
27592bd
Cleanup
Nov 26, 2018
fb1a9fc
fixing eslint errors
Nov 26, 2018
95d2db2
Refactoring code- Removing dependency on JSUtils ANd adding basic str…
Nov 27, 2018
1639d42
Bug Fix: too many listeners were getting attached to node process + c…
Nov 27, 2018
c577588
putting null check and settign capabilities to default values
Nov 28, 2018
9c133bc
reinitializing server on workspace change and moving out capabilities…
Dec 2, 2018
32772c0
cleanup
Dec 4, 2018
b9d747e
First cut for LSP support in Brackets
shubhsnov Jan 30, 2019
0a73384
First cut for LSP support in Brackets
Jan 30, 2019
3fe4fb7
Adding client infrastructure
shubhsnov Feb 4, 2019
4355925
Adding client infrastructure
Feb 4, 2019
03bfd7e
Adding handlers on Language Client Proxy, fixing eslint errors
shubhsnov Feb 5, 2019
45377bf
Adding handlers on Language Client Proxy, fixing eslint errors
Feb 5, 2019
a2ad0a5
Fixing protocol adapter
shubhsnov Feb 5, 2019
a86ceab
Fixing protocol adapter
Feb 5, 2019
a300e1b
Fix typo
shubhsnov Feb 5, 2019
10e5e93
Fix typo
Feb 5, 2019
0018109
Merge branch 'shubham/LanguageTools' into subhash/brackets/master
shubhsnov Feb 6, 2019
e4bb9ac
Merge branch 'shubham/LanguageTools' into subhash/brackets/master
Feb 6, 2019
d156822
Removing older implementation
shubhsnov Feb 6, 2019
29474b1
Removing older implementation
Feb 6, 2019
7d1ec5b
Added error checks to the auto update mechanism. So in case the auto …
nethip Dec 3, 2018
bd62861
First cut for LSP support in Brackets
shubhsnov Jan 30, 2019
b9e7d00
First cut for LSP support in Brackets
Jan 30, 2019
ad0bd33
Adding client infrastructure
shubhsnov Feb 4, 2019
3104033
Adding client infrastructure
Feb 4, 2019
7512ebb
Adding handlers on Language Client Proxy, fixing eslint errors
shubhsnov Feb 5, 2019
3620739
Adding handlers on Language Client Proxy, fixing eslint errors
Feb 5, 2019
490a2ad
Fixing protocol adapter
shubhsnov Feb 5, 2019
746b720
Fixing protocol adapter
Feb 5, 2019
725dbc8
Fix typo
shubhsnov Feb 5, 2019
63649cc
Fix typo
Feb 5, 2019
272eced
Removing older implementation
shubhsnov Feb 6, 2019
a2d1aeb
Removing older implementation
Feb 6, 2019
62f7c10
Merge pull request #1 from subhashjha333/subhashMaster
shubhsnov Feb 6, 2019
24bbaa9
Merge pull request #1 from subhashjha333/subhashMaster
shubhsnov Feb 6, 2019
2f37de2
Merge branch 'master' of https://github.com/subhashjha333/brackets in…
shubhsnov Feb 6, 2019
4f52ba7
Merge branch 'master' of https://github.com/subhashjha333/brackets in…
Feb 6, 2019
bb64752
Removing custom comments
shubhsnov Feb 6, 2019
30fd345
Removing custom comments
Feb 6, 2019
7075033
Merge pull request #2 from subhashjha333/subhashMaster
shubhsnov Feb 6, 2019
4f981c7
Fixing Typo
shubhsnov Feb 11, 2019
fb27ddc
Fixing Typo
Feb 11, 2019
05ae5d6
Merge pull request #3 from subhashjha333/subhashMaster
shubhsnov Feb 11, 2019
3f36ab1
Add missing Params in function call
shubhsnov Feb 11, 2019
327137b
Add missing Params in function call
Feb 11, 2019
b448f52
Merge pull request #4 from subhashjha333/subhashMaster
shubhsnov Feb 11, 2019
c6b58c8
Correcting message type, handlers
shubhsnov Feb 11, 2019
9f508b7
Correcting message type, handlers
Feb 11, 2019
380d515
Merge pull request #5 from subhashjha333/subhashMaster
shubhsnov Feb 11, 2019
dd3206e
Minor correction on active project change
shubhsnov Feb 11, 2019
84a599c
Minor correction on active project change
Feb 11, 2019
fb7418c
Merge pull request #6 from subhashjha333/subhashMaster
shubhsnov Feb 11, 2019
087ce19
Correcting the message format for didChange
shubhsnov Feb 11, 2019
0c62ace
Correcting the message format for didChange
Feb 11, 2019
a0818d8
Merge pull request #7 from subhashjha333/subhashMaster
shubhsnov Feb 11, 2019
b494330
Changing custom notification and request handlers, correcting typo, a…
shubhsnov Feb 13, 2019
6a4d45a
Changing custom notification and request handlers, correcting typo, a…
Feb 13, 2019
4a09923
Merge pull request #8 from subhashjha333/subhashMaster
shubhsnov Feb 13, 2019
4590468
Stop Creation of Multiple Language Servers
shubhsnov Feb 19, 2019
74d8a70
Stop Creation of Multiple Language Servers
Feb 19, 2019
1384ffe
Merge pull request #9 from subhashjha333/subhashMaster
shubhsnov Feb 19, 2019
5ad71bc
Make Language Client Generic, address review comments
shubhsnov Feb 19, 2019
75d5407
Make Language Client Generic, address review comments
Feb 19, 2019
c4e9dfe
Correcting param descriptions
shubhsnov Feb 19, 2019
f0a5529
Correcting param descriptions
Feb 19, 2019
9f90371
Merge pull request #10 from subhashjha333/subhashMaster
shubhsnov Feb 19, 2019
447179d
Modifying events handling logic for Language Client, add formatting o…
shubhsnov Feb 21, 2019
57fb773
Modifying events handling logic for Language Client, add formatting o…
Feb 21, 2019
f653a6d
Merge pull request #11 from subhashjha333/subhashMaster
shubhsnov Feb 21, 2019
150da53
Add handlers for node side
shubhsnov Feb 23, 2019
bf1649e
Add handlers for node side
Feb 23, 2019
b7f47ce
Removing explicit param creation, substituting with appropriate checks
shubhsnov Feb 23, 2019
203c0e1
Removing explicit param creation, substituting with appropriate checks
Feb 23, 2019
c1ddfb9
Fixing lint errors in MessageHandler.js
shubhsnov Feb 23, 2019
88bdb2e
Fixing lint errors in MessageHandler.js
Feb 23, 2019
6184758
Merge pull request #12 from subhashjha333/subhashMaster
shubhsnov Mar 5, 2019
34684e1
Messaging related cleanup
shubhsnov Mar 10, 2019
3fcb2d7
Messaging related cleanup
Mar 10, 2019
7931b7f
Adding default providers and feature managers
shubhsnov Mar 11, 2019
5a842f0
Adding default providers and feature managers
Mar 11, 2019
d199455
Adding banner and fixing lint error
shubhsnov Mar 11, 2019
c802d19
Adding banner and fixing lint error
Mar 11, 2019
822cc83
fix spacing issue
shubhsnov Mar 11, 2019
202cb66
fix spacing issue
Mar 11, 2019
ad8316b
Merge pull request #13 from subhashjha333/subhashMaster
shubhsnov Mar 11, 2019
65c57fc
Fix spacing issues
shubhsnov Mar 11, 2019
291a4ca
Fix spacing issues
Mar 11, 2019
c03bd7e
Merge pull request #14 from subhashjha333/subhashMaster
shubhsnov Mar 11, 2019
36349b4
Add filetype checks for all events, minor server info corrections
shubhsnov Mar 13, 2019
2b8ceb5
Add filetype checks for all events, minor server info corrections
Mar 13, 2019
53156c9
Handling Reload with Extension Scenario, minor JumpToDef provider fix
shubhsnov Mar 13, 2019
b3fe8e1
Handling Reload with Extension Scenario, minor JumpToDef provider fix
Mar 13, 2019
9b1f78a
Merge pull request #15 from subhashjha333/subhashMaster
shubhsnov Mar 13, 2019
a86e973
Correcting Typo
shubhsnov Mar 13, 2019
1856754
Correcting Typo
Mar 13, 2019
7e6076b
Merge pull request #16 from subhashjha333/subhashMaster
shubhsnov Mar 13, 2019
85a95a0
Adding bug fixes
shubhsnov Mar 18, 2019
1feb290
Adding bug fixes
Mar 18, 2019
bb511eb
Merge pull request #17 from subhashjha333/subhashMaster
shubhsnov Mar 18, 2019
ac6fbb2
Adding bug fixes 2
shubhsnov Mar 18, 2019
dd9e016
Adding bug fixes 2
Mar 18, 2019
0191bac
Addressing Review: Fixing minor typo
shubhsnov Mar 18, 2019
1ed1843
Addressing Review: Fixing minor typo
Mar 18, 2019
946ef34
Merge pull request #18 from subhashjha333/subhashMaster
shubhsnov Mar 18, 2019
ea67c2d
Minor bug fixes, functionality enhancements
shubhsnov Mar 20, 2019
5250e9c
Minor bug fixes, functionality enhancements
Mar 20, 2019
3f7fcd0
Adding tests for Language Server Support: first cut
shubhsnov Mar 20, 2019
58fe60e
Adding tests for Language Server Support: first cut
Mar 20, 2019
619949b
Adding banner, fixing lint errors
shubhsnov Mar 20, 2019
8eb945b
Adding banner, fixing lint errors
Mar 20, 2019
94c2424
Merge pull request #19 from subhashjha333/subhashMaster
shubhsnov Mar 20, 2019
53d2b10
Adding dependency related tasks
shubhsnov Mar 20, 2019
989845c
Adding dependency related tasks
Mar 20, 2019
782f62a
Fixing npm environment string
shubhsnov Mar 20, 2019
fafc45e
Fixing npm environment string
Mar 20, 2019
d108ca3
Merge pull request #20 from subhashjha333/subhashMaster
shubhsnov Mar 20, 2019
c7346a1
Changing handler name
shubhsnov Mar 21, 2019
de6392c
Changing handler name
Mar 21, 2019
0f6439a
Merge pull request #21 from subhashjha333/subhashMaster
shubhsnov Mar 21, 2019
a3bc1bd
Changing file name to ClientLoader
shubhsnov Mar 21, 2019
14b0f03
Changing file name to ClientLoader
Mar 21, 2019
7db5da1
Merge pull request #22 from subhashjha333/subhashMaster
shubhsnov Mar 21, 2019
7a0890c
Changing variable name appropriately
shubhsnov Mar 21, 2019
e86b6e0
Changing variable name appropriately
Mar 21, 2019
fa040da
Grunt related changes for build
shubhsnov Mar 21, 2019
272ed31
Grunt related changes for build
Mar 21, 2019
840ccab
Merge pull request #23 from subhashjha333/subhashMaster
shubhsnov Mar 21, 2019
ef50c53
Adding additional requests and notifications for handling various sce…
shubhsnov Mar 23, 2019
db42893
Adding additional requests and notifications for handling various sce…
Mar 23, 2019
7af98cd
Merge pull request #24 from subhashjha333/subhashMaster
shubhsnov Mar 23, 2019
2f5808f
Adding Path Converter Utilities
shubhsnov Mar 23, 2019
dfed04c
Adding Path Converter Utilities
Mar 23, 2019
6dfd685
Merge pull request #25 from subhashjha333/subhashMaster
shubhsnov Mar 23, 2019
5c93658
Changing Ternary operator to OR operater
shubhsnov Mar 25, 2019
ed6d479
Changing Ternary operator to OR operater
Mar 25, 2019
1fa684d
Addressing review comments
shubhsnov Mar 26, 2019
79bd55e
Addressing review comments
Mar 26, 2019
18267a0
Merge pull request #26 from subhashjha333/subhashMaster
shubhsnov Mar 26, 2019
be448fc
Removing the handler for editor change, will be handled explicitely
shubhsnov Mar 26, 2019
54a3294
Removing the handler for editor change, will be handled explicitely
Mar 26, 2019
de0def7
Merge pull request #27 from subhashjha333/subhashMaster
shubhsnov Mar 26, 2019
81d2c17
Patching JavaScriptCodeHints
shubhsnov Mar 26, 2019
ccd6cc8
Patching JavaScriptCodeHints
Mar 26, 2019
65960d4
Preferences infra for LanguageTools
shubhsnov Mar 26, 2019
bd1c59d
Preferences infra for LanguageTools
Mar 26, 2019
7fbdfd7
Merge pull request #28 from subhashjha333/subhashMaster
shubhsnov Mar 26, 2019
25ad286
Fixing JS ParameterHints
shubhsnov Mar 27, 2019
9bac3c0
Fixing JS ParameterHints
Mar 27, 2019
183bb0e
Merge pull request #29 from subhashjha333/subhashMaster
shubhsnov Mar 27, 2019
1f5c34e
Fixing Default Parameter Hints Provider
shubhsnov Mar 27, 2019
adca02b
Fixing Default Parameter Hints Provider
Mar 27, 2019
481e88a
Merge pull request #30 from subhashjha333/subhashMaster
shubhsnov Mar 27, 2019
69b718d
Fixing Path Converters
shubhsnov Mar 27, 2019
5316603
Fixing Path Converters
Mar 27, 2019
ab3a8ec
Fixing Lint in PathConverters
shubhsnov Mar 27, 2019
0859a3f
Fixing Lint in PathConverters
Mar 27, 2019
35a3407
Retaining Posix Path on Win
shubhsnov Mar 27, 2019
991a496
Retaining Posix Path on Win
Mar 27, 2019
a287c84
Merge pull request #31 from subhashjha333/subhashMaster
shubhsnov Mar 27, 2019
6bc0bfc
Fixing lint errors
shubhsnov Mar 27, 2019
5336b1a
Fixing lint errors
Mar 27, 2019
fa6563b
Fixing Node side Utils
shubhsnov Mar 28, 2019
45d46fa
Fixing Node side Utils
Mar 28, 2019
3fe3008
Merge pull request #32 from subhashjha333/subhashMaster
shubhsnov Mar 28, 2019
e89f52c
Fixing Promise related Issues
shubhsnov Mar 28, 2019
7a55ba0
Fixing Promise related Issues
Mar 28, 2019
1acd762
Merge pull request #33 from subhashjha333/subhashMaster
shubhsnov Mar 28, 2019
2bb01b2
Set Server Capability in Start call
shubhsnov Mar 28, 2019
603c07d
Set Server Capability in Start call
Mar 28, 2019
a859b9a
Merge pull request #34 from subhashjha333/subhashMaster
shubhsnov Mar 28, 2019
2e49aed
Review Comments & Bug Fixes
shubhsnov Mar 29, 2019
466c7f9
Review Comments & Bug Fixes
Mar 29, 2019
4b65e19
Merge pull request #35 from subhashjha333/subhashMaster
shubhsnov Mar 29, 2019
bc06314
Addressing Review Comments
shubhsnov Apr 1, 2019
c8d38aa
Addressing Review Comments
Apr 1, 2019
3b972f3
Fixing Lint
shubhsnov Apr 1, 2019
398be65
Fixing Lint
Apr 1, 2019
56a12b1
Merge pull request #36 from subhashjha333/subhashMaster
shubhsnov Apr 1, 2019
0a28890
Merge pull request #37 from subhashjha333/fixAuthor
shubhsnov Apr 1, 2019
9f46857
Merge pull request #38 from subhashjha333/subhashMaster
shubhsnov Apr 1, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -80,5 +80,15 @@ module.exports = {
"Uint32Array": false,
"WebSocket": false,
"XMLHttpRequest": false
},
"parserOptions": {
"ecmaVersion": 6,
"sourceType": "script",
"ecmaFeatures": {
"arrowFunctions": true,
"binaryLiterals": true,
"blockBindings": true,
"classes": true
}
}
};
12 changes: 12 additions & 0 deletions src/brackets.js
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,18 @@ define(function (require, exports, module) {
require("JSUtils/Session");
require("JSUtils/ScopeManager");

//load Language Tools Module
require("languageTools/LanguageTools");
require("languageTools/ClientLoader");
require("languageTools/BracketsToNodeInterface");
require("languageTools/DefaultProviders");
require("languageTools/DefaultEventHandlers");

//load language features
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: fix indentation.

require("features/ParameterHintsManager");
require("features/JumpToDefManager");


PerfUtils.addMeasurement("brackets module dependencies resolved");

// Local variables
Expand Down
99 changes: 99 additions & 0 deletions src/features/JumpToDefManager.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
/*
* Copyright (c) 2019 - present Adobe. All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
*/

define(function (require, exports, module) {
"use strict";

var Commands = require("command/Commands"),
AppInit = require("utils/AppInit"),
CommandManager = require("command/CommandManager"),
EditorManager = require("editor/EditorManager"),
PerfUtils = require("utils/PerfUtils"),
Menus = require("command/Menus"),
ProviderRegistrationHandler = require("features/PriorityBasedRegistration").RegistrationHandler;

var _providerRegistrationHandler = new ProviderRegistrationHandler(),
registerJumpToDefProvider = _providerRegistrationHandler.registerProvider.bind(_providerRegistrationHandler),
removeJumpToDefProvider = _providerRegistrationHandler.removeProvider.bind(_providerRegistrationHandler);


/**
* Asynchronously asks providers to handle jump-to-definition.
* @return {!Promise} Resolved when the provider signals that it's done; rejected if no
* provider responded or the provider that responded failed.
*/
function _doJumpToDef() {
var request = null,
result = new $.Deferred(),
jumpToDefProvider = null,
editor = EditorManager.getActiveEditor();

if (editor) {
// Find a suitable provider, if any
var language = editor.getLanguageForSelection(),
enabledProviders = _providerRegistrationHandler.getProvidersForLanguageId(language.getId());

PerfUtils.markStart(PerfUtils.JUMP_TO_DEFINITION);

enabledProviders.some(function (item, index) {
if (item.provider.canJumpToDef(editor)) {
jumpToDefProvider = item.provider;
return true;
}
});

if (jumpToDefProvider) {
request = jumpToDefProvider.doJumpToDef(editor);

if (request) {
request.done(function () {
PerfUtils.finalizeMeasurement(PerfUtils.JUMP_TO_DEFINITION);
result.resolve();
}).fail(function () {
// terminate timer that was started above
PerfUtils.finalizeMeasurement(PerfUtils.JUMP_TO_DEFINITION);
result.reject();
});
} else {
// terminate timer that was started above
PerfUtils.finalizeMeasurement(PerfUtils.JUMP_TO_DEFINITION);
result.reject();
}
} else {
EditorManager.doJumpToDef();
}
} else {
result.reject();
}

return result.promise();
}

AppInit.htmlReady(function () {
CommandManager.get(Commands.NAVIGATE_JUMPTO_DEFINITION)._commandFn = _doJumpToDef;
Menus.getContextMenu(Menus.ContextMenuIds.EDITOR_MENU).addMenuItem(Commands.NAVIGATE_JUMPTO_DEFINITION);
});

exports.registerJumpToDefProvider = registerJumpToDefProvider;
exports.removeJumpToDefProvider = removeJumpToDefProvider;
});
Loading