Patents by Inventor Peter Groenewegen
Peter Groenewegen has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Publication number: 20240411527Abstract: A computer system provides a context for a source code document to an artificial intelligence (AI) model and obtains a first suggested edit at a first source code location. At a code editor user interface (UI), the computer system presents a first chat indicator at the first source code location. Based on user interaction with the first chat indicator, the computer system presents the first suggested edit and receives a user response. The computer system provides an updated context to the AI model. The updated context comprises the context and the user response. The computer system obtains a second suggested edit at a second source code location. At the code editor UI, the computer system presents a second chat indicator at the second source code location. Based on user interaction with the second chat indicator, the computer system presents the second suggested edit.Type: ApplicationFiled: June 9, 2023Publication date: December 12, 2024Inventors: Peter GROENEWEGEN, Rohan Jagdish MALPANI
-
Patent number: 12039304Abstract: During software development, embodiments find various kinds of weak spots in source code and automatically suggest fixes to strengthen the code, without requiring developers to expressly select weakness finder mechanisms or fixer mechanisms by navigating a development tool's menu system. Weakness finders may analyze code using items such as hole detection, diagnostic errors, test results, changed code matches, prospective code discrepancies, generated code confidence scores, generated suggestion competition, and artificial intelligence. Weak spots and their context are submitted to weak spot fixers, which may generate fix suggestions using functionalities such as code synthesis, refactoring, autocompletion, retesting, and artificial intelligence. Fix candidate sets may be evaluated for consistency, diagnostic errors, and discrepancies. Snippets may be dynamically filled for presentation to a user.Type: GrantFiled: July 1, 2022Date of Patent: July 16, 2024Assignee: Microsoft Technology Licensing, LLCInventors: Peter Groenewegen, Jui Hanamshet, German David Obando Chacon, Mark Alistair Wilson-Thomas, Alexey Svyatkovskiy, David Ellis Pugh
-
Publication number: 20240201983Abstract: Some embodiments use specialized machine learning models to generate computing system artifact names which reflect actions, states, conditions, or other aspects of artifact functionality. Artifact creation mechanisms such as method extraction mechanisms, test creation mechanisms, and template extraction mechanisms are enhanced with functionality by which they obtain and suggest meaningful generated names for new artifacts instead of merely prompting users with placeholder names. Specified artifact name formats and name styles are matched during name generation, thereby improving code maintainability and software development efficiency. Generated names are automatically and proactively derived from artifact source code by code summarization, conditional statement location, algorithm category recognition, or name format matching, for example. Generated names are also derived from natural language descriptions in comments and other documentation. Naming gaps left by autocompletion mechanisms are reduced.Type: ApplicationFiled: December 20, 2022Publication date: June 20, 2024Inventors: Peter GROENEWEGEN, Priyan VAITHILINGAM, Rohan Jagdish MALPANI, Wenbo WANG
-
Publication number: 20240152368Abstract: Embodiments facilitate human review of autocreated editing suggestions, e.g., suggestions from a machine learning model for editing source code. Upon receiving a suggestion, an editor switches to a user interface review mode displaying an aspect of the suggestion. Suggestions are illustrated using one or more summary, diff, in-place, or as-if views. Upon user command, the editor switches back to the pre-suggestion display, or switches to a different view of the suggestion, or both. In some scenarios, suggestion review of an initially acceptable but ultimately rejected suggestion follows a review-reject sequence instead of an accept-review-undo sequence. In some scenarios, suggestion review visually contrasts pre-suggestion document content with suggested content, by switching display modes on user demand, prior to disposal of the suggestion. In some scenarios, user interface review mode usage is tracked, and modes are prioritized based on their usage.Type: ApplicationFiled: November 9, 2022Publication date: May 9, 2024Inventors: Peter GROENEWEGEN, Rohan Jagdish MALPANI
-
Patent number: 11941372Abstract: 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.Type: GrantFiled: April 1, 2021Date of Patent: March 26, 2024Assignee: Microsoft Technology Licensing, LLCInventors: Titus Barik, Gustavo Araujo Soares, Piyush Arora, Peter Groenewegen, Sumit Gulwani, Ameya Sanjay Ketkar, Vu Minh Le, Wode Ni, David Ellis Pugh, Arjun Radhakrishna, Ivan Radicek, Ashish Tiwari, Mark Alistair Wilson-Thomas
-
Publication number: 20240069907Abstract: Historic context data is automatically associated with particular pieces of source code by retrieval data structures. Ephemeral information is preserved, such as how a piece of code originated operationally and was changed over time, which research sources informed the code's origination and changes, and why particular changes in the code were made. Code may be rolled back to an earlier version based on parameters such as whether code had been refactored, or results of testing or static analysis. Rollback goes beyond editor undo actions, and a developer need not specify a timestamp or a version number. Developer documentation burdens are reduced, developer understanding is increased, and code quality is enhanced, by providing ready access to the code's software development context history data. Some actions made possible include highlighting code that was generated automatically by autocompletion or otherwise, highlighting refactored code, and highlighting pasted code, among other actions.Type: ApplicationFiled: August 24, 2022Publication date: February 29, 2024Inventors: Peter GROENEWEGEN, Mark Alistair WILSON-THOMAS, German David OBANDO CHACON, David Ellis PUGH, Mikhail BRESLAV, Oscar Alfonso OBESO TREJO
-
Patent number: 11875136Abstract: 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.Type: GrantFiled: April 1, 2021Date of Patent: January 16, 2024Assignee: Microsoft Technology Licensing, LLCInventors: Gustavo Araujo Soares, Piyush Arora, Titus Barik, Peter Groenewegen, Sumit Gulwani, Ameya Sanjay Ketkar, Vu Minh Le, Wode Ni, David Ellis Pugh, Arjun Radhakrishna, Ivan Radicek, Ashish Tiwari, Mark Alistair Wilson-Thomas
-
Publication number: 20240004623Abstract: During software development, embodiments find various kinds of weak spots in source code and automatically suggest fixes to strengthen the code, without requiring developers to expressly select weakness finder mechanisms or fixer mechanisms by navigating a development tool's menu system. Weakness finders may analyze code using items such as hole detection, diagnostic errors, test results, changed code matches, prospective code discrepancies, generated code confidence scores, generated suggestion competition, and artificial intelligence. Weak spots and their context are submitted to weak spot fixers, which may generate fix suggestions using functionalities such as code synthesis, refactoring, autocompletion, retesting, and artificial intelligence. Fix candidate sets may be evaluated for consistency, diagnostic errors, and discrepancies. Snippets may be dynamically filled for presentation to a user.Type: ApplicationFiled: July 1, 2022Publication date: January 4, 2024Inventors: Peter GROENEWEGEN, Jui HANAMSHET, German David OBANDO CHACON, Mark Alistair WILSON-THOMAS, Alexey SVYATKOVSKIY, David Ellis PUGH
-
Patent number: 11853746Abstract: Some embodiments automatically assess source code merge conflict resolution candidates and then display a recommendation explaining strengths and weaknesses of each candidate. Thus informed, a developer can avoid adopting changes which produce merged code that does not build or does not pass tests, and avoid merged code that departs from a pattern followed in previous changes to a code base. Candidate conflict resolution assessments depend on objective criteria such as merged code buildability, operational accuracy, edit pattern consistency, or conflict resolution generator confidence. Candidates may be automatically ranked, prioritized, or rejected outright by an embodiment. Work item descriptions and candidate provenance may be displayed to aid developer selection of an optimal merge candidate.Type: GrantFiled: March 1, 2022Date of Patent: December 26, 2023Assignee: Microsoft Technology Licensing, LLCInventors: Peter Groenewegen, Mark Alistair Wilson-Thomas
-
Patent number: 11775293Abstract: Methods, systems, and computer program products for deploying a static code analyzer based on program synthesis from input-output examples. A computer system uses program synthesis on a set of input-output examples of source code edits to generate a rewrite rule that defines a transformation pattern. Based on a determined static code analyzer format, the computer system generates a static code analyzer from the rewrite rule. The static code analyzer includes a find portion that indicates a matching condition for identifying a portion of source code text, and a fix portion that indicates a textual replacement to apply to the portion of source code text matched by the find portion. The computer system deploys the static code analyzer to a development environment, including configuring the static code analyzer to be executable against a source code file within the development environment.Type: GrantFiled: March 10, 2022Date of Patent: October 3, 2023Assignee: Microsoft Technology Licensing, LLCInventors: Peter Groenewegen, Gustavo Araujo Soares, Arjun Radhakrishna, Mark Alistair Wilson-Thomas, Jonathan Keith Simmons
-
Publication number: 20230289151Abstract: Generating a template based on source code examples includes identifying a set of related files within a source code project, and identifying a set of textual content portions that are each at least partially repeated across a subset of the related files. A set of templates is generated, each comprising at least one textual content portion from the set of textual content portions. Each template is associated with a set of selection criteria. The set of templates is exposed for automated consumption within a source code editor, based on the set of selection criteria associated with each template. Consuming a template includes identifying a user input indicating creation of a source code block or file within the source code editor, identifying attribute(s) of the source code block or file, and using the attribute(s) to identify a selection criterion associated with a particular template. The particular template is automatically presented.Type: ApplicationFiled: March 10, 2022Publication date: September 14, 2023Inventors: Peter GROENEWEGEN, Gustavo ARAUJO SOARES, Mohammad RAZA, Arjun RADHAKRISHNA
-
Publication number: 20230289180Abstract: Methods, systems, and computer program products for deploying a static code analyzer based on program synthesis from input-output examples. A computer system uses program synthesis on a set of input-output examples of source code edits to generate a rewrite rule that defines a transformation pattern. Based on a determined static code analyzer format, the computer system generates a static code analyzer from the rewrite rule. The static code analyzer includes a find portion that indicates a matching condition for identifying a portion of source code text, and a fix portion that indicates a textual replacement to apply to the portion of source code text matched by the find portion. The computer system deploys the static code analyzer to a development environment, including configuring the static code analyzer to be executable against a source code file within the development environment.Type: ApplicationFiled: March 10, 2022Publication date: September 14, 2023Inventors: Peter GROENEWEGEN, Gustavo ARAUJO SOARES, Arjun RADHAKRISHNA, Mark Alistair WILSON-THOMAS, Jonathan Keith SIMMONS
-
Publication number: 20230281005Abstract: Some embodiments automatically assess source code merge conflict resolution candidates and then display a recommendation explaining strengths and weaknesses of each candidate. Thus informed, a developer can avoid adopting changes which produce merged code that does not build or does not pass tests, and avoid merged code that departs from a pattern followed in previous changes to a code base. Candidate conflict resolution assessments depend on objective criteria such as merged code buildability, operational accuracy, edit pattern consistency, or conflict resolution generator confidence. Candidates may be automatically ranked, prioritized, or rejected outright by an embodiment. Work item descriptions and candidate provenance may be displayed to aid developer selection of an optimal merge candidate.Type: ApplicationFiled: March 1, 2022Publication date: September 7, 2023Inventors: Peter GROENEWEGEN, Mark Alistair WILSON-THOMAS
-
Patent number: 11714613Abstract: Embodiments automate surfacing of underutilized development tool features, thereby enhancing the discoverability of subtools, commands, shortcuts, settings, visualizers, and other tool features. After spotting an inefficiency in the user's interaction with one or more tools, the feature surfacing functionality offers the user an interaction optimization suggestion. A mapping structure correlates detected interaction patterns with objectively better interaction optimizations. Several examples of mappings are discussed. The user can accept a suggestion, have the suggested optimization applied by an enhanced tool, and thereby reduce the number of user gestures utilized to accomplish a desired result, reduce the number of tools utilized, increase security, reduce risk of error, or get to the desired result faster, for example. Interaction optimizations also help the user stay focused, by reducing or avoiding departures from the user's current primary workflow.Type: GrantFiled: November 7, 2021Date of Patent: August 1, 2023Assignee: Microsoft Technology Licensing, LLCInventors: Peter Groenewegen, Arjun Radhakrishna, Gustavo Araujo Soares, Mark Alistair Wilson-Thomas, Piyush Arora, Aaron Chak Hei Yim, David Ellis Pugh, German David Obando Chacon, Andrew Richard Sterland, Gregory Miskelly
-
Publication number: 20230141807Abstract: Embodiments automate surfacing of underutilized development tool features, thereby enhancing the discoverability of subtools, commands, shortcuts, settings, visualizers, and other tool features. After spotting an inefficiency in the user’s interaction with one or more tools, the feature surfacing functionality offers the user an interaction optimization suggestion. A mapping structure correlates detected interaction patterns with objectively better interaction optimizations. Several examples of mappings are discussed. The user can accept a suggestion, have the suggested optimization applied by an enhanced tool, and thereby reduce the number of user gestures utilized to accomplish a desired result, reduce the number of tools utilized, increase security, reduce risk of error, or get to the desired result faster, for example. Interaction optimizations also help the user stay focused, by reducing or avoiding departures from the user’s current primary workflow.Type: ApplicationFiled: November 7, 2021Publication date: May 11, 2023Inventors: Peter GROENEWEGEN, Arjun RADHAKRISHNA, Gustavo ARAUJO SOARES, Mark Alistair WILSON-THOMAS, Piyush ARORA, Aaron Chak Hei YIM, David Ellis PUGH, German David OBANDO CHACON, Andrew Richard STERLAND, Gregory MISKELLY
-
Publication number: 20230116149Abstract: Embodiments automate several aspects of document copy-paste updates. An enhanced editor submits context, such as a copied section, pasted section, nearby text, or parser information, to an automatic suggestion generator. The editor gets back a suggestion for automatically changing the pasted section, thus helping users avoid tedium and errors. For instance, string substitutions begun by the user can be automatically and easily completed within the pasted section. Refactoring between variable declarations and parameter lists is detected and completed on request. Situation-specific transforms based on code synthesis, word associations, temporal edit patterns, anchor target lists, regular expressions, or autocompletion are offered. Suggestions are given inside the user's current workflow to avoid breaks in focus. Suggestions can be refined automatically in response to implicit or explicit user feedback. Users are warned of unedited pasted sections. Code review is aided by highlighting pasted sections.Type: ApplicationFiled: October 9, 2021Publication date: April 13, 2023Inventors: Arjun RADHAKRISHNA, Gustavo ARAUJO SOARES, Peter GROENEWEGEN, Mark Alistair WILSON-THOMAS, Aaron Chak Hei YIM, Piyush ARORA, Mohammad RAZA
-
Publication number: 20220317978Abstract: 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.Type: ApplicationFiled: April 1, 2021Publication date: October 6, 2022Inventors: Titus BARIK, Gustavo ARAUJO SOARES, Piyush ARORA, Peter GROENEWEGEN, Sumit GULWANI, Ameya Sanjay KETKAR, Vu Minh LE, Wode NI, David Ellis PUGH, Arjun RADHAKRISHNA, Ivan RADICEK, Ashish TIWARI, Mark Alistair WILSON-THOMAS
-
Publication number: 20220317979Abstract: 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.Type: ApplicationFiled: April 1, 2021Publication date: October 6, 2022Inventors: Gustavo ARAUJO SOARES, Piyush ARORA, Titus BARIK, Peter GROENEWEGEN, Sumit GULWANI, Ameya Sanjay KETKAR, Vu Minh LE, Wode NI, David Ellis PUGH, Arjun RADHAKRISHNA, Ivan RADICEK, Ashish TIWARI, Mark Alistair WILSON-THOMAS
-
Patent number: 10996930Abstract: Assisting automation of repeated edits of code by automated generation of rules that, when applied, perform code transformations. The transformations are synthesized while observing developers make repeated code edits, and automatically perform similar modifications as those observed. This synthesized transformation defines an initial state of code to which the transformation can be applied, and defines a modification from that initial state. A rule is then generated that includes a detector mechanism that, when selected, is configured to find locations in code that have the defined corresponding initial state of the corresponding transformation. Thus, the transformation may be applied to any code to which the rule is exposed.Type: GrantFiled: October 29, 2019Date of Patent: May 4, 2021Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Mark Alistair Wilson-Thomas, Gustavo Araujo Soares, Peter Groenewegen, Jonathan Preston Carter, German David Obando Chacon
-
Patent number: 10963223Abstract: Assisting automation of repeated edits of code by automated generation of rules that, when applied, perform code transformations. The transformations are synthesized while observing developers make repeated code edits, and automatically perform similar modifications as those observed. This synthesized transformation defines an initial state of code to which the transformation can be applied, and defines a modification from that initial state. A rule is then generated that includes a detector mechanism that, when selected, is configured to find locations in code that have the defined corresponding initial state of the corresponding transformation. Thus, the transformation may be applied to any code to which the rule is exposed.Type: GrantFiled: October 29, 2019Date of Patent: March 30, 2021Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Mark Alistair Wilson-Thomas, Gustavo Araujo Soares, Peter Groenewegen, Jonathan Preston Carter, German David Obando Chacon