summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* [clangd] Move function argument snippet disable mechanism from LSP rendering ↵Kadir Cetinkaya2018-08-231-42/+22
| | | | | | | | | | | | | | | | | | | to internal clangd reprensentation. Summary: We were handling the EnableFunctionArgSnippets only when we are producing LSP response. Move that code into CompletionItem generation so that internal clients can benefit from that as well. Reviewers: ilya-biryukov, ioeric, hokein Reviewed By: ilya-biryukov Subscribers: MaskRay, jkorous, arphaman, cfe-commits Differential Revision: https://reviews.llvm.org/D51102 llvm-svn: 340527
* [clangd] Add parantheses while auto-completing functions.Kadir Cetinkaya2018-08-171-0/+52
| | | | | | | | | | | | | | | | | | | Summary: Currently we only add parantheses to the functions if snippets are enabled, which also inserts snippets for parameters into parantheses. Adding a new option to put only parantheses. Also it moves the cursor within parantheses or at the end of them by looking at whether completion item has any parameters or not. Still requires snippets support on the client side. Reviewers: ioeric, ilya-biryukov, hokein Reviewed By: ioeric Subscribers: MaskRay, jkorous, arphaman, cfe-commits Differential Revision: https://reviews.llvm.org/D50835 llvm-svn: 340040
* Fix clangd tests on older compilersSimon Pilgrim2018-08-171-10/+10
| | | | | | Old versions of gcc struggle with raw string literals inside macros. llvm-svn: 340009
* [clangd] Fetch documentation from the Index during signature helpIlya Biryukov2018-08-171-2/+56
| | | | | | | | | | | | | | | | Summary: Sema can only be used for documentation in the current file, other doc comments should be fetched from the index. Reviewers: hokein, ioeric, kadircet Reviewed By: hokein, kadircet Subscribers: MaskRay, jkorous, mgrang, arphaman, cfe-commits Differential Revision: https://reviews.llvm.org/D50727 llvm-svn: 340005
* Attempt to fix clangd tests on older compilersSimon Pilgrim2018-08-161-12/+16
| | | | | | | | Old gcc versions of gcc struggle with raw string literals inside macros. Inspired by rL339759 llvm-svn: 339866
* [clangd] Show non-instantiated decls in signatureHelpIlya Biryukov2018-08-141-0/+53
| | | | | | | | | | | | | | | | | | | | | | | Summary: To avoid producing very verbose output in substitutions involving typedefs, e.g. T -> std::vector<std::string>::iterator gets turned into an unreadable mess when printed out for libstdc++, result contains internal types (std::__Vector_iterator<...>) and expanded well-defined typedefs (std::basic_string<char>). Until we improve the presentation code in clang, going with non-instantiated decls looks like a better UX trade-off. Reviewers: hokein, ioeric, kadircet Reviewed By: hokein Subscribers: MaskRay, jkorous, arphaman, cfe-commits Differential Revision: https://reviews.llvm.org/D50645 llvm-svn: 339665
* [clangd] Introduce scoring mechanism for SignatureInformations.Kadir Cetinkaya2018-08-131-0/+22
| | | | | | | | | | | | Reviewers: ilya-biryukov Reviewed By: ilya-biryukov Subscribers: mgrang, ioeric, MaskRay, jkorous, arphaman, cfe-commits Differential Revision: https://reviews.llvm.org/D50555 llvm-svn: 339547
* [clangd] Support textEdit in addition to insertText.Kadir Cetinkaya2018-08-131-0/+76
| | | | | | | | | | | | | | | | Summary: Completion replies contains textEdits as well. Note that this change relies on https://reviews.llvm.org/D50443. Reviewers: ilya-biryukov Reviewed By: ilya-biryukov Subscribers: mgrang, ioeric, MaskRay, jkorous, arphaman, cfe-commits Differential Revision: https://reviews.llvm.org/D50449 llvm-svn: 339543
* [clangd] Fix a "-Wdangling-else" compiler warning in the test.Haojian Wu2018-08-101-1/+2
| | | | llvm-svn: 339416
* Added functionality to suggest FixIts for conversion of '->' to '.' and vice ↵Kadir Cetinkaya2018-08-081-0/+96
| | | | | | | | | | | | | | | | versa. Summary: Added functionality to suggest FixIts for conversion of '->' to '.' and vice versa. Reviewers: ilya-biryukov Reviewed By: ilya-biryukov Subscribers: yvvan, ioeric, jkorous, arphaman, cfe-commits, kadircet Differential Revision: https://reviews.llvm.org/D50193 llvm-svn: 339224
* [clangd] Index Interfaces for XrefsHaojian Wu2018-08-061-0/+4
| | | | | | | | | | | | | | Summary: This is the first step of implementing Xrefs in clangd: - add index interfaces, and related data structures. Reviewers: sammccall Subscribers: ilya-biryukov, ioeric, MaskRay, jkorous, arphaman, cfe-commits Differential Revision: https://reviews.llvm.org/D49658 llvm-svn: 339011
* [clangd] Use a sigmoid style function for #usages boost in symbol quality.Eric Liu2018-07-251-4/+5
| | | | | | | | | | | | | | | | | | Summary: This has a shape to similar logarithm function but grows much slower for large #usages. Metrics: https://reviews.llvm.org/P8096 Reviewers: ilya-biryukov Reviewed By: ilya-biryukov Subscribers: MaskRay, jkorous, arphaman, cfe-commits, sammccall Differential Revision: https://reviews.llvm.org/D49780 llvm-svn: 337907
* [clangd] Penalize non-instance members when accessed via class instances.Eric Liu2018-07-231-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The following are metrics for explicit member access completions. There is no noticeable impact on other completion types. Before: EXPLICIT_MEMBER_ACCESS Total measurements: 24382 All measurements: MRR: 62.27 Top10: 80.21% Top-100: 94.48% Full identifiers: MRR: 98.81 Top10: 99.89% Top-100: 99.95% 0-5 filter len: MRR: 13.25 46.31 62.47 67.77 70.40 81.91 Top-10: 29% 74% 84% 91% 91% 97% Top-100: 67% 99% 99% 99% 99% 100% After: EXPLICIT_MEMBER_ACCESS Total measurements: 24382 All measurements: MRR: 63.18 Top10: 80.58% Top-100: 95.07% Full identifiers: MRR: 98.79 Top10: 99.89% Top-100: 99.95% 0-5 filter len: MRR: 13.84 48.39 63.55 68.83 71.28 82.64 Top-10: 30% 75% 84% 91% 91% 97% Top-100: 70% 99% 99% 99% 99% 100% * Top-N: wanted result is found in the first N completion results. * MRR: Mean reciprocal rank. Remark: the change seems to have minor positive impact. Although the improvement is relatively small, down-ranking non-instance members in instance member access should reduce noise in the completion results. Reviewers: sammccall Reviewed By: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, cfe-commits Differential Revision: https://reviews.llvm.org/D49543 llvm-svn: 337681
* [clangd] Also get scope for RK_pattern completion results.Eric Liu2018-07-181-0/+12
| | | | | | | For exmaple, clas field candidates in constructor initializers can be RK_Pattern, but they can still have scopes. llvm-svn: 337396
* [clangd] Ignore sema code complete callback with recovery context.Eric Liu2018-07-111-3/+19
| | | | | | | | | | | | | | | | | | | Summary: Sema code complete in the recovery mode is generally useless. For many cases, sema first completes in recovery context and then recovers to more useful context, in which it's favorable to ignore results from recovery (as results are often bad e.g. all builtin symbols and top-level symbols). There is also case where only sema would fail to recover e.g. completions in excluded #if block. Sema would try to give results, but the results are often useless (see the updated excluded #if block test). Reviewers: sammccall, ilya-biryukov Subscribers: MaskRay, jkorous, cfe-commits Differential Revision: https://reviews.llvm.org/D49175 llvm-svn: 336801
* [clangd] Make SymbolOrigin an enum class, rather than a plain enum.Sam McCall2018-07-061-2/+1
| | | | | | | I never intended to define namespace pollution like clangd::AST, clangd::Unknown etc. Oops! llvm-svn: 336431
* [clangd] Track origins of symbols (various indexes, Sema).Sam McCall2018-07-051-3/+14
| | | | | | | | | | | | Summary: Surface it in the completion items C++ API, and when a flag is set. Reviewers: ioeric Subscribers: ilya-biryukov, MaskRay, jkorous, cfe-commits Differential Revision: https://reviews.llvm.org/D48938 llvm-svn: 336309
* [clangd] Remove CompletionItem::SymbolScope extension.Sam McCall2018-07-031-1/+0
| | | | | | | This was never serialized, and embedders now have access to the CodeCompletion API, which includes this information. llvm-svn: 336173
* [clangd] ClangdServer::codeComplete return CodeCompleteResult, not LSP struct.Sam McCall2018-07-021-159/+177
| | | | | | | | | | | | | | | | | | | | Summary: This provides more structured information that embedders can use for rendering. ClangdLSPServer continues to call render(), so NFC. The patch is: - trivial changes to ClangdServer/ClangdLSPServer - mostly-mechanical updates to CodeCompleteTests etc for the new API - new direct tests of render() in CodeCompleteTests - tiny cleanups to CodeCompletionItem (operator<< and missing initializers) Reviewers: ioeric Subscribers: ilya-biryukov, MaskRay, jkorous, cfe-commits Differential Revision: https://reviews.llvm.org/D48821 llvm-svn: 336094
* [clangd] Do not show namespace comments.Ilya Biryukov2018-06-271-0/+5
| | | | | | | | | | | | | | | | | | | | | Summary: Comments from namespaces that clangd produces are too noisy and often not useful. Namespaces have too many redecls and we don't have a good way of determining which of the comments are relevant and which should be ignored (e.g. because they come from code generators like the protobuf compiler). Reviewers: sammccall Reviewed By: sammccall Subscribers: ioeric, MaskRay, jkorous, cfe-commits Differential Revision: https://reviews.llvm.org/D48211 llvm-svn: 335718
* [clangd] More precise representation of symbol names/labels in the index.Sam McCall2018-06-221-3/+0
| | | | | | | | | | | | | | | | | | | | | | Summary: Previously, the strings matched LSP completion pretty closely. The completion label was a single string, for instance. This made implementing completion itself easy but makes it hard to use the names in other way, e.g. pretty-printed name in synthesized documentation/hover. It also limits our introspection into completion items, which can only be as precise as the indexed symbols. This change is a prerequisite to improvements to overload bundling which need to inspect e.g. signature structure. Reviewers: ioeric Subscribers: ilya-biryukov, MaskRay, jkorous, cfe-commits Differential Revision: https://reviews.llvm.org/D48475 llvm-svn: 335360
* [clangd] Expose qualified symbol names in CompletionItem (C++ structure ↵Eric Liu2018-06-221-0/+12
| | | | | | | | | | | | | | | | | | | | only, no json). Summary: The qualified name can be used to match a completion item to its corresponding symbol. This can be useful for tools that measure code completion quality. Qualified names are not precise for identifying symbols; we need to figure out a better way to identify completion items. Reviewers: sammccall Reviewed By: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, cfe-commits Differential Revision: https://reviews.llvm.org/D48425 llvm-svn: 335334
* Fix clangd test to pass when delayed template parsing is on by defaultReid Kleckner2018-06-181-0/+3
| | | | llvm-svn: 334973
* [clangd] UI for completion items that would trigger include insertion.Eric Liu2018-06-151-8/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: For completion items that would trigger include insertions (i.e. index symbols that are not #included yet), add a visual indicator "+" before the completion label. The inserted headers will appear in the completion detail. Open to suggestions for better visual indicators; "+" was picked because it seems cleaner than a few other candidates I've tried (*, #, @ ...). The displayed header would be like a/b/c.h (without quote) or <vector> for system headers. I didn't add quotation or "#include" because they can take up limited space and do not provide additional information after users know what the headers are. I think a header alone should be obvious for users to infer that this is an include header.. To align indentation, also prepend ' ' to labels of candidates that would not trigger include insertions (only for completions where index results are possible). Vim: {F6357587} vscode: {F6357589} {F6357591} Reviewers: sammccall, ilya-biryukov, hokein Reviewed By: sammccall Subscribers: MaskRay, jkorous, cfe-commits Differential Revision: https://reviews.llvm.org/D48163 llvm-svn: 334828
* [clangd] Add option to fold overloads into a single completion item.Sam McCall2018-06-151-0/+52
| | | | | | | | | | | | | | | | | | | | | Summary: Adds a CodeCompleteOption to folds together compatible function/method overloads into a single item. This feels pretty good (for editors with signatureHelp support), but has limitations. This happens in the code completion merge step, so there may be inconsistencies (e.g. if only one overload made it into the index result list, no folding). We don't want to bundle together completions that have different side-effects (include insertion), because we can't constructo a coherent CompletionItem. This may be confusing for users, as the reason for non-bundling may not be immediately obvious. (Also, the implementation seems a little fragile) Subscribers: ilya-biryukov, ioeric, MaskRay, jkorous, cfe-commits Differential Revision: https://reviews.llvm.org/D47957 llvm-svn: 334822
* [clangd] Do not report comments that only have special chars.Ilya Biryukov2018-06-151-0/+59
| | | | | | | | | | | | | | | | | | | | | Summary: Like the following: // ------- // ======= // ******* It does not cover all the cases, but those are definitely not very useful. Reviewers: sammccall, ioeric, hokein Reviewed By: sammccall Subscribers: MaskRay, jkorous, cfe-commits Differential Revision: https://reviews.llvm.org/D48171 llvm-svn: 334807
* [clangd] FuzzyMatch: forbid tail-tail matches after a miss: [pat] !~ "panther"Sam McCall2018-06-141-20/+15
| | | | | | | | | | | | | | | | | Summary: This is a small code change but vastly reduces noise in code completion results. The intent of allowing this was to let [sc] ~ "strncpy" and [strcpy] ~ "strncpy" however the benefits for unsegmented names aren't IMO worth the costs. Test cases should be representative of the changes here. Reviewers: ilya-biryukov Subscribers: ioeric, MaskRay, jkorous, cfe-commits Differential Revision: https://reviews.llvm.org/D47950 llvm-svn: 334712
* [clangd] Require case-insensitive prefix match for macro completions.Sam McCall2018-06-081-1/+3
| | | | | | | | | | | | Summary: Macros are terribly spammy at the moment and this offers some relief. Reviewers: ioeric Subscribers: ilya-biryukov, MaskRay, jkorous, cfe-commits Differential Revision: https://reviews.llvm.org/D47936 llvm-svn: 334287
* [clangd] Code completion: drop explicit injected names/operators, ignore ↵Sam McCall2018-06-071-6/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sema priority Summary: Now we have most of Sema's code completion signals incorporated in Quality, which will allow us to give consistent ranking to sema/index results. Therefore we can/should stop using Sema priority as an explicit signal. This fixes some issues like namespaces always having a terrible score. The most important missing signals are: - Really dumb/rarely useful completions like: SomeStruct().^SomeStruct SomeStruct().^operator= SomeStruct().~SomeStruct() We already filter out destructors, this patch adds injected names and operators to that list. - type matching the expression context. Ilya has a plan to add this in a way that's compatible with indexes (design doc should be shared real soon now!) Reviewers: ioeric Subscribers: ilya-biryukov, MaskRay, jkorous, cfe-commits Differential Revision: https://reviews.llvm.org/D47871 llvm-svn: 334192
* [clangd] Add "member" symbols to the indexMarc-Andre Laperle2018-06-051-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: This adds more symbols to the index: - member variables and functions - enum constants in scoped enums The code completion behavior should remain intact but workspace symbols should now provide much more useful symbols. Other symbols should be considered such as the ones in "main files" (files not being included) but this can be done separately as this introduces its fair share of problems. Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com> Reviewers: ioeric, sammccall Reviewed By: ioeric, sammccall Subscribers: hokein, sammccall, jkorous, klimek, ilya-biryukov, jkorous-apple, ioeric, MaskRay, cfe-commits Differential Revision: https://reviews.llvm.org/D44954 llvm-svn: 334017
* [clangd] Avoid inserting new #include when declaration is present in the ↵Eric Liu2018-05-301-3/+33
| | | | | | | | | | | | | | | | | main file. Summary: Also fix USR generation for classes in unit tests. The previous USR only works for class members, which happens to work when completing class name inside the class, where constructors are suggested by sema. Reviewers: sammccall, ilya-biryukov Subscribers: klimek, MaskRay, jkorous, cfe-commits Differential Revision: https://reviews.llvm.org/D47466 llvm-svn: 333519
* [clangd] Remove the outdated comment. NFCIlya Biryukov2018-05-281-1/+0
| | | | llvm-svn: 333373
* [clangd] Fix leak sanitizers warnings in clangdIlya Biryukov2018-05-281-0/+20
| | | | | | | | | | | | | | | | The commit includes two changes: 1. Set DisableFree to false when building the ParsedAST. This is sane default, since clangd never wants to leak the AST. 2. Make sure CompilerInstance created in code completion is passed to the FrontendAction::BeginSourceFile call. We have to do this to make sure the memory buffers of remapped files are properly freed. Our tests do not produce any warnings under asan anymore. The changes are mostly trivial, just moving the code around. So sending without review. llvm-svn: 333370
* [clangd] Workaround the comments crash, reenable the test.Ilya Biryukov2018-05-281-1/+1
| | | | | | | | | | | This fix is still quite fragile, the underlying problem is that the code should not rely on source ranges coming from the preamble to be correct when reading from the text buffers. This is probably not possible to achieve in practice, so we would probably have to keep the contents of old headers around for the lifetime of the preamble. llvm-svn: 333369
* [clangd] Temporarily disable the test that crashes under asan.Ilya Biryukov2018-05-251-1/+2
| | | | | | | | | It turns out that our fix did not solve the problem completely and the crash due to stale preamble is still there under asan. Disabling the test for now, will reenable it when landing a proper fix for the problem. llvm-svn: 333280
* [clangd] Serve comments for headers decls from dynamic index onlyIlya Biryukov2018-05-241-0/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: To fix a crash in code completion that occurrs when reading doc comments from files that were updated after the preamble was computed. In that case, the files on disk could've been changed and we can't rely on finding the comment text with the same range anymore. The current workaround is to not provide comments from the headers at all and rely on the dynamic index instead. A more principled solution would be to store contents of the files read inside the preamble, but it is way harder to implement properly, given that it would definitely increase the sizes of the preamble. Together with D47272, this should fix all preamble-related crashes we're aware of. Reviewers: sammccall Reviewed By: sammccall Subscribers: klimek, ioeric, MaskRay, jkorous, cfe-commits Differential Revision: https://reviews.llvm.org/D47274 llvm-svn: 333189
* [clangd] Fix code completion in MACROs with stringification.Eric Liu2018-05-241-0/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Currently, we only handle the first callback from sema code completion and ignore results from potential following callbacks. This causes causes loss of completion results when multiple contexts are tried by Sema. For example, we wouldn't get any completion result in the following completion as the first attemped context is natural language which has no candidate. The parser would backtrack and tried a completion with AST semantic, which would find candidate "::x". ``` void f(const char*, int); #define F(x) f(#x, x) int x; void main() { F(::^); } ``` To fix this, we only process a sema callback when it gives completion results or the context supports index-based completion. Reviewers: ilya-biryukov Reviewed By: ilya-biryukov Subscribers: klimek, MaskRay, jkorous, cfe-commits Differential Revision: https://reviews.llvm.org/D47256 llvm-svn: 333174
* [clangd] Parse all comments in Sema and completion.Ilya Biryukov2018-05-161-0/+24
| | | | | | | | | | | | | | | | | | | | | Summary: And add tests for the comment extraction code. clangd will now show non-doxygen comments in completion for results coming from Sema and Dynamic index. Static index does not include the comments yet, I will enable it in a separate commit after investigating which implications it has for the size of the index. Reviewers: sammccall, hokein, ioeric Reviewed By: sammccall Subscribers: klimek, MaskRay, jkorous, cfe-commits Differential Revision: https://reviews.llvm.org/D46002 llvm-svn: 332460
* [clangd] Retrieve minimally formatted comment text in completion.Ilya Biryukov2018-05-161-5/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Previous implementation used to extract brief text from doxygen comments. Brief text parsing slows down completion and is not suited for non-doxygen comments. This commit switches to providing comments that mimic the ones originally written in the source code, doing minimal reindenting and removing the comments markers to make the output more user-friendly. It means we lose support for doxygen-specific features, e.g. extracting brief text, but provide useful results for non-doxygen comments. Switching the doxygen support back is an option, but I suggest to see whether the current approach gives more useful results. Reviewers: sammccall, hokein, ioeric Reviewed By: sammccall Subscribers: klimek, MaskRay, jkorous, cfe-commits Differential Revision: https://reviews.llvm.org/D45999 llvm-svn: 332459
* [clangd] Populate #include insertions as additional edits in completion items.Eric Liu2018-05-151-7/+61
| | | | | | | | | | | | | | | | | | | | Summary: o Remove IncludeInsertion LSP command. o Populate include insertion edits synchromously in completion items. o Share the code completion compiler instance and precompiled preamble to get existing inclusions in main file. o Include insertion logic lives only in CodeComplete now. o Use tooling::HeaderIncludes for inserting new includes. o Refactored tests. Reviewers: sammccall Reviewed By: sammccall Subscribers: klimek, ilya-biryukov, MaskRay, jkorous, cfe-commits Differential Revision: https://reviews.llvm.org/D46497 llvm-svn: 332363
* [clangd] Don't query index when completing inside classesIlya Biryukov2018-05-141-0/+61
| | | | | | | | | | | | | | | | | Summary: We used to query the index when completing after class qualifiers, e.g. 'ClassName::^'. We should not do that for the same reasons we don't query the index for member access expressions. Reviewers: sammccall, ioeric Reviewed By: sammccall Subscribers: klimek, MaskRay, jkorous, cfe-commits Differential Revision: https://reviews.llvm.org/D46795 llvm-svn: 332226
* [clangd] Incorporate #occurrences in scoring code complete results.Sam McCall2018-05-031-0/+15
| | | | | | | | | | | | Summary: needs tests Reviewers: ilya-biryukov Subscribers: klimek, ioeric, MaskRay, jkorous, cfe-commits Differential Revision: https://reviews.llvm.org/D46183 llvm-svn: 331457
* [clangd] Use operator<< to prevent printers issues in GtestMarc-Andre Laperle2018-04-101-27/+0
| | | | | | | | | | | | | | | | | | | | | | | Summary: It is possible that there will be two different instantiations of the printer template for a given type and some tests could end up calling the wrong (default) one. For example, it was seen in CodeCompleteTests.cpp when printing CompletionItems that it would use the wrong printer because the default is also instantiated in ClangdTests.cpp. With this change, objects that were previously printed with a custom Printer now get printed through the operator<< which is declared alongside the class. This rule of the thumb should make it less error-prone. Reviewers: simark, ilya-biryukov, sammccall Reviewed By: simark, ilya-biryukov, sammccall Subscribers: bkramer, hokein, sammccall, klimek, ilya-biryukov, jkorous-apple, ioeric, MaskRay, cfe-commits Differential Revision: https://reviews.llvm.org/D44764 llvm-svn: 329725
* [clangd] Handle multiple callbacks from Sema's completionIlya Biryukov2018-03-161-0/+37
| | | | | | | | | | | | | | | | | | Summary: When parser backtracks, we might receive multiple code completion callbacks. Previously we had a failing assertion there, now we take first results and hope they are good enough. Reviewers: sammccall Reviewed By: sammccall Subscribers: klimek, jkorous-apple, ioeric, cfe-commits Differential Revision: https://reviews.llvm.org/D44567 llvm-svn: 327717
* [clangd] Add an interface that finds symbol by SymbolID in SymbolIndex.Eric Liu2018-03-141-0/+3
| | | | | | | | | | | | | | | | Summary: Potential use case: argument go-to-definition result with symbol information (e.g. function definition in cc file) that might not be in the AST. Reviewers: sammccall Reviewed By: sammccall Subscribers: klimek, ilya-biryukov, jkorous-apple, cfe-commits Differential Revision: https://reviews.llvm.org/D44305 llvm-svn: 327487
* [clangd] Remove Tagged and some related APIs from ClangdServer.Sam McCall2018-03-121-9/+9
| | | | | | | | | | | | Context can do what Tagged was intended to support (snapshot filesystems), and less intrusively. getTaggedFileSystem() no longer needs a filename. Cleanups while here: - code-complete now returns errors as Expected, like other functions - added an alias Callback<T> for the usual callback function type llvm-svn: 327344
* [clangd] Revamp handling of diagnostics.Ilya Biryukov2018-03-121-9/+8
| | | | | | | | | | | | | | | | Summary: The new implementation attaches notes to diagnostic message and shows the original diagnostics in the message of the note. Reviewers: hokein, ioeric, sammccall Reviewed By: sammccall Subscribers: klimek, mgorny, cfe-commits, jkorous-apple Differential Revision: https://reviews.llvm.org/D44142 llvm-svn: 327282
* [clangd] Don't end completion item labels with '::'Ilya Biryukov2018-03-061-0/+12
| | | | llvm-svn: 326809
* [clangd] Extract ClangdServer::Options struct.Sam McCall2018-03-051-19/+11
| | | | | | | | | | | | | | | | | | Summary: This subsumes most of the params to ClangdServer and ClangdLSPServer. Adjacent changes: - tests use a consistent set of options, except when testing specific options - tests that previously used synchronous mode for convenience no longer do - added a runAddDocument helper to SyncAPIs to mitigate the extra code - rearranged main a bit to follow the structure of the options Reviewers: ilya-biryukov Subscribers: klimek, jkorous-apple, ioeric, cfe-commits Differential Revision: https://reviews.llvm.org/D44088 llvm-svn: 326719
* [clangd] Remove codecomplete override content API. Long live addDocument!Sam McCall2018-02-271-18/+0
| | | | llvm-svn: 326211
OpenPOWER on IntegriCloud