Multi-version and multi-type IDE plug-in storage and query method and device
The method and device for managing multi-version and multi-type IDE plug-ins through a centralized library with version control and automatic updates address compatibility and efficiency challenges, improving plug-in management across different IDE versions and types.
Patent Information
- Application Number
- CN202411764580.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-04
- Publication Date
- 2024-12-31
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
Existing IDE plug-in management systems face challenges in efficiently managing multiple versions and types of IDEs, leading to compatibility issues, conflicts, and inefficient plug-in updates, which affect development efficiency and project progress.
A method and device for storing and querying multi-version and multi-type IDE plug-ins using a plug-in center library combining a hash table and linked list, which records and parses IDE type and version information, enabling unified management across different IDE versions and types, and includes automatic synchronization with the official IDE plug-in market.
This approach reduces the number of query matches and improves plug-in matching efficiency by ensuring compatibility checks and automatic updates, thereby enhancing development efficiency and reducing operational issues.
Smart Images

Figure CN119225801A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the technical field of integrated development environment, and in particular to a method and device for storing and querying multi-version and multi-type IDE plug-ins. Background Art
[0002] With the rapid development of software development technology, integrated development environment (IDE) has become an indispensable tool in programmers' daily work. IDE not only provides functions such as code editing, debugging and version control, but also can further enhance its functions through a rich plug-in ecosystem, enabling developers to develop software more efficiently. Especially with the support of large-scale project development and multiple development languages, IDE plug-ins are particularly important. By extending the functions of IDE, they can meet the needs of different projects, improve development efficiency and improve the development experience.
[0003] However, with the continuous evolution of technology and the diversification of project requirements, the challenges faced by developers in their work are also increasing. Modern developers often need to use multiple IDE tools at the same time. Due to project requirements, differences in technology stacks, or team collaboration requirements, they may need to switch between different types of IDEs. For example, a developer may use IntelliJ IDEA when writing Java applications, use Visual Studio Code when doing front-end development, and may need to go back to Eclipse when maintaining old systems. With the diversification of development tools and the complexity of development environments, plug-in management has become more cumbersome and challenging.
[0004] Especially when facing multiple versions of IDE, the compatibility problem of plug-ins is particularly prominent. Developers often need to install different versions of plug-ins for different versions of IDE, and these plug-ins may conflict after the version is updated, resulting in failure to work properly. What's more, due to the difference in IDE versions, some plug-ins may not be compatible with different versions of development environments, resulting in the inability to fully utilize the functions of the plug-ins. In addition, as the update speed of development tools and plug-ins accelerates, developers face many challenges when dealing with plug-in updates: for example, the updated version of the plug-in may introduce new problems or conflict with other plug-ins, and the difficulty of plug-in maintenance and updating will increase accordingly. These problems not only waste a lot of developers' time and energy, but also affect development efficiency and may even affect the progress of the project.
[0005] There are some plug-in management systems currently, but most of them are designed only for a single IDE version and lack a unified management mechanism across versions and IDE types, resulting in inefficient plug-in matching across versions and IDE types under high-concurrency queries. Summary of the invention
[0006] To this end, the present application provides a multi-version and multi-type IDE plug-in storage and query method and device to solve the problem of low plug-in matching efficiency across versions and IDE types in the prior art IDE plug-in management system under high concurrent queries.
[0007] In order to achieve the above objectives, this application provides the following technical solutions:
[0008] In a first aspect, a method for storing multi-version and multi-type IDE plug-ins includes:
[0009] Receive IDE plug-ins uploaded by users that need to be managed;
[0010] Parse and record the IDE type and IDE version information supported by the IDE plug-in;
[0011] The IDE type and the IDE version information are stored in a pre-established plug-in center library in a storage structure combining a hash table and a linked list; the plug-in center library pre-enumerates key-value relationships of multiple IDE plug-in versions.
[0012] Preferably, the plug-in center library supports uploading and storing plug-ins of different versions for different types of IDEs in the JetBrains series.
[0013] Preferably, the IDE plug-in version includes a displayed version number and a Build version number.
[0014] Preferably, the IDE type and the IDE version information include version number, release date, IDE type and IDE version.
[0015] Preferably, the method further includes: regularly synchronizing version information through the official IDE plug-in market.
[0016] In a second aspect, a multi-version and multi-type IDE plug-in storage device includes:
[0017] The data receiving module is used to receive the IDE plug-ins uploaded by users that need to be managed;
[0018] A parsing module, used for parsing and recording IDE types and IDE version information supported by the IDE plug-in;
[0019] The storage module is used to store the IDE type and the IDE version information in a pre-established plug-in center library in a storage structure combining a hash table and a linked list; the plug-in center library pre-enumerates the key-value relationship of multiple IDE plug-in versions.
[0020] In a third aspect, a method for querying IDE plug-ins of multiple versions and types includes:
[0021] Get the IDE type and version number currently used by the user;
[0022] Querying the key-value correspondence of the pre-established version list in the plug-in center library according to the IDE type and version number currently used by the user;
[0023] Find the version number that matches the user's IDE version in the version list;
[0024] Quickly match available IDE plug-in data in the plug-in center library based on the found version number;
[0025] The compatibleVersions field of the IDE plug-in data is traversed in the memory, and it is checked whether the IDE version currently used by the user is within the version range specified by the compatibleVersions field. If the IDE version currently used by the user is within the version range specified by the compatibleVersions field, the IDE plug-in is compatible with the user's IDE version.
[0026] In a fourth aspect, a multi-version and multi-type IDE plug-in query device includes:
[0027] IDE information acquisition module, used to obtain the IDE type and version number currently used by the user;
[0028] A query module, used to query the key-value correspondence of the pre-established version list in the plug-in center library according to the IDE type and version number currently used by the user;
[0029] A matching module, used to find a version number matching the user IDE version in the version list;
[0030] The plug-in data acquisition module is used to quickly match the available IDE plug-in data in the plug-in center library according to the found version number;
[0031] The traversal module is used to traverse the compatibleVersions field of the IDE plug-in data in the memory and check whether the IDE version currently used by the user is within the version range specified by the compatibleVersions field. If the IDE version currently used by the user is within the version range specified by the compatibleVersions field, the IDE plug-in is compatible with the user's IDE version.
[0032] Compared with the prior art, this application has at least the following beneficial effects:
[0033] 1. This application provides a multi-version and multi-type IDE plug-in storage method, which receives IDE plug-ins uploaded by users that need to be managed; parses and records the IDE types and IDE version information supported by the IDE plug-ins; stores the IDE types and IDE version information in a pre-established plug-in center library in a storage structure that combines a hash table and a linked list; the plug-in center library pre-enumerates the key-value relationship of multiple IDE plug-in versions. The plug-in center library adopts version control, records and parses the IDE types and IDE version information supported by the plug-in, and realizes unified management of IDE plug-ins across versions and IDE types, which can greatly reduce the number of query matches and improve plug-in matching efficiency.
[0034] 2. The present application provides a multi-version and multi-type IDE plug-in query method, which queries the key-value correspondence of the pre-established version list in the plug-in center library according to the IDE type and version number currently used by the user; finds the version number that matches the user's IDE version in the version list; quickly matches the available IDE plug-in data in the plug-in center library according to the found version number; traverses the compatibleVersions field of the IDE plug-in data in memory, and checks whether the IDE version currently used by the user is within the version range specified by the compatibleVersions field. If so, the IDE plug-in is compatible with the user's IDE version. This method significantly reduces the number of matches of historical plug-in versions by quickly matching IDE types and versions, thereby improving the efficiency of plug-in retrieval. BRIEF DESCRIPTION OF THE DRAWINGS
[0035] In order to more intuitively illustrate the prior art and the present application, exemplary drawings are given below. It should be understood that the specific shapes and structures shown in the drawings should not generally be regarded as limiting conditions for implementing the present application; for example, those skilled in the art are capable of easily making conventional adjustments or further optimizations to the addition / reduction / attribution division, specific shapes, positional relationships, connection methods, dimensional ratios, etc. of certain units (components) based on the technical concepts and exemplary drawings disclosed in the present application.
[0036] Figure 1 A flow chart of a multi-version and multi-type IDE plug-in storage method provided in Example 1 of the present application;
[0037] Figure 2 A schematic diagram of the plug-in storage structure provided in Example 1 of the present application;
[0038] Figure 3 A flow chart of a multi-version and multi-type IDE plug-in query method provided in Example 3 of the present application. DETAILED DESCRIPTION
[0039] The present application is further described below in detail through specific embodiments in conjunction with the accompanying drawings.
[0040] In the description of this application: unless otherwise specified, "plurality" means two or more. The terms "first", "second", "third", etc. in this application are intended to distinguish the objects referred to, and do not have special meanings in terms of technical connotations (for example, they should not be understood as emphasizing the importance or order, etc.). Expressions such as "including", "comprising", "having", etc. also mean "not limited to" (certain units, components, materials, steps, etc.).
[0041] The terms such as "upper", "lower", "left", "right", "middle", etc. cited in this application are usually used to indicate the general relative position relationship for the purpose of intuitive understanding by referring to the drawings, and are not absolute limitations on the position relationship in the actual product.
[0042] Embodiment 1
[0043] See also Figure 1 and Figure 2 This embodiment provides a multi-version and multi-type IDE plug-in storage method, including:
[0044] S1: Receive IDE plug-ins uploaded by users that need to be managed;
[0045] S2: parse and record the IDE types and IDE versions supported by the IDE plug-in;
[0046] Specifically, the IDE type and IDE version information include version number, release date, IDE type and IDE version, etc.
[0047] In this step, each time a user uploads a version of an IDE plug-in, the IDE type and version of the IDE plug-in will be parsed. The version Json information is as follows:
[0048] {
[0049] "id": 328212, / / plugin version ID
[0050] "pluginId": 32, / / plugin ID
[0051] "version": "1.0.1", / / plugin version number
[0052] "name": IdeaVim, / / Plugin name
[0053] "compatibleVersions": { / / IDE types and versions compatible with the plugin
[0054] "IDEA": "2022.3 - 2023.1.4",
[0055] "PYCHARM": "2022.3.4 - 2023.1.1",
[0056] "GOLAND": "222+ - 233+"
[0057] }
[0058] }
[0059] S3: The IDE type and IDE version information are stored in a pre-established plug-in center library in a storage structure combining a hash table and a linked list; the plug-in center library pre-enumerates the key-value relationship of various IDE plug-in versions.
[0060] Specifically, this step uses a custom IDE version sorting method to enumerate the IDE version and IDE plug-in version supported by the IDE plug-in by using the IDE type and IDE version information. Then, this information is stored in the plug-in center library in a manner similar to a hash table plus a linked list. For example:
[0061] {
[0062] "pluginId": 32, / / plugin ID
[0063] "version": "1.0.1", / / plugin version number
[0064] "name": IdeaVim, / / Plugin name
[0065] "IDEA": "223.0563,223.1631,223.2456,....,231.4161",
[0066] "PYCHARM": "223.4531,223.5892,....,231.1781",
[0067] "GOLAND": "221.0213,223.6787,....,233.6323",
[0068] "versions": [ / / Version list information
[0069] {"id": 328212,"name": IdeaVim,....,"compatibleVersions":[...]}
[0070] {"id": 328222,"name": Docker,....,"compatibleVersions":[...]} ]
[0072] }
[0073] It should be noted that the plug-in center library supports the uploading and storage of plug-ins of different versions of different types of IDEs in the JetBrains series (including but not limited to IntelliJ IDEA, PyCharm, WebStorm, etc.), thereby realizing centralized management of plug-in resources.
[0074] Since IDE versions can be enumerated, there are two types of version numbers: one is the displayed version number, which is usually displayed in a readable form such as year, month, and day, for example: GOLAND 2022.3.6; the other is the Build version number, for example: GO-223.6787.30. In this embodiment, the key-value relationship between the two version numbers needs to be enumerated in advance in the plugin center library. For example:
[0075] {"GOLAND":[{"2022.3.5":"223.5839"},{"2022.3.6":"223.6787"}....]}.
[0076] This embodiment provides a multi-version and multi-type IDE plug-in storage method, which also includes: regularly synchronizing version information through the official IDE plug-in market. Specifically, regularly synchronizing version information in the official IDE plug-in market through APIs. If a new version is synchronized to the plug-in center, the plug-in version queried by the user when opening the IDE plug-in market is newer than the local version, and an update button will be automatically displayed. After the user clicks it, the strategy for updating the plug-in will be triggered. Automatic detection and updating of plug-ins can reduce operational problems caused by incompatible plug-ins.
[0077] This embodiment provides a method for storing multi-version and multi-type IDE plug-ins. The plug-in center library adopts version control to record and parse the IDE types and IDE version information supported by the plug-in, including version number, release date, IDE type, IDE version, etc., to achieve unified management of IDE plug-ins across versions and IDE types. By parsing the version number, supported IDE type and IDE version information of the plug-in and storing them in a data structure suitable for query, the number of query matches can be greatly reduced.
[0078] Embodiment 2
[0079] This embodiment provides a multi-version and multi-type IDE plug-in storage device, including:
[0080] The data receiving module is used to receive the IDE plug-ins uploaded by users that need to be managed;
[0081] Parsing module, used to parse and record the IDE type and IDE version information supported by the IDE plug-in;
[0082] The storage module is used to store the IDE type and IDE version information in a pre-established plug-in center library in a storage structure combining a hash table and a linked list; the plug-in center library pre-enumerates the key-value relationship of multiple IDE plug-in versions.
[0083] The specific implementation contents of each module in a multi-version and multi-type IDE plug-in storage device can be found in the above definition of a multi-version and multi-type IDE plug-in storage method, which will not be repeated here.
[0084] Embodiment 3
[0085] See also Figure 3 This embodiment provides a multi-version and multi-type IDE plug-in query method, including:
[0086] S1: Get the IDE type and version number currently used by the user;
[0087] Specifically, for example: IDE type is: GoLand, version number is: 2022.3.6.
[0088] S2: Query the key-value correspondence of the pre-established version list in the plug-in center library according to the IDE type and version number currently used by the user;
[0089] Specifically, this step will query the key-value correspondence of the pre-established version list based on the IDE type and version number (GoLand, 2022.3.6) currently used by the user. Here, the key is the IDE type and version number, and the value is the corresponding plug-in information.
[0090] S3: Find the version number that matches the user IDE version in the version list;
[0091] Specifically, find the version number that matches the user's IDE version in the version list. For example, for GoLand 2022.3.6, the corresponding version number is 223.6787.
[0092] S4: Quickly match available IDE plug-in data in the plug-in center library according to the found version number;
[0093] Specifically, the found version number is used to quickly match available plug-in data in the plug-in center library. In this example, the plug-in matched is IdeaVim.
[0094] S5: traverse the compatibleVersions field of the IDE plug-in data in the memory, and check whether the IDE version currently used by the user is within the version range specified by the compatibleVersions field. If the IDE version currently used by the user is within the version range specified by the compatibleVersions field, the IDE plug-in is compatible with the user's IDE version.
[0095] Specifically, after matching the plug-in data, the compatibleVersions field of the plug-in information will be traversed in memory. This field contains the IDE types and version ranges supported by the plug-in. It will check whether the IDE version currently used by the user is within the version range specified by the compatibleVersions field. If so, the plug-in is compatible with the user's IDE version and can be used. This can reduce a lot of version matching calculations and greatly improve query efficiency.
[0096] The multi-version and multi-type IDE plug-in query method provided in this embodiment significantly reduces the number of matching times of historical plug-in versions by quickly matching IDE types and versions, thereby improving the efficiency of plug-in retrieval.
[0097] Embodiment 4
[0098] This embodiment provides a multi-version and multi-type IDE plug-in query device, including:
[0099] IDE information acquisition module, used to obtain the IDE type and version number currently used by the user;
[0100] The query module is used to query the key-value correspondence of the pre-established version list in the plug-in center library according to the IDE type and version number currently used by the user;
[0101] The matching module is used to find the version number that matches the user's IDE version in the version list;
[0102] The plug-in data acquisition module is used to quickly match the available IDE plug-in data in the plug-in center library according to the found version number;
[0103] The traversal module is used to traverse the compatibleVersions field of the IDE plug-in data in memory and check whether the IDE version currently used by the user is within the version range specified by the compatibleVersions field. If the IDE version currently used by the user is within the version range specified by the compatibleVersions field, the IDE plug-in is compatible with the user's IDE version.
[0104] The specific implementation content of each module in a multi-version and multi-type IDE plug-in query device can be found in the above definition of a multi-version and multi-type IDE plug-in query method, which will not be repeated here.
[0105] The technical features of the above embodiments may be arbitrarily combined (as long as there is no contradiction in the combination of these technical features). To make the description concise, not all possible combinations of the technical features in the above embodiments are described; these embodiments that are not explicitly written should also be considered to be within the scope of this specification.
Claims
1. A method for storing multi-version and multi-type IDE plug-ins, characterized in that: include: Receive IDE plug-ins uploaded by users that need to be managed; Parse and record the IDE type and IDE version information supported by the IDE plug-in; The IDE type and the IDE version information are stored in a pre-established plug-in center library in a storage structure combining a hash table and a linked list; The plug-in center library pre-enumerates key-value relationships of various IDE plug-in versions.
2. The multi-version and multi-type IDE plug-in storage method according to claim 1, characterized in that: The plug-in center library supports the uploading and storage of plug-ins of different versions for different types of IDEs in the JetBrains series.
3. The multi-version and multi-type IDE plug-in storage method according to claim 1, characterized in that: The IDE plug-in version includes the displayed version number and the Build version number.
4. The multi-version and multi-type IDE plug-in storage method according to claim 1, characterized in that: The IDE type and the IDE version information include version number, release date, IDE type and IDE version.
5. The multi-version and multi-type IDE plug-in storage method according to claim 1, characterized in that: Also includes: Regularly synchronize version information through the official IDE plug-in market.
6. A multi-version and multi-type IDE plug-in storage device, characterized in that: include: The data receiving module is used to receive the IDE plug-ins uploaded by users that need to be managed; A parsing module, used for parsing and recording IDE types and IDE version information supported by the IDE plug-in; A storage module, used for storing the IDE type and the IDE version information in a pre-established plug-in center library in a storage structure combining a hash table and a linked list; The plug-in center library pre-enumerates key-value relationships of various IDE plug-in versions.
7. A multi-version and multi-type IDE plug-in query method, characterized in that: include: Get the IDE type and version number currently used by the user; Querying the key-value correspondence of the pre-established version list in the plug-in center library according to the IDE type and version number currently used by the user; Find the version number that matches the user's IDE version in the version list; Quickly match available IDE plug-in data in the plug-in center library based on the found version number; The compatibleVersions field of the IDE plug-in data is traversed in the memory, and it is checked whether the IDE version currently used by the user is within the version range specified by the compatibleVersions field. If the IDE version currently used by the user is within the version range specified by the compatibleVersions field, the IDE plug-in is compatible with the user's IDE version.
8. A multi-version and multi-type IDE plug-in query device, characterized in that: include: IDE information acquisition module, used to obtain the IDE type and version number currently used by the user; A query module, used to query the key-value correspondence of the pre-established version list in the plug-in center library according to the IDE type and version number currently used by the user; A matching module, used to find a version number matching the user IDE version in the version list; The plug-in data acquisition module is used to quickly match the available IDE plug-in data in the plug-in center library according to the found version number; The traversal module is used to traverse the compatibleVersions field of the IDE plug-in data in the memory and check whether the IDE version currently used by the user is within the version range specified by the compatibleVersions field. If the IDE version currently used by the user is within the version range specified by the compatibleVersions field, the IDE plug-in is compatible with the user's IDE version.
Citation Information
Patent Citations
Compiling method and device of compiling system and terminal equipment
CN107741851A
An application starting method and device and a computer readable storage medium
CN113703857A
Plug-in architecture method and system, storage medium and program product
CN118377553A
Plug-in management system, data synchronization method, device, storage medium and program
CN118377834A
