ycm-core / ycmd

A code-completion & code-comprehension server

Home Page:https://ycm-core.github.io/ycmd/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Completion details related issue resolve_completion

pawansingh00 opened this issue · comments

With earlier versions completion/resolve for every matching completion candidate was done up front
With this it changed -- #1473 to Resolve on-demand

There is a flag mentioned -- https://github.com/ycm-core/YouCompleteMe#the-gycm_max_num_candidates_to_detail-option
Which when set as -1 is supposed to resolve the completions Up-Front.

But it doesn't seem to work that way, even when this flag is set as -1 it is not resolving the detailed completions.

Logs when server starts, this confirms the flag is set as -1

2021-11-15 17:20:03,924 - INFO - Completion config: 50, detailing -1 candiates
2021-11-15 17:20:03,925 - INFO - Completion config: 50, detailing -1 candiates
2021-11-15 17:20:03,925 - INFO - Completion config: 50, detailing -1 candiates
2021-11-15 17:20:03,925 - INFO - Completion config: 50, detailing -1 candiates

Log with OLDER VERSION


2021-11-12 14:29:26,273 - INFO - _ResolvedCompletionItem called for ... 
2021-11-12 14:29:26,273 - INFO - {'data': {'rid': '0', 'pid': '30', 'signature': '(Ljava.lang.Object;ILjava.lang.Object;II)V', 'decl_signature': 'Ljava.lang.System;', 'uri': 'file:///home/ubuntu/ycmd/some_java7.java', 'name': 'arraycopy'}, 'insertText': 'arraycopy', 'label': 'arraycopy(Object arg0, int arg1, Object arg2, int arg3, int arg4) : void', 'sortText': '999999179', 'detail': 'System', 'kind': 3}
2021-11-12 14:29:26,273 - INFO - b'Content-Length: 452\r\n\r\n{"id": "33", "jsonrpc": "2.0", "method": "completionItem/resolve", "params": {"data": {"decl_signature": "Ljava.lang.System;", "name": "arraycopy", "pid": "30", "rid": "0", "signature": "(Ljava.lang.Object;ILjava.lang.Object;II)V", "uri": "file:///home/ubuntu/ycmd/some_java7.java"}, "detail": "System", "insertText": "arraycopy", "kind": 3, "label": "arraycopy(Object arg0, int arg1, Object arg2, int arg3, int arg4) : void", "sortText": "999999179"}}'
2021-11-12 14:29:26,283 - INFO - _CompletionItemToCompletionData called ..... 
2021-11-12 14:29:26,284 - INFO - documentation :
 * 
arraycopy
public static void arraycopy(Object <> src, int srcPos, Object <> dest, int destPos, int length) Copies an array from the specified source array, beginning at the specified position, to the specified position of the destination array. A subsequence of array components are copied from the source array referenced by src to the destination array referenced by dest. The number of components copied is equal to the length argument. The components at positions srcPos through srcPos+length-1 in the source array are copied into positions destPos through destPos+length-1, respectively, of the destination array. 
 If the src and dest arguments refer to the same array object, then the copying is performed as if the components at positions srcPos through srcPos+length-1 were first copied to a temporary array with length components and then the contents of the temporary array were copied into positions destPos through destPos+length-1 of the destination array. 

 If dest is null, then a NullPointerException is thrown. 

 If src is null, then a NullPointerException is thrown and the destination array is not modified. 

 Otherwise, if any of the following is true, an ArrayStoreException is thrown and the destination is not modified: 

   - The src argument refers to an object that is not an array. 
   - The dest argument refers to an object that is not an array. 
   - The src argument and dest argument refer to arrays whose component types are different primitive types. 
   - The src argument refers to an array with a primitive component type and the dest argument refers to an array with a reference component type. 
   - The src argument refers to an array with a reference component type and the dest argument refers to an array with a primitive component type. 
 Otherwise, if any of the following is true, an IndexOutOfBoundsException is thrown and the destination is not modified: 

   - The srcPos argument is negative. 
   - The destPos argument is negative. 
   - The length argument is negative. 
   - srcPos+length is greater than src.length, the length of the source array. 
   - destPos+length is greater than dest.length, the length of the destination array. 
 Otherwise, if any actual component of the source array from position srcPos through srcPos+length-1 cannot be converted to the component type of the destination array by assignment conversion, an ArrayStoreException is thrown. In this case, let k be the smallest nonnegative integer less than length such that src[srcPos+k] cannot be converted to the component type of the destination array; when the exception is thrown, source array components from positions srcPos through srcPos+k-1 will already have been copied to destination array positions destPos through destPos+k-1 and no other positions of the destination array will have been modified. (Because of the restrictions already itemized, this paragraph effectively applies only to the situation where both arrays have component types that are reference types.)
  Parameters:
src - the source array.
srcPos - starting position in the source array.
dest - the destination array.
destPos - starting position in the destination data.
length - the number of array elements to be copied.
  Throws:
IndexOutOfBoundsException <> - if copying would cause access of data outside array bounds.
ArrayStoreException <> - if an element in the src array could not be stored into the dest array because of a type mismatch.
NullPointerException <> - if either src or dest is null.


The same call with the newer version


2021-11-15 17:26:31,581 - INFO - _ResolveCompletionItem called for .... 
2021-11-15 17:26:31,581 - INFO - {'label': 'setOut(PrintStream out) : void', 'kind': 2, 'detail': 'System.setOut(PrintStream out) : void', 'sortText': '999999179', 'insertText': 'setOut', 'insertTextFormat': 1, 'textEdit': {'range': {'start': {'line': 11, 'character': 14}, 'end': {'line': 11, 'character': 14}}, 'newText': 'setOut'}, 'data': {'decl_signature': 'Ljava.lang.System;', 'signature': '(Ljava.io.PrintStream;)V', 'name': 'setOut', 'pid': '28', 'rid': '0', 'uri': 'file:///home/pawansingh/ycmd/samples/some_java7.java'}}
2021-11-15 17:26:31,581 - INFO - b'Content-Length: 529\r\n\r\n{"id":31,"jsonrpc":"2.0","method":"completionItem/resolve","params":{"data":{"decl_signature":"Ljava.lang.System;","name":"setOut","pid":"28","rid":"0","signature":"(Ljava.io.PrintStream;)V","uri":"file:///home/pawansingh/ycmd/samples/some_java7.java"},"detail":"System.setOut(PrintStream out) : void","insertText":"setOut","insertTextFormat":1,"kind":2,"label":"setOut(PrintStream out) : void","sortText":"999999179","textEdit":{"newText":"setOut","range":{"end":{"character":14,"line":11},"start":{"character":14,"line":11}}}}}'
2021-11-15 17:26:31,588 - INFO - _CompletionItemToCompletionData called .... 
2021-11-15 17:26:31,589 - INFO - documentation : 

NOTE : Documentation is logged at --

documentation = documentation[ 'value' ]

@puremourning Sorry, did I miss anything while raising the issue ?

Please help me if I missed anything or if I need to follow any specific format, I am pretty new to open source so please excuse if I did any mistake.

No, sorry, I saw that an issue was raised with an empty description and assumed it was a mistake.

Can you please gist the entire DEBUG log in both cases ?

Without any modifications (without adding logs at some places), I am getting this much only in the logs

2021-11-16 10:44:57,555 - INFO - Completion config: 50, detailing -1 candiates
2021-11-16 10:44:57,555 - INFO - Completion config: 50, detailing -1 candiates
2021-11-16 10:44:57,557 - INFO - Completion config: 50, detailing -1 candiates
2021-11-16 10:44:57,558 - INFO - Completion config: 50, detailing -1 candiates
serving on http://pawansingh-pc:5000

2021-11-16 10:46:32,346 - INFO - Adding buffer identifiers for file: /home/pawansingh/ycmd/samples/some_java7.java
2021-11-16 10:46:32,441 - INFO - Looking for jdt.ls
2021-11-16 10:46:32,457 - INFO - Completion config: 50, detailing -1 candiates
2021-11-16 10:46:32,458 - INFO - extension directory does not exist: /home/pawansingh/ycmd/third_party/eclipse.jdt.ls/extensions
2021-11-16 10:46:32,460 - INFO - Starting jdt.ls Language Server...
2021-11-16 10:46:32,484 - INFO - Starting jdt.ls: ['/usr/bin/java', '-Dfile.encoding=UTF-8', '-Declipse.application=org.eclipse.jdt.ls.core.id1', '-Dosgi.bundles.defaultStartLevel=4', '-Declipse.product=org.eclipse.jdt.ls.core.product', '-Dlog.level=ALL', '-jar', '/home/pawansingh/ycmd/third_party/eclipse.jdt.ls/target/repository/plugins/org.eclipse.equinox.launcher_1.6.0.v20200915-1508.jar', '-configuration', '/home/pawansingh/ycmd/third_party/eclipse.jdt.ls/workspace/config_linux', '-data', '/home/pawansingh/ycmd/third_party/eclipse.jdt.ls/workspace/temp/tmp37x62176']
2021-11-16 10:46:32,508 - INFO - jdt.ls started with PID 64595
127.0.0.1 - - [16/Nov/2021 10:46:32] "POST /event_notification HTTP/1.1" 200 2
127.0.0.1 - - [16/Nov/2021 10:46:32] "POST /completions HTTP/1.1" 200 59
2021-11-16 10:46:38,424 - INFO - Adding buffer identifiers for file: /home/pawansingh/ycmd/samples/some_java7.java
127.0.0.1 - - [16/Nov/2021 10:46:38] "POST /event_notification HTTP/1.1" 200 2
127.0.0.1 - - [16/Nov/2021 10:46:38] "POST /completions HTTP/1.1" 200 59
2021-11-16 10:46:39,338 - INFO - java: Language server requires resolve request
2021-11-16 10:46:39,338 - INFO - java: Language server requires sync type of Incremental
2021-11-16 10:46:39,338 - INFO - java: Using trigger characters for semantic triggers: .,@,#,*
2021-11-16 10:46:39,339 - INFO - java: Using characters for signature triggers: (,,,,
2021-11-16 10:46:40,467 - INFO - jdt.ls initialized successfully

2021-11-16 10:46:51,636 - INFO - Adding buffer identifiers for file: /home/pawansingh/ycmd/samples/some_java7.java
127.0.0.1 - - [16/Nov/2021 10:46:51] "POST /event_notification HTTP/1.1" 200 1330
127.0.0.1 - - [16/Nov/2021 10:46:55] "POST /completions HTTP/1.1" 200 7036

Should I add log statements throughout the method calls and share ?

Can you set the log level to DEBUG?

so in the "latest version" one, I do see the resolve requests being made:

2021-11-16 13:48:54,195 - DEBUG - RX: Received message: b'{"jsonrpc":"2.0","id":2,"result":{"isIncomplete":false,"items":[{"label":"class : Class\\u003cjava.lang.System\\u003e","kind":5,"detail":"class : Class\\u003cjava.lang.System\\u003e","sortText":"999999178","insertText":"class","insertTextFormat":1,"textEdit":{"range":{"start":{"line":11,"character":14},"end":{"line":11,"character":14}},"newText":"class"},"data":{"name":"class","pid":"0","rid":"0","uri":"file:///home/pawansingh/ycmd/samples/some_java7.java"}},{"label":"err : PrintStream","kind":21,"detail":"System.err : PrintStream","sortText":"999999178","insertText":"err","insertTextFormat":1,"textEdit":{"range":{"start":{"line":11,"character":14},"end":{"line":11,"character":14}},"newText":"err"},"data":{"decl_signature":"Ljava.lang.System;","name":"err","pid":"1","rid":"0","uri":"file:///home/pawansingh/ycmd/samples/some_java7.java"}},{"label":"in : InputStream","kind":21,"detail":"System.in : InputStream","sortText":"999999178","insertText":"in","insertTextFormat":1,"textEdit":{"range":{"start":{"line":11,"character":14},"end":{"line":11,"character":14}},"newText":"in"},"data":{"decl_signature":"Ljava.lang.System;","name":"in","pid":"2","rid":"0","uri":"file:///home/pawansingh/ycmd/samples/some_java7.java"}},{"label":"out : PrintStream","kind":21,"detail":"System.out : PrintStream","sortText":"999999178","insertText":"out","insertTextFormat":1,"textEdit":{"range":{"start":{"line":11,"character":14},"end":{"line":11,"character":14}},"newText":"out"},"data":{"decl_signature":"Ljava.lang.System;","name":"out","pid":"3","rid":"0","uri":"file:///home/pawansingh/ycmd/samples/some_java7.java"}},{"label":"arraycopy(Object arg0, int arg1, Object arg2, int arg3, int arg4) : void","kind":2,"detail":"System.arraycopy(Object arg0, int arg1, Object arg2, int arg3, int arg4) : void","sortText":"999999179","insertText":"arraycopy","insertTextFormat":1,"textEdit":{"range":{"start":{"line":11,"character":14},"end":{"line":11,"character":14}},"newText":"arraycopy"},"data":{"decl_signature":"Ljava.lang.System;","signature":"(Ljava.lang.Object;ILjava.lang.Object;II)V","name":"arraycopy","pid":"4","rid":"0","uri":"file:///home/pawansingh/ycmd/samples/some_java7.java"}},{"label":"clearProperty(String key) : String","kind":2,"detail":"System.clearProperty(String key) : String","sortText":"999999179","insertText":"clearProperty","insertTextFormat":1,"textEdit":{"range":{"start":{"line":11,"character":14},"end":{"line":11,"character":14}},"newText":"clearProperty"},"data":{"decl_signature":"Ljava.lang.System;","signature":"(Ljava.lang.String;)Ljava.lang.String;","name":"clearProperty","pid":"5","rid":"0","uri":"file:///home/pawansingh/ycmd/samples/some_java7.java"}},{"label":"console() : Console","kind":2,"detail":"System.console() : Console","sortText":"999999179","insertText":"console","insertTextFormat":1,"textEdit":{"range":{"start":{"line":11,"character":14},"end":{"line":11,"character":14}},"newText":"console"},"data":{"decl_signature":"Ljava.lang.System;","signature":"()Ljava.io.Console;","name":"console","pid":"6","rid":"0","uri":"file:///home/pawansingh/ycmd/samples/some_java7.java"}},{"label":"currentTimeMillis() : long","kind":2,"detail":"System.currentTimeMillis() : long","sortText":"999999179","insertText":"currentTimeMillis","insertTextFormat":1,"textEdit":{"range":{"start":{"line":11,"character":14},"end":{"line":11,"character":14}},"newText":"currentTimeMillis"},"data":{"decl_signature":"Ljava.lang.System;","signature":"()J","name":"currentTimeMillis","pid":"7","rid":"0","uri":"file:///home/pawansingh/ycmd/samples/some_java7.java"}},{"label":"exit(int status) : void","kind":2,"detail":"System.exit(int status) : void","sortText":"999999179","insertText":"exit","insertTextFormat":1,"textEdit":{"range":{"start":{"line":11,"character":14},"end":{"line":11,"character":14}},"newText":"exit"},"data":{"decl_signature":"Ljava.lang.System;","signature":"(I)V","name":"exit","pid":"8","rid":"0","uri":"file:///home/pawansingh/ycmd/samples/some_java7.java"}},{"label":"gc() : void","kind":2,"detail":"System.gc() : void","sortText":"999999179","insertText":"gc","insertTextFormat":1,"textEdit":{"range":{"start":{"line":11,"character":14},"end":{"line":11,"character":14}},"newText":"gc"},"data":{"decl_signature":"Ljava.lang.System;","signature":"()V","name":"gc","pid":"9","rid":"0","uri":"file:///home/pawansingh/ycmd/samples/some_java7.java"}},{"label":"getLogger(String arg0, ResourceBundle arg1) : Logger","kind":2,"detail":"System.getLogger(String arg0, ResourceBundle arg1) : Logger","sortText":"999999179","insertText":"getLogger","insertTextFormat":1,"textEdit":{"range":{"start":{"line":11,"character":14},"end":{"line":11,"character":14}},"newText":"getLogger"},"data":{"decl_signature":"Ljava.lang.System;","signature":"(Ljava.lang.String;Ljava.util.ResourceBundle;)Ljava.lang.System$Logger;","name":"getLogger","pid":"10","rid":"0","uri":"file:///home/pawansingh/ycmd/samples/some_java7.java"}},{"label":"getLogger(String name) : Logger","kind":2,"detail":"System.getLogger(String name) : Logger","sortText":"999999179","insertText":"getLogger","insertTextFormat":1,"textEdit":{"range":{"start":{"line":11,"character":14},"end":{"line":11,"character":14}},"newText":"getLogger"},"data":{"decl_signature":"Ljava.lang.System;","signature":"(Ljava.lang.String;)Ljava.lang.System$Logger;","name":"getLogger","pid":"11","rid":"0","uri":"file:///home/pawansingh/ycmd/samples/some_java7.java"}},{"label":"getProperties() : Properties","kind":2,"detail":"System.getProperties() : Properties","sortText":"999999179","insertText":"getProperties","insertTextFormat":1,"textEdit":{"range":{"start":{"line":11,"character":14},"end":{"line":11,"character":14}},"newText":"getProperties"},"data":{"decl_signature":"Ljava.lang.System;","signature":"()Ljava.util.Properties;","name":"getProperties","pid":"12","rid":"0","uri":"file:///home/pawansingh/ycmd/samples/some_java7.java"}},{"label":"getProperty(String key, String def) : String","kind":2,"detail":"System.getProperty(String key, String def) : String","sortText":"999999179","insertText":"getProperty","insertTextFormat":1,"textEdit":{"range":{"start":{"line":11,"character":14},"end":{"line":11,"character":14}},"newText":"getProperty"},"data":{"decl_signature":"Ljava.lang.System;","signature":"(Ljava.lang.String;Ljava.lang.String;)Ljava.lang.String;","name":"getProperty","pid":"13","rid":"0","uri":"file:///home/pawansingh/ycmd/samples/some_java7.java"}},{"label":"getProperty(String key) : String","kind":2,"detail":"System.getProperty(String key) : String","sortText":"999999179","insertText":"getProperty","insertTextFormat":1,"textEdit":{"range":{"start":{"line":11,"character":14},"end":{"line":11,"character":14}},"newText":"getProperty"},"data":{"decl_signature":"Ljava.lang.System;","signature":"(Ljava.lang.String;)Ljava.lang.String;","name":"getProperty","pid":"14","rid":"0","uri":"file:///home/pawansingh/ycmd/samples/some_java7.java"}},{"label":"getSecurityManager() : SecurityManager","kind":2,"detail":"System.getSecurityManager() : SecurityManager","sortText":"999999179","insertText":"getSecurityManager","insertTextFormat":1,"textEdit":{"range":{"start":{"line":11,"character":14},"end":{"line":11,"character":14}},"newText":"getSecurityManager"},"data":{"decl_signature":"Ljava.lang.System;","signature":"()Ljava.lang.SecurityManager;","name":"getSecurityManager","pid":"15","rid":"0","uri":"file:///home/pawansingh/ycmd/samples/some_java7.java"}},{"label":"getenv(String name) : String","kind":2,"detail":"System.getenv(String name) : String","sortText":"999999179","insertText":"getenv","insertTextFormat":1,"textEdit":{"range":{"start":{"line":11,"character":14},"end":{"line":11,"character":14}},"newText":"getenv"},"data":{"decl_signature":"Ljava.lang.System;","signature":"(Ljava.lang.String;)Ljava.lang.String;","name":"getenv","pid":"16","rid":"0","uri":"file:///home/pawansingh/ycmd/samples/some_java7.java"}},{"label":"getenv() : Map\\u003cString,String\\u003e","kind":2,"detail":"System.getenv() : Map\\u003cString,String\\u003e","sortText":"999999179","insertText":"getenv","insertTextFormat":1,"textEdit":{"range":{"start":{"line":11,"character":14},"end":{"line":11,"character":14}},"newText":"getenv"},"data":{"decl_signature":"Ljava.lang.System;","signature":"()Ljava.util.Map\\u003cLjava.lang.String;Ljava.lang.String;\\u003e;","name":"getenv","pid":"17","rid":"0","uri":"file:///home/pawansingh/ycmd/samples/some_java7.java"}},{"label":"identityHashCode(Object arg0) : int","kind":2,"detail":"System.identityHashCode(Object arg0) : int","sortText":"999999179","insertText":"identityHashCode","insertTextFormat":1,"textEdit":{"range":{"start":{"line":11,"character":14},"end":{"line":11,"character":14}},"newText":"identityHashCode"},"data":{"decl_signature":"Ljava.lang.System;","signature":"(Ljava.lang.Object;)I","name":"identityHashCode","pid":"18","rid":"0","uri":"file:///home/pawansingh/ycmd/samples/some_java7.java"}},{"label":"inheritedChannel() : Channel","kind":2,"detail":"System.inheritedChannel() : Channel","sortText":"999999179","insertText":"inheritedChannel","insertTextFormat":1,"textEdit":{"range":{"start":{"line":11,"character":14},"end":{"line":11,"character":14}},"newText":"inheritedChannel"},"data":{"decl_signature":"Ljava.lang.System;","signature":"()Ljava.nio.channels.Channel;","name":"inheritedChannel","pid":"19","rid":"0","uri":"file:///home/pawansingh/ycmd/samples/some_java7.java"}},{"label":"lineSeparator() : String","kind":2,"detail":"System.lineSeparator() : String","sortText":"999999179","insertText":"lineSeparator","insertTextFormat":1,"textEdit":{"range":{"start":{"line":11,"character":14},"end":{"line":11,"character":14}},"newText":"lineSeparator"},"data":{"decl_signature":"Ljava.lang.System;","signature":"()Ljava.lang.String;","name":"lineSeparator","pid":"20","rid":"0","uri":"file:///home/pawansingh/ycmd/samples/some_java7.java"}},{"label":"load(String filename) : void","kind":2,"detail":"System.load(String filename) : void","sortText":"999999179","insertText":"load","insertTextFormat":1,"textEdit":{"range":{"start":{"line":11,"character":14},"end":{"line":11,"character":14}},"newText":"load"},"data":{"decl_signature":"Ljava.lang.System;","signature":"(Ljava.lang.String;)V","name":"load","pid":"21","rid":"0","uri":"file:///home/pawansingh/ycmd/samples/some_java7.java"}},{"label":"loadLibrary(String libname) : void","kind":2,"detail":"System.loadLibrary(String libname) : void","sortText":"999999179","insertText":"loadLibrary","insertTextFormat":1,"textEdit":{"range":{"start":{"line":11,"character":14},"end":{"line":11,"character":14}},"newText":"loadLibrary"},"data":{"decl_signature":"Ljava.lang.System;","signature":"(Ljava.lang.String;)V","name":"loadLibrary","pid":"22","rid":"0","uri":"file:///home/pawansingh/ycmd/samples/some_java7.java"}},{"label":"mapLibraryName(String arg0) : String","kind":2,"detail":"System.mapLibraryName(String arg0) : String","sortText":"999999179","insertText":"mapLibraryName","insertTextFormat":1,"textEdit":{"range":{"start":{"line":11,"character":14},"end":{"line":11,"character":14}},"newText":"mapLibraryName"},"data":{"decl_signature":"Ljava.lang.System;","signature":"(Ljava.lang.String;)Ljava.lang.String;","name":"mapLibraryName","pid":"23","rid":"0","uri":"file:///home/pawansingh/ycmd/samples/some_java7.java"}},{"label":"nanoTime() : long","kind":2,"detail":"System.nanoTime() : long","sortText":"999999179","insertText":"nanoTime","insertTextFormat":1,"textEdit":{"range":{"start":{"line":11,"character":14},"end":{"line":11,"character":14}},"newText":"nanoTime"},"data":{"decl_signature":"Ljava.lang.System;","signature":"()J","name":"nanoTime","pid":"24","rid":"0","uri":"file:///home/pawansingh/ycmd/samples/some_java7.java"}},{"label":"runFinalization() : void","kind":2,"detail":"System.runFinalization() : void","sortText":"999999179","insertText":"runFinalization","insertTextFormat":1,"textEdit":{"range":{"start":{"line":11,"character":14},"end":{"line":11,"character":14}},"newText":"runFinalization"},"data":{"decl_signature":"Ljava.lang.System;","signature":"()V","name":"runFinalization","pid":"25","rid":"0","uri":"file:///home/pawansingh/ycmd/samples/some_java7.java"}},{"label":"setErr(PrintStream err) : void","kind":2,"detail":"System.setErr(PrintStream err) : void","sortText":"999999179","insertText":"setErr","insertTextFormat":1,"textEdit":{"range":{"start":{"line":11,"character":14},"end":{"line":11,"character":14}},"newText":"setErr"},"data":{"decl_signature":"Ljava.lang.System;","signature":"(Ljava.io.PrintStream;)V","name":"setErr","pid":"26","rid":"0","uri":"file:///home/pawansingh/ycmd/samples/some_java7.java"}},{"label":"setIn(InputStream in) : void","kind":2,"detail":"System.setIn(InputStream in) : void","sortText":"999999179","insertText":"setIn","insertTextFormat":1,"textEdit":{"range":{"start":{"line":11,"character":14},"end":{"line":11,"character":14}},"newText":"setIn"},"data":{"decl_signature":"Ljava.lang.System;","signature":"(Ljava.io.InputStream;)V","name":"setIn","pid":"27","rid":"0","uri":"file:///home/pawansingh/ycmd/samples/some_java7.java"}},{"label":"setOut(PrintStream out) : void","kind":2,"detail":"System.setOut(PrintStream out) : void","sortText":"999999179","insertText":"setOut","insertTextFormat":1,"textEdit":{"range":{"start":{"line":11,"character":14},"end":{"line":11,"character":14}},"newText":"setOut"},"data":{"decl_signature":"Ljava.lang.System;","signature":"(Ljava.io.PrintStream;)V","name":"setOut","pid":"28","rid":"0","uri":"file:///home/pawansingh/ycmd/samples/some_java7.java"}},{"label":"setProperties(Properties props) : void","kind":2,"detail":"System.setProperties(Properties props) : void","sortText":"999999179","insertText":"setProperties","insertTextFormat":1,"textEdit":{"range":{"start":{"line":11,"character":14},"end":{"line":11,"character":14}},"newText":"setProperties"},"data":{"decl_signature":"Ljava.lang.System;","signature":"(Ljava.util.Properties;)V","name":"setProperties","pid":"29","rid":"0","uri":"file:///home/pawansingh/ycmd/samples/some_java7.java"}},{"label":"setProperty(String key, String value) : String","kind":2,"detail":"System.setProperty(String key, String value) : String","sortText":"999999179","insertText":"setProperty","insertTextFormat":1,"textEdit":{"range":{"start":{"line":11,"character":14},"end":{"line":11,"character":14}},"newText":"setProperty"},"data":{"decl_signature":"Ljava.lang.System;","signature":"(Ljava.lang.String;Ljava.lang.String;)Ljava.lang.String;","name":"setProperty","pid":"30","rid":"0","uri":"file:///home/pawansingh/ycmd/samples/some_java7.java"}},{"label":"setSecurityManager(SecurityManager s) : void","kind":2,"detail":"System.setSecurityManager(SecurityManager s) : void","sortText":"999999179","insertText":"setSecurityManager","insertTextFormat":1,"textEdit":{"range":{"start":{"line":11,"character":14},"end":{"line":11,"character":14}},"newText":"setSecurityManager"},"data":{"decl_signature":"Ljava.lang.System;","signature":"(Ljava.lang.SecurityManager;)V","name":"setSecurityManager","pid":"31","rid":"0","uri":"file:///home/pawansingh/ycmd/samples/some_java7.java"}},{"label":"LoggerFinder - java.lang.System","kind":7,"detail":"java.lang.System.LoggerFinder","sortText":"999999180","filterText":"LoggerFinder","insertText":"LoggerFinder","insertTextFormat":1,"textEdit":{"range":{"start":{"line":11,"character":14},"end":{"line":11,"character":14}},"newText":"LoggerFinder"},"data":{"decl_signature":"Ljava.lang.System$LoggerFinder;","pid":"32","rid":"0","uri":"file:///home/pawansingh/ycmd/samples/some_java7.java"}},{"label":"Logger - java.lang.System","kind":8,"detail":"java.lang.System.Logger","sortText":"999999180","filterText":"Logger","insertText":"Logger","insertTextFormat":1,"textEdit":{"range":{"start":{"line":11,"character":14},"end":{"line":11,"character":14}},"newText":"Logger"},"data":{"decl_signature":"Ljava.lang.System$Logger;","pid":"33","rid":"0","uri":"file:///home/pawansingh/ycmd/samples/some_java7.java"}}]}}'
2021-11-16 13:48:54,197 - DEBUG - TX: Sending message: b'Content-Length: 638\r\n\r\n{"id":3,"jsonrpc":"2.0","method":"completionItem/resolve","params":{"data":{"decl_signature":"Ljava.lang.System;","name":"arraycopy","pid":"4","rid":"0","signature":"(Ljava.lang.Object;ILjava.lang.Object;II)V","uri":"file:///home/pawansingh/ycmd/samples/some_java7.java"},"detail":"System.arraycopy(Object arg0, int arg1, Object arg2, int arg3, int arg4) : void","insertText":"arraycopy","insertTextFormat":1,"kind":2,"label":"arraycopy(Object arg0, int arg1, Object arg2, int arg3, int arg4) : void","sortText":"999999179","textEdit":{"newText":"arraycopy","range":{"end":{"character":14,"line":11},"start":{"character":14,"line":11}}}}}'

Maybe this has something to do with the jdt.ls version. Are other things working properly ? Maybe try a WipeWorkspace ?

Hi, seems to be less likely an issue with -- jdt.ls
Because tried the same (latest one) by integrating with -- https://github.com/TypeFox/monaco-languageclient
And there on request of - completionItem/resolve it is giving -- the detailed documentation.

image

And not sure on WipeWorkspace - will try to figure it out what it means.

Started getting it after making these changes in -- build.py
Basically, installing latest version of eclipse.jdt.ls

BTW my older version was having --
JDTLS_MILESTONE = '0.14.0'
JDTLS_BUILD_STAMP = '201802282111'
JDTLS_SHA256 = (
'ce27fa4af601d11c3914253d51218667003b51468672d0ae369039ec8a111a3b'
)

So, it doesn't seems to send detailed documentation in case of version -- 0.68.0, which is what is there in current version of the YCMD.

@puremourning Do you want me to close this issue or keep it open?
Should I raise PR with these changes?

Changed

JDTLS_MILESTONE = '0.68.0'
JDTLS_BUILD_STAMP = '202101202016'
JDTLS_SHA256 = (
  'df9c9b497ce86b1d57756b2292ad0f7bfaa76aed8a4b63a31c589e85018b7993'
)

to

JDTLS_MILESTONE = '1.5.0'
JDTLS_BUILD_STAMP = '202110191539'
JDTLS_SHA256 = (
  'fd4a2ce127c2d8a53360809213ced3c07883c743751e72781abc0e9bff614c09'
)

2021-11-16 23:27:08,765 - DEBUG - RX: Received message: b'{"jsonrpc":"2.0","id":19,"result":{"label":"CASE_INSENSITIVE_ORDER : Comparator\\u003cjava.lang.String\\u003e","kind":21,"detail":"String.CASE_INSENSITIVE_ORDER : Comparator\\u003cjava.lang.String\\u003e","documentation":{"kind":"markdown","value":" * #### CASE\\\\_INSENSITIVE\\\\_ORDER ####\\n \\n public static final\xc2\xa0Comparator\\u003cString\\u003e CASE_INSENSITIVE_ORDER\\n \\n A Comparator that orders Stringobjects as bycompareToIgnoreCase. This comparator is serializable.\\n \\n Note that this Comparator does *not* take locale into account, and will result in an unsatisfactory ordering for certain locales. The Collatorclass provides locale-sensitive comparison.\\n \\n Since:\\n \\n 1.2\\n \\n See Also:\\n \\n Collator"},"sortText":"999999178","insertText":"CASE_INSENSITIVE_ORDER","insertTextFormat":1,"textEdit":{"range":{"start":{"line":11,"character":14},"end":{"line":11,"character":14}},"newText":"CASE_INSENSITIVE_ORDER"}}}'

We have been trying to update jdt.ls for a while. However, there are some regressions which make our tests fail.

This PR - #1579 is trying to update eclipse.jdt.ls to 1.3.0
Latest version of eclipse.jdt.ls is 1.5.0, so may be we can try it with that.

@pawansingh00 That won't help. I did try every release on my laptop and a ton of commits in between. 0.71 is where jdt decided it's ok to assume a file exists on the disk, else refuse to work.

We can close this, since we have upgraded to 1.6.0.