@@ -1406,225 +1406,6 @@ fn test_no_default_features() {
14061406// ExpectedMessage::new(None).expect_contains("progress").expect_contains(r#""done":true"#)]);
14071407// }
14081408
1409- #[ test]
1410- fn test_deglob ( ) {
1411- let mut env = Environment :: generate_from_fixture ( "deglob" ) ;
1412-
1413- let source_file_path = Path :: new ( "src" ) . join ( "main.rs" ) ;
1414-
1415- let root_path = env. cache . abs_path ( Path :: new ( "." ) ) ;
1416- let url = Url :: from_file_path ( env. cache . abs_path ( & source_file_path) )
1417- . expect ( "couldn't convert file path to URL" ) ;
1418- let text_doc = TextDocumentIdentifier :: new ( url. clone ( ) ) ;
1419- let messages = vec ! [
1420- initialize( 0 , root_path. as_os_str( ) . to_str( ) . map( |x| x. to_owned( ) ) ) . to_string( ) ,
1421- // request deglob for single wildcard
1422- request:: <requests:: CodeAction >(
1423- 100 ,
1424- CodeActionParams {
1425- text_document: text_doc. clone( ) ,
1426- range: env. cache. mk_ls_range_from_line( 12 ) ,
1427- context: CodeActionContext {
1428- diagnostics: vec![ ] ,
1429- only: None ,
1430- } ,
1431- } ,
1432- ) . to_string( ) ,
1433- // deglob single
1434- request:: <requests:: ExecuteCommand >(
1435- 200 ,
1436- ExecuteCommandParams {
1437- command: format!( "rls.deglobImports-{}" , :: std:: process:: id( ) ) ,
1438- arguments: vec![
1439- serde_json:: to_value( & requests:: DeglobResult {
1440- location: Location {
1441- uri: url. clone( ) ,
1442- range: Range :: new( Position :: new( 12 , 13 ) , Position :: new( 12 , 14 ) ) ,
1443- } ,
1444- new_text: "{Stdout, Stdin}" . into( ) ,
1445- } ) . unwrap( ) ,
1446- ] ,
1447- } ,
1448- ) . to_string( ) ,
1449- // request deglob for double wildcard
1450- request:: <requests:: CodeAction >(
1451- 1100 ,
1452- CodeActionParams {
1453- text_document: text_doc,
1454- range: env. cache. mk_ls_range_from_line( 15 ) ,
1455- context: CodeActionContext {
1456- diagnostics: vec![ ] ,
1457- only: None ,
1458- } ,
1459- } ,
1460- ) . to_string( ) ,
1461- // deglob two wildcards
1462- request:: <requests:: ExecuteCommand >(
1463- 1200 ,
1464- ExecuteCommandParams {
1465- command: format!( "rls.deglobImports-{}" , :: std:: process:: id( ) ) ,
1466- arguments: vec![
1467- serde_json:: to_value( & requests:: DeglobResult {
1468- location: Location {
1469- uri: url. clone( ) ,
1470- range: Range :: new( Position :: new( 15 , 14 ) , Position :: new( 15 , 15 ) ) ,
1471- } ,
1472- new_text: "size_of" . into( ) ,
1473- } ) . unwrap( ) ,
1474- serde_json:: to_value( & requests:: DeglobResult {
1475- location: Location {
1476- uri: url,
1477- range: Range :: new( Position :: new( 15 , 31 ) , Position :: new( 15 , 32 ) ) ,
1478- } ,
1479- new_text: "max" . into( ) ,
1480- } ) . unwrap( ) ,
1481- ] ,
1482- } ,
1483- ) . to_string( ) ,
1484- ] ;
1485-
1486- let ( mut server, results, ..) = env. mock_server ( messages) ;
1487- // Initialize and build.
1488- assert_eq ! (
1489- ls_server:: LsService :: handle_message( & mut server) ,
1490- ls_server:: ServerStateChange :: Continue
1491- ) ;
1492- expect_message (
1493- & mut server,
1494- results. clone ( ) ,
1495- ExpectedMessage :: new ( Some ( 0 ) ) . expect_contains ( "rls.deglobImports-" ) ,
1496- ) ;
1497-
1498- expect_series ( & mut server, results. clone ( ) , vec ! [ "progress" ] ) ;
1499-
1500- assert_eq ! (
1501- ls_server:: LsService :: handle_message( & mut server) ,
1502- ls_server:: ServerStateChange :: Continue
1503- ) ;
1504- {
1505- server. wait_for_concurrent_jobs ( ) ;
1506- let response: Value = serde_json:: from_str ( & results. lock ( ) . unwrap ( ) . remove ( 0 ) ) . unwrap ( ) ;
1507- assert_eq ! ( response[ "id" ] , 100 ) ;
1508- assert_eq ! ( response[ "result" ] [ 0 ] [ "title" ] , "Deglob import" ) ;
1509- assert_eq ! (
1510- response[ "result" ] [ 0 ] [ "command" ] ,
1511- & * format!( "rls.deglobImports-{}" , :: std:: process:: id( ) )
1512- ) ;
1513- let deglob = & response[ "result" ] [ 0 ] [ "arguments" ] [ 0 ] ;
1514- assert ! (
1515- deglob[ "location" ] [ "uri" ]
1516- . as_str( )
1517- . unwrap( )
1518- . ends_with( "deglob/src/main.rs" )
1519- ) ;
1520- let deglob_loc = & deglob[ "location" ] [ "range" ] ;
1521- assert_eq ! ( deglob_loc[ "start" ] [ "line" ] , 12 ) ;
1522- assert_eq ! ( deglob_loc[ "start" ] [ "character" ] , 13 ) ;
1523- assert_eq ! ( deglob_loc[ "end" ] [ "line" ] , 12 ) ;
1524- assert_eq ! ( deglob_loc[ "end" ] [ "character" ] , 14 ) ;
1525- let mut imports: Vec < _ > = deglob[ "new_text" ]
1526- . as_str ( )
1527- . unwrap ( )
1528- . trim_matches ( '{' )
1529- . trim_matches ( '}' )
1530- . split ( ", " )
1531- . collect ( ) ;
1532- imports. sort ( ) ;
1533- assert_eq ! ( imports, vec![ "Stdin" , "Stdout" ] ) ;
1534- }
1535-
1536- assert_eq ! (
1537- ls_server:: LsService :: handle_message( & mut server) ,
1538- ls_server:: ServerStateChange :: Continue
1539- ) ;
1540- {
1541- server. wait_for_concurrent_jobs ( ) ;
1542- let response: Value = serde_json:: from_str ( & results. lock ( ) . unwrap ( ) . remove ( 0 ) ) . unwrap ( ) ;
1543- assert_eq ! ( response[ "id" ] , 0x0100_0001 ) ;
1544- assert_eq ! ( response[ "method" ] , "workspace/applyEdit" ) ;
1545- let ( key, changes) = response[ "params" ] [ "edit" ] [ "changes" ]
1546- . as_object ( )
1547- . unwrap ( )
1548- . iter ( )
1549- . next ( )
1550- . unwrap ( ) ;
1551- assert ! ( key. ends_with( "deglob/src/main.rs" ) ) ;
1552- let change = & changes[ 0 ] ;
1553- assert_eq ! ( change[ "range" ] [ "start" ] [ "line" ] , 12 ) ;
1554- assert_eq ! ( change[ "range" ] [ "start" ] [ "character" ] , 13 ) ;
1555- assert_eq ! ( change[ "range" ] [ "end" ] [ "line" ] , 12 ) ;
1556- assert_eq ! ( change[ "range" ] [ "end" ] [ "character" ] , 14 ) ;
1557- let mut imports: Vec < _ > = change[ "newText" ]
1558- . as_str ( )
1559- . expect ( "newText missing" )
1560- . trim_matches ( '{' )
1561- . trim_matches ( '}' )
1562- . split ( ", " )
1563- . collect ( ) ;
1564- imports. sort ( ) ;
1565- assert_eq ! ( imports, vec![ "Stdin" , "Stdout" ] ) ;
1566-
1567- let response: Value = serde_json:: from_str ( & results. lock ( ) . unwrap ( ) . remove ( 0 ) ) . unwrap ( ) ;
1568- assert_eq ! ( response[ "id" ] , 200 ) ;
1569- assert ! ( response[ "result" ] . is_null( ) ) ;
1570- }
1571-
1572- assert_eq ! (
1573- ls_server:: LsService :: handle_message( & mut server) ,
1574- ls_server:: ServerStateChange :: Continue
1575- ) ;
1576- expect_message (
1577- & mut server,
1578- results. clone ( ) ,
1579- ExpectedMessage :: new ( Some ( 1100 ) )
1580- . expect_contains ( r#""title":"Deglob imports""# )
1581- . expect_contains ( r#""command":"rls.deglobImports-"# )
1582- . expect_contains ( r#"{"location":{"range":{"end":{"character":15,"line":15},"start":{"character":14,"line":15}},"uri":"# )
1583- . expect_contains ( r#"deglob/src/main.rs"}"# )
1584- . expect_contains ( r#""new_text":"size_of""# )
1585- . expect_contains ( r#"{"location":{"range":{"end":{"character":32,"line":15},"start":{"character":31,"line":15}},"uri":"# )
1586- . expect_contains ( r#"deglob/src/main.rs"}"# )
1587- . expect_contains ( r#""new_text":"max""# )
1588- ) ;
1589-
1590- assert_eq ! (
1591- ls_server:: LsService :: handle_message( & mut server) ,
1592- ls_server:: ServerStateChange :: Continue
1593- ) ;
1594-
1595- {
1596- server. wait_for_concurrent_jobs ( ) ;
1597- let response: Value = serde_json:: from_str ( & results. lock ( ) . unwrap ( ) . remove ( 0 ) ) . unwrap ( ) ;
1598- assert_eq ! ( response[ "id" ] , 0x0100_0002 ) ;
1599- assert_eq ! ( response[ "method" ] , "workspace/applyEdit" ) ;
1600- let ( key, changes) = response[ "params" ] [ "edit" ] [ "changes" ]
1601- . as_object ( )
1602- . unwrap ( )
1603- . iter ( )
1604- . next ( )
1605- . unwrap ( ) ;
1606- assert ! ( key. ends_with( "deglob/src/main.rs" ) ) ;
1607- let change = & changes[ 0 ] ;
1608- assert_eq ! ( change[ "range" ] [ "start" ] [ "line" ] , 15 ) ;
1609- assert_eq ! ( change[ "range" ] [ "start" ] [ "character" ] , 14 ) ;
1610- assert_eq ! ( change[ "range" ] [ "end" ] [ "line" ] , 15 ) ;
1611- assert_eq ! ( change[ "range" ] [ "end" ] [ "character" ] , 15 ) ;
1612- assert_eq ! ( change[ "newText" ] , "size_of" ) ;
1613- let change = & changes[ 1 ] ;
1614- assert_eq ! ( change[ "range" ] [ "start" ] [ "line" ] , 15 ) ;
1615- assert_eq ! ( change[ "range" ] [ "start" ] [ "character" ] , 31 ) ;
1616- assert_eq ! ( change[ "range" ] [ "end" ] [ "line" ] , 15 ) ;
1617- assert_eq ! ( change[ "range" ] [ "end" ] [ "character" ] , 32 ) ;
1618- assert_eq ! ( change[ "newText" ] , "max" ) ;
1619- }
1620-
1621- expect_message (
1622- & mut server,
1623- results,
1624- ExpectedMessage :: new ( Some ( 1200 ) ) . expect_contains ( r#"null"# ) ,
1625- ) ;
1626- }
1627-
16281409#[ test]
16291410fn test_all_targets ( ) {
16301411 let mut env = Environment :: generate_from_fixture ( "bin_lib" ) ;
0 commit comments