Design-time system and method to enable programming assistance across languages and compilation boundaries
First Claim
1. A software project development system comprising:
- a computer processor that executes the following software components;
a plurality of compilation units; and
a project management system comprising a code editor component, an asynchronous component and an intelligent assist component, the project management system provides intelligent programmatic assistance to a user across a plurality of related compilation units associated with a software project;
the code editor component makes intelligent programmatic assistance available to a user during code specification;
the asynchronous component coordinates dispatch of processes requests associated with intelligent programmatic assistance to enable intelligent assistance functionality to be made available incrementally to a user and to prevent a delay in the availability or responsiveness of the code editor component; and
the intelligent assist component makes intelligent programmatic assistance provided by assist provider components available to a use, wherein the intelligent assist component includes a language detection component that identifies a compilation language employed by a program, and an assist provider detection component that detects the presence of new assist provider components and makes them available to the software project, the intelligent assist component includes one or more project host component that host assist provider components, wherein the project host component includes a project interface that can be employed by an assist provider component to retrieve project information, and assist provider component includes a provider interface that supplies an abstraction through which a project host component can communicate with an assist provider component.
2 Assignments
0 Petitions
Accused Products
Abstract
The subject invention pertains to systems and methods to provide rich and intelligent programmatic assistance across language and compilation boundaries. In essence, the systems and methods can monitor a plurality of compilation units in a software project to determine the language(s) employed therewith and provide intelligent code assistance to the compilation units for the detected language(s). The rich and intelligent assistance can correspond to providing code suggestions, among other things, based on the programming language being utilized and the context of its use. In brief, the herein disclosed techniques provide a seamless design environment to facilitate coding in multiple programming languages amongst a plurality of compilation units in project.
-
Citations
26 Claims
-
1. A software project development system comprising:
-
a computer processor that executes the following software components; a plurality of compilation units; and a project management system comprising a code editor component, an asynchronous component and an intelligent assist component, the project management system provides intelligent programmatic assistance to a user across a plurality of related compilation units associated with a software project; the code editor component makes intelligent programmatic assistance available to a user during code specification; the asynchronous component coordinates dispatch of processes requests associated with intelligent programmatic assistance to enable intelligent assistance functionality to be made available incrementally to a user and to prevent a delay in the availability or responsiveness of the code editor component; and the intelligent assist component makes intelligent programmatic assistance provided by assist provider components available to a use, wherein the intelligent assist component includes a language detection component that identifies a compilation language employed by a program, and an assist provider detection component that detects the presence of new assist provider components and makes them available to the software project, the intelligent assist component includes one or more project host component that host assist provider components, wherein the project host component includes a project interface that can be employed by an assist provider component to retrieve project information, and assist provider component includes a provider interface that supplies an abstraction through which a project host component can communicate with an assist provider component. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A software project development system comprising:
-
a computer processor that executes the following software components; a language detection component that identifies one or more programming languages associated with a plurality of compilation units in a software project; one or more project host components associated with the compilation units based on a language associated with the unit; one or more assist provider components communicatively coupled to respective host components to provide automated language specific programming assistance for compilation units; a code editor component that makes intelligent programmatic assistance available to a user during code specification; an asynchronous component that coordinates dispatch of processes requests associated with intelligent programmatic assistance to enable intelligent assistance functionality to be made available incrementally to a user and to prevent a delay in the availability or responsiveness of the code editor component; and an intelligent assist component makes intelligent programmatic assistance provided by assist provider components available to a use, wherein the intelligent assist component includes a language detection component that identifies a compilation language employed by a program, and an assist provider detection component that detects the presence of new assist provider components and makes them available to the software project, the intelligent assist component includes one or more project host component that host assist provider components, wherein the project host component includes a project interface that can be employed by an assist provider component to retrieve project information, and assist provider component includes a provider interface that supplies an abstraction through which a project host component can communicate with an assist provider component. - View Dependent Claims (12, 13, 14)
-
-
15. A project design system comprising:
-
a computer processor; a means for identifying programming languages associated with a plurality of compilation units in a software project; a means for providing automated language specific coding assistance to each compilation unit through a code editor; a means for coordinating dispatch of processes requests associated with intelligent programmatic assistance to enable intelligent assistance functionality to be made available incrementally to a user and to prevent a delay in the availability or responsiveness of the code editor; and a means for making intelligent programmatic assistance provided by assist provider components available to a user, wherein the means for making intelligent programmatic assistance available includes a language detection component that identifies a compilation language employed by a program, and an assist provider detection component that detects the presence of new assist provider components and makes them available to the software project, the means for making intelligent programmatic assistance available includes one or more project host component that host assist provider components, wherein the project host component includes a project interface that can be employed by an assist provider component to retrieve project information, and the assist provider component includes a provider interface that supplies an abstraction through which a project host component can communicate with an assist provider component. - View Dependent Claims (16, 17)
-
-
18. A method of providing programming assistance comprising:
-
detecting a language associated with at least one compilation unit of a software project; providing automated intelligent programmatic assistance to the compilation unit through a code editor; coordinating dispatch of processes requests associated with intelligent programmatic assistance to enable intelligent assistance functionality to be made available incrementally to a user and to prevent a delay in the availability or responsiveness of the code editor; making intelligent programmatic assistance provided by assist provider components available to a user, wherein making intelligent programmatic assistance available includes identifying a compilation language employed by a program, and detecting the presence of new assist provider components and making them available to the software project; and providing one or more project host component that host assist provider components, wherein the project host component includes a project interface that can be employed by to retrieve project information, and the assist provider component includes a provider interface that supplies an abstraction through which a project host component can communicate with an assist provider component. - View Dependent Claims (19, 20, 21, 22)
-
-
23. A software project assistance methodology comprising:
-
detecting a project compilation unit language; locating an assist provider that supports the compilation unit language; loading the assist provider; providing automated intelligent programmatic assistance to the compilation unit language through a code editor; coordinating dispatch of processes requests associated with intelligent programmatic assistance to enable intelligent assistance functionally to be made available incrementally to a user and to prevent a delay in the availability or responsiveness of the code editor; making intelligent programmatic assistance provided by assist provider components available to a user, wherein making intelligent programmatic assistance available includes identifying a compilation language employed by a program, and detecting the presence of new assist provider components and making them available to the software project; and providing one or more project host component that host assist provider components, wherein the project host component includes a project interface that can be employed by to retrieve project information, and the assist provider component includes a provider interface that supplies an abstraction through which a project host component can communicate with an assist provider component. - View Dependent Claims (24, 25, 26)
-
Specification