BACKGROUND

Noon Software and computing hardware are created, tested, feature enhanced, corrected, performance optimized, and otherwise developed using computing technology development tools. Familiar functions of such development tools include text editing functions, design functions, syntax checking, source code completion, automatic and computer-assisted code generation, compiling, executable building, defect detection and debugging, provisioning and deployment, circuit layout, diagnostics, programming, and performance monitoring and profiling, for example. Computing technology development tools partially or fully automate such functions, in order to improve developer productivity and reduce downtime or time-to-market. Some development tools are stand-alone programs, while other development tools are provided in a suite for coordinated usage, such as an integrated development environment. Some development tools are tailored to one or more particular programming languages while other tools, or at least portions thereof, are programming language agnostic, meaning they do not rely on or take advantage of features that are specific to a particular programming language.

SUMMARY

Some computing technology development tools are tailored to interoperate with tool extensions, which add functionality to the development tool. Some development tool extensions are available through public or private tool extension marketplaces. Some teachings herein were motivated by an initial technical challenge of identifying relevant development tool extensions from among a large and growing body of development tool extensions, and informing software developers that the relevant tool extensions were available and why the tool extensions are deemed relevant; similar considerations apply to hardware development tools which are implemented with software. A subordinate challenge was how to enhance existing search capabilities of a public extension tool marketplace. Other technical challenges addressed by the innovations taught here will also be apparent to one of skill from the discussion provided below.

Some embodiments recommend tool extensions to a user of an extensible computing technology development tool, on the relevance basis of the tool extensions' support for a media type that also pertains to a file opened in the development tool. Media types may be indicated by, or be associated with, file extensions or file MIME types, for example.

In some embodiments, a development tool includes a user interface renderer which communicates with a tool extension via an agent, and in some cases the tool extension interfaces directly with an extension host, which may be remote from the renderer. The renderer and the host may be on the same machine, or on different machines, depending on the particular development tool implementation. More generally, an extensible development tool is configured to interoperate with development tool extensions that add functionality to the development tool.

In some embodiments, development tool extension recommendation actions include (i) determining that a file which is specified to the computing technology development tool has a particular media type, (ii) ascertaining that the particular media type has no assigned associated tool extension known to the development tool, (iii) querying a tool extension marketplace with at least one query to find whether a tool extension that is associated with the particular media type is available from the tool extension marketplace, (iv) receiving a query result, and (v) displaying tool extension availability information which is based on at least a portion of one or more results of the at least one query. Tool extension availability information may indicate that no relevant tool extension was found in the marketplace, or it may indicate that one or more relevant tool extensions were found without specifically identifying the found tool extensions, or it may specifically identify relevant tool extensions found in response to the query.

Some embodiments use or provide a method for use in recommending a development tool extension, including receiving a command from a user specifying a file which has a media type; automatically ascertaining that the media type has no assigned associated tool extension known to a development tool; querying a tool extension marketplace with at least one query to find whether a tool extension that is associated with the media type is available from the tool extension marketplace; receiving a query result; automatically parsing the query result; and displaying, to the user, extension availability information which is based on at least a portion of the parsed query result.

Other technical activities pertinent to teachings herein will also become apparent to those of skill in the art. The examples given are merely illustrative. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. Rather, this Summary is provided to introduce—in a simplified form—some technical concepts that are further described below in the Detailed Description. The innovation is defined with claims, and to the extent this Summary conflicts with the claims, the claims should prevail.

