P
US11875136B2ActiveUtilityPatentIndex 71

Edit automation using a temporal edit pattern

Assignee: MICROSOFT TECHNOLOGY LICENSING LLCPriority: Apr 1, 2021Filed: Apr 1, 2021Granted: Jan 16, 2024
Est. expiryApr 1, 2041(~14.7 yrs left)· nominal 20-yr term from priority
Inventors:ARAUJO SOARES GUSTAVOARORA PIYUSHBARIK TITUSGROENEWEGEN PETERGULWANI SUMITKETKAR AMEYA SANJAYLE VU MINHNI WODEPUGH DAVID ELLISRADHAKRISHNA ARJUNRADICEK IVANTIWARI ASHISHWILSON-THOMAS MARK ALISTAIR
G06F 8/33G06F 16/9024G06F 8/20G06F 40/279G06F 40/166
71
PatentIndex Score
6
Cited by
232
References
20
Claims

Abstract

Edit automation functionality generalizes edits performed by a user in a document, locates similar text, and recommends or applies transforms while staying within a current workflow. Source code edits such as refactoring are automated. The functionality uses or provides anchor target lists, temporal edit patterns, edit graphs, automatable edit sequence libraries, and other data structures and computational techniques for identifying locations appropriate for particular edits, for getting transforms, for selecting optimal transforms, for leveraging transforms in an editing session or later, and for displaying transform recommendations and results. The edit automation functionality enhances automation subtool generation, discoverability, and flexibility, for refactoring, snippet insertion, quick actions in an integrated development environment, and other automatable edit sequences.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A computing system configured to recognize an automatable edit sequence, the system comprising:
 a digital memory; 
 a processor in operable communication with the digital memory, the processor configured to perform editing automation steps including (a) receiving an edit sequence representing contiguous edits of a document comprising source code in a tool, including temporal data and spatial data for each edit, (b) building an edit graph data structure from the edit sequence using the temporal data and the spatial data, (c) matching at least a portion of the edit graph data structure to a temporal edit pattern in an automatable edit sequences library, and (d) proactively leveraging the temporal edit pattern in the tool by performing at least one of: a quick action which is not a code completion, a refactoring in the source code, renaming an item in the source code, or deleting a variable and its usages in the source code; and 
 wherein the temporal edit pattern represents multiple edit sequence patterns, and the temporal edit pattern has at least two entry points corresponding respectively to different edit sequence patterns of the temporal edit pattern. 
 
     
     
       2. The computing system of  claim 1 , wherein the temporal edit pattern represents a variable condition. 
     
     
       3. The computing system of  claim 1 , wherein the temporal edit pattern represents at least one of:
 a snippet insertion; 
 an item completion; or 
 a quick action. 
 
     
     
       4. The computing system of  claim 1 , wherein the temporal edit pattern represents at least one of:
 a refactoring; or 
 a renaming. 
 
     
     
       5. The computing system of  claim 1 , wherein, the tool includes a user interface, and leveraging the temporal edit pattern in the tool includes the user interface displaying a diff view inline with at least a portion of the source code, the diff view representing a result of applying the temporal edit pattern automatically to the portion of the source code or to a copy of the portion of the source code. 
     
     
       6. A method for recognizing an automatable edit sequence, comprising:
 receiving an edit sequence representing contiguous edits of a source code document in a tool, including receiving temporal data and spatial data for each edit, the source code document including a source code; 
 building an edit graph data structure from the edit sequence using the temporal data and the spatial data; 
 matching at least a portion of the edit graph data structure to a first temporal edit pattern in an automatable edit sequences library; and 
 proactively leveraging the first temporal edit pattern in the tool by at least one of:
 offering to automatically repeat at least a portion of the edit sequence at a different location in the source code document; 
 offering to automatically repeat the edit sequence at target locations in the source code document, the target locations designated in an anchor target list; 
 displaying a result of automatically repeating the edit sequence to a copy of a different portion of the source code at the different location in the source code document; 
 automatically repeating at least a portion of the edit sequence at the different location in the source code document; or 
 automatically repeating the edit sequence at target locations in the source code document, the target locations designated in an anchor target list. 
 
 
     
     
       7. The method of  claim 6 , wherein leveraging the first temporal edit pattern in the tool further includes at least one of:
 offering to automatically continue at least a portion of the edit sequence at a current location in the source code document; 
 displaying a result of automatically continuing the edit sequence to a copy of a portion of the source code at the current location in the source code document; or 
 automatically continuing at least a portion of the edit sequence at the current location in the source code document. 
 
     
     
       8. The method of  claim 6 , further comprising generating the first temporal edit pattern, the generating comprising:
 building a multi-session edit graph data structure; 
 forming hierarchical clusters in the multi-session edit graph data structure; 
 summarizing edit information at a hierarchical cluster level; and 
 mining the summarized edit information to produce the first temporal edit pattern. 
 
     
     
       9. The method of  claim 6 , further comprising:
 ascertaining that the first temporal edit pattern has been a contiguous predecessor of a second temporal edit pattern; and 
 in response to the ascertaining, proactively leveraging the second temporal edit pattern in the tool after proactively leveraging the first temporal edit pattern in the tool. 
 
     
     
       10. The method of  claim 6 , wherein leveraging the first temporal edit pattern in the tool includes at least one of:
 recommending a refactoring subtool for use in the source code document; 
 recommending an automation subtool for use in the source code document; 
 recommending a set of automation subtools for use in the source code document; 
 actuating a refactoring subtool in the source code document; 
 actuating an automation subtool in the source code document; or 
 actuating a set of automation subtools in the source code document. 
 
     
     
       11. The method of  claim 6 , wherein the first temporal edit pattern has multiple entry points, and matching comprises matching the portion of the edit graph data structure to an entry point. 
     
     
       12. The method of  claim 6 , wherein leveraging the first temporal edit pattern in the tool stays within a current editing workflow. 
     
     
       13. The method of  claim 6 , wherein the automatable edit sequences library includes at least twenty temporal edit patterns produced automatically from summarized edit information, including at least five multi-entry-point temporal edit patterns. 
     
     
       14. The method of  claim 6 , wherein matching the portion of the edit graph data structure to the first temporal edit pattern includes selecting the first temporal edit pattern based on an optimality criterion. 
     
     
       15. The method of  claim 6 , wherein leveraging the first temporal edit pattern in the tool incudes configuring an automation subtool and then actuating the automation subtool in the source code document. 
     
     
       16. A computer-readable storage device configured with data and instructions which upon execution by a processor cause a cloud computing system to perform a method for recognizing an automatable edit sequence, the method comprising:
 receiving an edit sequence representing contiguous edits of a source code document, including receiving temporal data and spatial data for each edit; 
 building an edit graph data structure from the edit sequence using the temporal data and the spatial data; 
 forming hierarchical clusters in the edit graph data structure; 
 summarizing edit information at a hierarchical cluster level; 
 mining the summarized edit information to produce a first temporal edit pattern; 
 placing the first temporal edit pattern in an automatable edit sequences library; and 
 providing an interface to the automatable edit sequences library for proactively leveraging the first temporal edit pattern. 
 
     
     
       17. The storage device of  claim 16 , further comprising displaying a recommendation of the first temporal edit pattern in a tool while staying in a current editing workflow, the recommendation including action buttons which indicate actions available in response to the recommendation. 
     
     
       18. The storage device of  claim 16 , further comprising inferring a value for a transform parameter of the first temporal edit pattern from the edit sequence. 
     
     
       19. The storage device of  claim 16 , further comprising:
 getting a confidence score for the first temporal edit pattern which represents confidence that the first temporal edit pattern will be actuated; 
 choosing a recommendation presentation mechanism based on at least the confidence score; and 
 utilizing the recommendation presentation mechanism to display a recommendation for actuation of the first temporal edit pattern. 
 
     
     
       20. The storage device of  claim 16 , further comprising placing additional temporal edit patterns in the automatable edit sequences library, such that the automatable edit sequences library includes temporal edit patterns which collectively represent at least three of:
 a snippet insertion; 
 an item completion; 
 a quick action; 
 a variable condition; 
 a refactoring; or 
 a renaming.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.