Patents by Inventor Mark Alistair WILSON-THOMAS

Mark Alistair WILSON-THOMAS 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).

  • Patent number: 11941372
    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.
    Type: Grant
    Filed: April 1, 2021
    Date of Patent: March 26, 2024
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: 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: 20240069907
    Abstract: 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: Application
    Filed: August 24, 2022
    Publication date: February 29, 2024
    Inventors: Peter GROENEWEGEN, Mark Alistair WILSON-THOMAS, German David OBANDO CHACON, David Ellis PUGH, Mikhail BRESLAV, Oscar Alfonso OBESO TREJO
  • Publication number: 20240061677
    Abstract: Distinguishing pattern differences from non-pattern differences. A set of differences is identified. The set comprises a plurality of differences between first and second versions of a document. A pattern is identified. The pattern explains a transformation from a first string in the first version of the document to a second string in the second version of the document. A subset of differences are identified. The subset comprises a plurality of differences, from among the set, which match the pattern. While presenting a user interface that visually highlights differences between the first and second versions of the document, a first visual treatment is applied to a first difference, based on the first difference being included in the subset. A second visual treatment is also applied to a second difference, based on the second difference being excluded from the subset. The second visual treatment is different than the first visual treatment.
    Type: Application
    Filed: November 2, 2023
    Publication date: February 22, 2024
    Inventors: David Ellis PUGH, Mark Alistair WILSON-THOMAS, Vu Minh LE
  • Patent number: 11900080
    Abstract: Some embodiments determine automatically which synthesized or otherwise autocreated suggestions for source code editing are presented to developers. Some filter out autocreated coding suggestions that have not been sufficiently endorsed by a developer's team, based on a suggestion trust score. The trust score may reflect the suggestion's adoption in a particular repository or codebase, or affiliation of the suggestion with a library release, or an actual or implied review of the suggestion by team members. Some suggestion filters enhance existing development team code review practices, by offering endorsed suggestions in autocompletion or analysis interfaces of tools and by withholding non-endorsed suggestions from display. Context illustrating the autocreated suggestion's provenance may be displayed to help developers decide whether to adopt the suggestion themselves while editing code.
    Type: Grant
    Filed: July 9, 2020
    Date of Patent: February 13, 2024
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Mark Alistair Wilson-Thomas, German David Obando Chacon
  • Patent number: 11875136
    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.
    Type: Grant
    Filed: April 1, 2021
    Date of Patent: January 16, 2024
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: 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: 20240004623
    Abstract: 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: Application
    Filed: July 1, 2022
    Publication date: January 4, 2024
    Inventors: Peter GROENEWEGEN, Jui HANAMSHET, German David OBANDO CHACON, Mark Alistair WILSON-THOMAS, Alexey SVYATKOVSKIY, David Ellis PUGH
  • Patent number: 11861361
    Abstract: Distinguishing pattern differences from non-pattern differences. A set of differences is identified. The set comprises a plurality of differences between first and second versions of a document. A pattern is identified. The pattern explains a transformation from a first string in the first version of the document to a second string in the second version of the document. A subset of differences are identified. The subset comprises a plurality of differences, from among the set, which match the pattern. While presenting a user interface that visually highlights differences between the first and second versions of the document, a first visual treatment is applied to a first difference, based on the first difference being included in the subset. A second visual treatment is also applied to a second difference, based on the second difference being excluded from the subset. The second visual treatment is different than the first visual treatment.
    Type: Grant
    Filed: January 4, 2022
    Date of Patent: January 2, 2024
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: David Ellis Pugh, Mark Alistair Wilson-Thomas, Vu Minh Le
  • Patent number: 11853746
    Abstract: 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: Grant
    Filed: March 1, 2022
    Date of Patent: December 26, 2023
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Peter Groenewegen, Mark Alistair Wilson-Thomas
  • Publication number: 20230385042
    Abstract: Some embodiments automatically detect a software development code improvement stage. Improvement stage detection may be based on computational events involving a development tool, such as a testing tool, a debugger, or a performance profiler. Program analysis tools driven by artificial intelligence functionality may then be automatically invoked to provide code improvement options, which may be presented to a developer in a tool user interface. Options may include source code edits, configuration changes, or test coverage changes, for example. Analysis results and corresponding code improvement options are thus presented when the developer is prioritizing program performance, program behavior accuracy, program security, or programming style, as opposed to prioritizing code creation or code integration.
    Type: Application
    Filed: May 26, 2022
    Publication date: November 30, 2023
    Inventors: German David OBANDO CHACON, Mark Alistair WILSON-THOMAS
  • Publication number: 20230376685
    Abstract: Edit automation enhancements may be implemented in source code editors and other text editors. Provisional selections that indicate user intentions are submitted to a suggestion generator with other edit context information, to improve the quality of generated text suggestions and reduce the cognitive load on users. A provisional selection may include a highlighted completion list entry, or document text targeted by a hovering cursor, or metainformation text targeted by the hovering cursor, for example. An inline grey text suggestion driven by provisional selection may be displayed simultaneously with completion list suggestions that were created without regard to provisional selection. Suggestions driven by provisional selection may be interleaved with existing document text. Suggestions may be accepted fully in one gesture, or in parts. Suggestions may be edited by a user before being accepted, driving further suggestion refinement.
    Type: Application
    Filed: August 2, 2023
    Publication date: November 23, 2023
    Inventors: Mark Alistair WILSON-THOMAS, Jonathan Keith SIMMONS, David Ellis PUGH, Vivian Julia LIM, Anqi LI, Shwetha SRINATH, German David OBANDO CHACON, Jin Woo JANG, Shengyu FU, Shao Kun DENG
  • Patent number: 11775293
    Abstract: 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: Grant
    Filed: March 10, 2022
    Date of Patent: October 3, 2023
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Peter Groenewegen, Gustavo Araujo Soares, Arjun Radhakrishna, Mark Alistair Wilson-Thomas, Jonathan Keith Simmons
  • Patent number: 11765152
    Abstract: Access control enhancements reduce security risks and management burdens when a user with access to a primary asset seeks access to a related supplementary asset. When a sufficient proof of access to the primary asset is provided, and the relationship of the primary and supplementary assets is recognized, access to the supplementary asset is granted without requiring a separate sign-in, a permission query to the supplementary asset's owner, or an authorization through an authenticated identity of the requestor, for example. Automatic access to the supplementary asset can be granted without the security risks inherent in a file share or a share link. In particular, a developer with access to one component of a project can be automatically and conveniently granted access to the rest of the project. Likewise, a custom machine learning model for autocompletion becomes accessible to all developers working on the repository source used to train the model.
    Type: Grant
    Filed: July 25, 2019
    Date of Patent: September 19, 2023
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: German David Obando Chacon, Jonathan Daniel Keech, Mark Alistair Wilson-Thomas
  • Patent number: 11763078
    Abstract: Edit automation enhancements may be implemented in source code editors and other text editors. Provisional selections that indicate user intentions are submitted to a suggestion generator with other edit context information, to improve the quality of generated text suggestions and reduce the cognitive load on users. A provisional selection may include a highlighted completion list entry, or document text targeted by a hovering cursor, or metainformation text targeted by the hovering cursor, for example. An inline grey text suggestion driven by provisional selection may be displayed simultaneously with completion list suggestions that were created without regard to provisional selection. Suggestions driven by provisional selection may be interleaved with existing document text. Suggestions may be accepted fully in one gesture, or in parts. Suggestions may be edited by a user before being accepted, driving further suggestion refinement.
    Type: Grant
    Filed: April 22, 2021
    Date of Patent: September 19, 2023
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Mark Alistair Wilson-Thomas, Jonathan Keith Simmons, David Ellis Pugh, Vivian Julia Lim, Anqi Li, Shwetha Srinath, German David Obando Chacon, Jin Woo Jang, Shengyu Fu, Shao Kun Deng
  • Publication number: 20230289180
    Abstract: 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: Application
    Filed: March 10, 2022
    Publication date: September 14, 2023
    Inventors: Peter GROENEWEGEN, Gustavo ARAUJO SOARES, Arjun RADHAKRISHNA, Mark Alistair WILSON-THOMAS, Jonathan Keith SIMMONS
  • Publication number: 20230281005
    Abstract: 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: Application
    Filed: March 1, 2022
    Publication date: September 7, 2023
    Inventors: Peter GROENEWEGEN, Mark Alistair WILSON-THOMAS
  • Patent number: 11715006
    Abstract: A natural language code search service provides idioms or frequently-occurring code patterns for a code fragment based on similar type usage and method/API invocation usage. The search service uses a data mining technique that mines code snippets found from various websites and code snippets generated from a neural model to detect idioms in the code snippets that were previously unknown and which can be reused. A search is initiated through a natural language query within a code development tool or application thereby avoiding the need to switch out of the current application to perform the search.
    Type: Grant
    Filed: March 31, 2020
    Date of Patent: August 1, 2023
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC.
    Inventors: Christian Alma Bird, Shengyu Fu, Zhongyan Guan, Neelakantan Sundaresan, Mark Alistair Wilson-Thomas, Shuo Zhang
  • Patent number: 11714613
    Abstract: 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: Grant
    Filed: November 7, 2021
    Date of Patent: August 1, 2023
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: 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: 20230214212
    Abstract: Distinguishing pattern differences from non-pattern differences. A set of differences is identified. The set comprises a plurality of differences between first and second versions of a document. A pattern is identified. The pattern explains a transformation from a first string in the first version of the document to a second string in the second version of the document. A subset of differences are identified. The subset comprises a plurality of differences, from among the set, which match the pattern. While presenting a user interface that visually highlights differences between the first and second versions of the document, a first visual treatment is applied to a first difference, based on the first difference being included in the subset. A second visual treatment is also applied to a second difference, based on the second difference being excluded from the subset. The second visual treatment is different than the first visual treatment.
    Type: Application
    Filed: January 4, 2022
    Publication date: July 6, 2023
    Inventors: David Ellis PUGH, Mark Alistair WILSON-THOMAS, Vu Minh LE
  • Publication number: 20230141807
    Abstract: 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: Application
    Filed: November 7, 2021
    Publication date: May 11, 2023
    Inventors: 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: 20230116149
    Abstract: 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: Application
    Filed: October 9, 2021
    Publication date: April 13, 2023
    Inventors: Arjun RADHAKRISHNA, Gustavo ARAUJO SOARES, Peter GROENEWEGEN, Mark Alistair WILSON-THOMAS, Aaron Chak Hei YIM, Piyush ARORA, Mohammad RAZA