@@ -1834,6 +1834,31 @@ impl LanguageClient {
18341834 Ok ( ( ) )
18351835 }
18361836
1837+ pub fn window_showMessageRequest ( & self , params : & Value ) -> Fallible < Value > {
1838+ info ! ( "Begin {}" , lsp:: request:: ShowMessageRequest :: METHOD ) ;
1839+ let msg_params: ShowMessageRequestParams = params. clone ( ) . to_lsp ( ) ?;
1840+ let msg_actions = msg_params. actions . unwrap_or_default ( ) ;
1841+ let actions: Vec < Value > = msg_actions
1842+ . into_iter ( )
1843+ . enumerate ( )
1844+ . map ( |( i, item) | Value :: String ( format ! ( "{}) {}" , i + 1 , item. title) ) )
1845+ . collect ( ) ;
1846+ let mut options: Vec < Value > = Vec :: with_capacity ( actions. len ( ) + 1 ) ;
1847+ options. push ( Value :: String ( msg_params. message ) ) ;
1848+ options. extend ( actions) ;
1849+
1850+ let mut v = Value :: Null ;
1851+ let result: Option < i64 > = self . vim ( ) ?. rpcclient . call ( "s:inputlist" , options) ?;
1852+ if let Some ( answer) = result {
1853+ let raw_actions: Vec < Value > = try_get ( "actions" , & params) ?. unwrap_or_default ( ) ;
1854+ if let Some ( action) = raw_actions. get ( ( answer - 1 ) as usize ) {
1855+ v = action. clone ( ) ;
1856+ }
1857+ }
1858+ info ! ( "End {}" , lsp:: request:: ShowMessageRequest :: METHOD ) ;
1859+ Ok ( v)
1860+ }
1861+
18371862 pub fn client_registerCapability ( & self , languageId : & str , params : & Value ) -> Fallible < Value > {
18381863 info ! ( "Begin {}" , lsp:: request:: RegisterCapability :: METHOD ) ;
18391864 let params: RegistrationParams = params. clone ( ) . to_lsp ( ) ?;
0 commit comments