Contextually Intelligent Code Editing via Server-Side Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Writing computer programming code can be time-consuming and confusing, especially for users unfamiliar with a particular programming language, due to the complexity of functions, parameters, methods, and other programming terms, making it difficult to determine valid or useful programming terms in a coding context.

Innovation Solution

A network-based contextually intelligent code editing system that uses client-server interactions to provide users with contextually appropriate code editing options, where user input is transmitted to a server to determine relevant options, which are then cached on the client device for quick retrieval and presented in a user-friendly interface, allowing users to select and populate code options.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a user manually writes programming code without assistance, then the user has full control over the code, but the time and effort required to generate accurate code increases significantly

Engineering Contradiction:
Improvecode generation speedVSAvoidtime to learn programming language syntax
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system provides self-service code completion by automatically analyzing the programming context and generating relevant code suggestions without requiring the user to manually type everything. The server autonomously determines contextually appropriate code options based on the current code state, programming language rules, and project structure, thereby reducing the time users spend learning syntax while maintaining code quality.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

A server acts as an intermediary between the user and the code generation process. The server receives the current code state from the user's editor, analyzes it using programming language knowledge and context information, and returns suggested code completions. This intermediary process automates the complex task of syntax validation and code generation, significantly improving productivity without requiring the user to be an expert in the programming language.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If the system provides comprehensive code editing options, then the user has more choices for valid programming terms, but the complexity of determining which options are appropriate increases

Engineering Contradiction:
Improvenumber of code editing optionsVSAvoidcomplexity of context analysis system
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The context analysis system is segmented into multiple independent components that each handle specific aspects of code analysis. The server divides the complex task of determining appropriate code options into separate modules: one module analyzes the current code state and programming language syntax, another retrieves relevant project information, and a final module generates contextually appropriate suggestions. This segmentation reduces the complexity of any single component while providing comprehensive code editing options.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary actions by pre-analyzing the programming context and pre-generating relevant code options before the user needs them. When the user types code, the server has already prepared contextually appropriate completions by analyzing the current state, available libraries, project structure, and programming language rules. This preliminary preparation reduces the complexity of real-time decision-making and provides users with versatile, contextually appropriate options instantly.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If code editing options are retrieved from the server each time, then the user receives up-to-date contextually appropriate suggestions, but the retrieval time increases

Engineering Contradiction:
Improveaccuracy of code suggestionsVSAvoidcode suggestion retrieval speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The system performs preliminary actions by pre-analyzing programming context and pre-generating code completion options that are stored and made readily available. When the user needs code suggestions, the system retrieves pre-computed options rather than performing full analysis in real-time. This preliminary preparation ensures both high reliability of suggestions and fast retrieval speed, resolving the contradiction between accuracy and speed.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9239708B2Contextually intelligent code editing
Publication Date: 2016.01.19 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9239708B2 patent drawing
  • US9239708B2 patent drawing
  • US9239708B2 patent drawing

AI summary

This document describes techniques for contextually intelligent code editing. In at least some embodiments, the techniques are network-based and can use client-server interactions to develop programming code. For example, input to a local programming environment of a client can be transmitted to a server. A functionality at the server can inspect the input and determine programming options (e.g., programming terms and/or phrases) that are contextually valid in the local programming environment. A list of the programming options can then be transmitted to the client and presented via a user interface. In some embodiments, a selection of one of the programming options can cause the programming option to be populated to the local programming environment, e.g., as part of a user interface associated with the local programming environment. In at least some embodiments, the list of programming options can be cached locally on the client for quick retrieval.