Project file processing method and device
1. A project file processing method is characterized by comprising the following steps:
responding to the end of the editing operation aiming at the initial project file, and acquiring a project source code of the initial project file and a file format corresponding to the project source code;
based on the file format, extracting an initial hard code from the project source code, and acquiring target identification information corresponding to the initial hard code and a project source code position of the initial hard code in the project source code;
writing a mapping relation between the initial hard code and the target identification information in a preset initial resource file according to the position of the project source code to obtain a target resource file;
and updating the initial hard code according to preset replacement information and the target identification information to generate a target project file.
2. The method of claim 1, wherein said extracting initial hard-codes from said project source code based on said file format comprises:
extracting a source code file in a target file format from the project source codes;
acquiring extraction information matched with the target file format;
and extracting initial hard codes from the source code file by adopting the extraction information and the target file format.
3. The method of claim 2, wherein the extracting information comprises a regular expression, and wherein extracting initial hard code from the source code file using the extracting information and the target file format comprises:
traversing the source code file, and extracting source codes meeting the regular expression as initial hard codes corresponding to the source code file;
the source code files at least comprise one of Java files, Kotlin files and Xml files, and different source code files correspond to different regular expressions.
4. The method according to claim 1, wherein writing a mapping relationship between the initial hard code and the target identification information in a preset initial resource file according to the project source code position to obtain a target resource file comprises:
acquiring an initial resource file matched with the initial project file;
and writing the mapping relation between the initial hard code and the target identification information corresponding to the initial hard code in the initial resource file by adopting the position of the project source code to obtain a target resource file.
5. The method according to claim 4, wherein said writing, using the project source code position, a mapping relationship between the initial hard code and target identification information corresponding to the initial hard code in the initial resource file to obtain a target resource file comprises:
searching preset identification information from the resource file by adopting the project source code position;
comparing the preset identification information with the target identification information, and judging whether preset identification information with the same name as the target identification information exists in the initial resource file;
if preset identification information which is the same as the target identification information exists in the initial resource file, acquiring a preset hard code corresponding to the preset identification information;
and if the preset hard code corresponding to the preset identification information is different from the initial hard code corresponding to the target identification information, writing the mapping relation between the initial hard code and the target identification information corresponding to the initial hard code to obtain a target resource file.
6. The method of claim 5, wherein writing the mapping relationship between the initial hard code and the target identification information corresponding to the initial hard code comprises:
writing the mapping relation between the initial hard code and the target identification information corresponding to the initial hard code into the initial resource file;
adding identification information to the target identification information to distinguish the target identification information from the preset identification information;
and returning to the step of judging whether preset identification information with the same name as the target identification information exists in the initial resource file or not until the writing of the mapping relation between the initial hard code and the target identification information corresponding to the initial hard code is completed.
7. The method according to claim 6, wherein writing the mapping relationship between the initial hard code and the target identification information corresponding to the initial hard code into the initial resource file comprises:
if the initial hard code has a specific character, converting the specific character into an escape character, and updating the initial hard code;
and writing the mapping relation between the converted initial hard code and the target identification information in the initial resource file.
8. The method according to claim 1, wherein the updating the initial hard code according to preset replacement information and the target identification information to generate a target project file comprises:
obtaining replacement information for the initial hard-coding;
generating a target source code for the initial hard coding by adopting the replacement information and the target identification information;
and replacing the initial hard code in the initial project file with a corresponding target source code to generate a target project file.
9. A processing apparatus for a project file, comprising:
the project source code acquisition module is used for responding to the end of the editing operation aiming at the initial project file and acquiring the project source code of the initial project file and the file format corresponding to the project source code;
a hard code information extraction module, configured to extract an initial hard code from the project source code based on the file format, and obtain target identification information corresponding to the initial hard code and a project source code position of the initial hard code in the project source code;
the resource file processing module is used for writing the mapping relation between the initial hard code and the target identification information in a preset initial resource file according to the project source code position to obtain a target resource file;
and the project file generation module is used for updating the initial hard code according to preset replacement information and the target identification information to generate a target project file.
10. An electronic device, comprising a processor, a communication interface, a memory and a communication bus, wherein the processor, the communication interface and the memory communicate with each other via the communication bus;
the memory is used for storing a computer program;
the processor, when executing a program stored on the memory, implementing the method of any of claims 1-8.
11. One or more computer-readable media having instructions stored thereon that, when executed by one or more processors, cause the processors to perform the method of any of claims 1-8.
Background
In computer programs or text editing, hard coding refers to a method of replacing a variable with a fixed value. In this way (hard-coded) an edited program is difficult to modify when such variables are needed. Therefore, a corresponding resource file can be provided in the project engineering file, a fixed numerical value is defined as a mark and is stored in a centralized mode, the special mark is used for replacing the variable name, when the mark name is changed, the variable name is unchanged, and when the whole program is edited again, all variables are not fixed values any more, so that the purpose of changing the variables is achieved. However, in the project development, since a large amount of data docking and front-end display work needs to be completed, the application program may contain more hard-coded contents, the hard-coded replacement is tedious and repetitive labor, the code conversion efficiency is low, and errors are easily caused.
Disclosure of Invention
The embodiment of the invention provides a project file processing method, a project file processing device, electronic equipment and a computer readable storage medium, and aims to solve or partially solve the problems that in the development process of project files, the efficiency of hard code replacement is low and errors are easy to make in the prior art.
The embodiment of the invention discloses a project file processing method, which comprises the following steps:
responding to the end of the editing operation aiming at the initial project file, and acquiring a project source code of the initial project file and a file format corresponding to the project source code;
based on the file format, extracting an initial hard code from the project source code, and acquiring target identification information corresponding to the initial hard code and a project source code position of the initial hard code in the project source code;
writing a mapping relation between the initial hard code and the target identification information in a preset initial resource file according to the position of the project source code to obtain a target resource file;
and updating the initial hard code according to preset replacement information and the target identification information to generate a target project file.
Optionally, the extracting, based on the file format, an initial hard code from the project source code includes:
extracting a source code file in a target file format from the project source codes;
acquiring extraction information matched with the target file format;
and extracting initial hard codes from the source code file by adopting the extraction information and the target file format.
Optionally, the extracting information includes a regular expression, and extracting initial hard code from the source code file by using the extracting information and the target file format includes:
traversing the source code file, and extracting source codes meeting the regular expression as initial hard codes corresponding to the source code file;
the source code files at least comprise one of Java files, Kotlin files and Xml files, and different source code files correspond to different regular expressions.
Optionally, the writing, according to the source code position of the project, a mapping relationship between the initial hard code and the target identification information in a preset initial resource file to obtain a target resource file includes:
acquiring an initial resource file matched with the initial project file;
and writing the mapping relation between the initial hard code and the target identification information corresponding to the initial hard code in the initial resource file by adopting the position of the project source code to obtain a target resource file.
Optionally, the writing, by using the source code position of the project, a mapping relationship between the initial hard code and target identification information corresponding to the initial hard code in the initial resource file to obtain a target resource file includes:
searching preset identification information from the resource file by adopting the project source code position;
comparing the preset identification information with the target identification information, and judging whether preset identification information with the same name as the target identification information exists in the initial resource file;
if preset identification information which is the same as the target identification information exists in the initial resource file, acquiring a preset hard code corresponding to the preset identification information;
and if the preset hard code corresponding to the preset identification information is different from the initial hard code corresponding to the target identification information, writing the mapping relation between the initial hard code and the target identification information corresponding to the initial hard code to obtain a target resource file.
Optionally, the writing of the mapping relationship between the initial hard code and the target identification information corresponding to the initial hard code includes:
writing the mapping relation between the initial hard code and the target identification information corresponding to the initial hard code into the initial resource file;
adding identification information to the target identification information to distinguish the target identification information from the preset identification information;
and returning to the step of judging whether preset identification information with the same name as the target identification information exists in the initial resource file or not until the writing of the mapping relation between the initial hard code and the target identification information corresponding to the initial hard code is completed.
Optionally, the writing the mapping relationship between the initial hard code and the target identification information corresponding to the initial hard code into the initial resource file includes:
if the initial hard code has a specific character, converting the specific character into an escape character, and updating the initial hard code;
and writing the mapping relation between the converted initial hard code and the target identification information in the initial resource file.
Optionally, the updating the initial hard code according to preset replacement information and the target identification information to generate a target project file includes:
obtaining replacement information for the initial hard-coding;
generating a target source code for the initial hard coding by adopting the replacement information and the target identification information;
and replacing the initial hard code in the initial project file with a corresponding target source code to generate a target project file.
The embodiment of the invention also discloses a processing device of the project file, which comprises:
the project source code acquisition module is used for responding to the end of the editing operation aiming at the initial project file and acquiring the project source code of the initial project file and the file format corresponding to the project source code;
a hard code information extraction module, configured to extract an initial hard code from the project source code based on the file format, and obtain target identification information corresponding to the initial hard code and a project source code position of the initial hard code in the project source code;
the resource file processing module is used for writing the mapping relation between the initial hard code and the target identification information in a preset initial resource file according to the project source code position to obtain a target resource file;
and the project file generation module is used for updating the initial hard code according to preset replacement information and the target identification information to generate a target project file.
Optionally, the hard-coded information extraction module includes:
the source code file extraction submodule is used for extracting a source code file in a target file format from the project source codes;
the extraction information acquisition submodule is used for acquiring extraction information matched with the target file format;
and the initial hard code extraction submodule is used for extracting initial hard codes from the source code file by adopting the extraction information and the target file format.
Optionally, the extraction information includes a regular expression, and the initial hard-coded extraction sub-module is specifically configured to:
traversing the source code file, and extracting source codes meeting the regular expression as initial hard codes corresponding to the source code file;
the source code files at least comprise one of Java files, Kotlin files and Xml files, and different source code files correspond to different regular expressions.
Optionally, the resource file processing module includes:
an initial resource file obtaining sub-module, configured to obtain an initial resource file matched with the initial project file;
and the target resource file acquisition submodule is used for writing the mapping relation between the initial hard code and the target identification information corresponding to the initial hard code in the initial resource file by adopting the project source code position to acquire the target resource file.
Optionally, the target resource file obtaining sub-module is specifically configured to:
searching preset identification information from the resource file by adopting the project source code position;
comparing the preset identification information with the target identification information, and judging whether preset identification information with the same name as the target identification information exists in the initial resource file;
if preset identification information which is the same as the target identification information exists in the initial resource file, acquiring a preset hard code corresponding to the preset identification information;
and if the preset hard code corresponding to the preset identification information is different from the initial hard code corresponding to the target identification information, writing the mapping relation between the initial hard code and the target identification information corresponding to the initial hard code.
Optionally, the target resource file obtaining sub-module is specifically configured to:
writing the mapping relation between the initial hard code and the target identification information corresponding to the initial hard code into the initial resource file;
adding identification information to the target identification information to distinguish the target identification information from the preset identification information;
and returning to the step of judging whether preset identification information with the same name as the target identification information exists in the initial resource file or not until the writing of the mapping relation between the initial hard code and the target identification information corresponding to the initial hard code is completed.
Optionally, the target resource file obtaining sub-module is specifically configured to:
if the initial hard code has a specific character, converting the specific character into an escape character, and updating the initial hard code;
and writing the mapping relation between the converted initial hard code and the target identification information in the initial resource file.
Optionally, the project file generating module includes:
a replacement information acquisition sub-module for acquiring replacement information for the initial hard code;
a target source code generating submodule, configured to generate a target source code for the initial hard coding by using the replacement information and the target identification information;
and the project file generation submodule is used for replacing the initial hard code in the initial project file with a corresponding target source code to generate a target project file.
The embodiment of the invention also discloses electronic equipment which comprises a processor, a communication interface, a memory and a communication bus, wherein the processor, the communication interface and the memory finish mutual communication through the communication bus;
the memory is used for storing a computer program;
the processor is configured to implement the method described above when executing the program stored in the memory.
Embodiments of the invention also disclose one or more computer-readable media having instructions stored thereon, which, when executed by one or more processors, cause the processors to perform the methods described above.
The embodiment of the invention has the following advantages:
in the embodiment of the invention, in the process of editing a project file, after a developer finishes editing, a project source code of the project file and a file format corresponding to the project source code can be acquired, then an initial hard code is extracted from the project source code based on the file format, target identification information corresponding to the initial hard code and a project source code position in the project source code are acquired, then, on one hand, a mapping relation between the initial hard code and the target identification information can be written in a preset resource file according to the project source code position to realize updating of the resource file and ensure the validity of the resource file, on the other hand, the initial hard code of the initial project file can be updated according to preset replacement information and target identification information to generate a target project file, so that the hard code in the project file can be replaced in the process of project development, the method reduces additional operation in the development process, improves the efficiency of hard code replacement, does not need to interrupt hard code replacement in the editing process, and enhances the continuity of editing source codes.
Drawings
FIG. 1 is a flowchart illustrating steps of a method for processing a project file according to an embodiment of the present invention;
fig. 2 is a block diagram of a processing apparatus for a project file provided in an embodiment of the present invention;
FIG. 3 is a block diagram of an electronic device provided in an embodiment of the invention;
fig. 4 is a schematic diagram of a computer-readable medium provided in an embodiment of the present invention.
Detailed Description
In order to make the aforementioned objects, features and advantages of the present invention comprehensible, embodiments accompanied with figures are described in further detail below.
As an example, in computer programs or text editing, hard coding refers to a method of replacing a variable with a fixed value in such a way that subsequent modification of the variable is made difficult. Therefore, the corresponding resource file is provided in the project file, which is used for defining a fixed numerical value as a mark and storing the mark in a centralized way, the special mark is used for replacing the name of the variable, when the mark name is changed, the name of the variable is not changed, if the whole program needs to be edited again, the purpose of changing the variable is easy to realize because all the variables are not fixed values any more.
In the process of project development, because a large amount of data docking and front-end display work needs to be completed, the application program often has more hard-coded contents, the replacement of hard codes is not only complicated, but also repeated labor needs to be paid by developers, the code conversion efficiency is low, and errors are easy to occur.
In view of this, one of the core invention points of the embodiments of the present invention is that, in the process of developing a project file, when it is detected that an editing operation is finished, a project source code of the project file and a file format corresponding to the project source code may be acquired, then, based on the file format, an initial hard code is extracted from the project source code, and target identification information corresponding to the initial hard code and a project source code position in the project source code are acquired, on one hand, a mapping relationship between the initial hard code and the target identification information may be written in a preset resource file according to the project source code position, so as to update the resource file, ensure the validity of the resource file, on the other hand, the initial hard code of the initial project file may be updated according to preset replacement information and the target identification information, so as to generate a target project file, so that the hard code in the project file may be replaced in the process of developing the project, the method reduces additional operation in the development process, improves the efficiency of hard code replacement, does not need to interrupt hard code replacement in the editing process, and enhances the continuity of editing source codes.
It should be noted that, in the embodiment of the present invention, an example is given in which the project file is an android project file, and the hard code of the project file is processed in a corresponding android studio editor, which should be understood that the present invention is not limited thereto.
Referring to fig. 1, a flowchart illustrating steps of a processing method for a project file provided in an embodiment of the present invention is shown, which may specifically include the following steps:
step 101, responding to the end of the editing operation aiming at an initial project file, and acquiring a project source code of the initial project file and a file format corresponding to the project source code;
because the android studio is compatible with most IDEA (IntelliJ IDEA, an integrated environment for java language development) plug-ins, the process of monitoring code editing of developers can be realized through the plug-in interface provided by the IDEA, and the invocation of getString () method to quote resources is completed by setting context (environment) used globally and corresponding header files, so that the hard code replacement is automatically completed under the condition of not damaging the coding continuity of developers.
In specific implementation, the editing operation of the android developer on the project file can be monitored, and when the monitoring that the editing operation is finished, the project source code of the currently edited project file and the file format corresponding to the project source code can be obtained. The project source code can be an execution code of an application program corresponding to the project file; the file formats can include Java, Kotlin, Xml, Html, Json, Groovy and other formats, and by identifying different file formats, a source code file containing hard codes can be extracted, so that corresponding replacement processing can be performed on the hard codes.
In an example, in order to implement monitoring of project source code file editing and obtain a project source code and a file format being edited in real time, the embodiment of the present invention may be implemented in the form of an Android Studio editor plug-in. Specifically, the Android Studio editor plug-in may be implemented based on an assembly provided by the IntelliJ Platform, where the Android editor plug-in includes an interface filedocumentmanagementmanagelistener that monitors editing and saving a file, and the interface may include a plurality of methods for monitoring editing and saving functions of the file in the editor, for example, when a code is compiled and saved in the editor before the file, and the code is loaded from a hard disk to the editor, and the like, the system may actively call back a method corresponding to the interface, so as to implement a corresponding function by inheriting the method corresponding to the interface, and further implement development of a project file, real-time retrieval of a hard code, and corresponding processing.
Specifically, the project source codes that are not currently saved can be obtained through a filedocument manager # getunovoddocuments () interface provided by the plug-in, and the file formats corresponding to the project source codes and the contents to be saved can be obtained and edited by respectively processing the project source codes.
102, extracting an initial hard code from the project source code based on the file format, and acquiring target identification information corresponding to the initial hard code and a project source code position of the initial hard code in the project source code;
in the embodiment of the present invention, for the project source code of the project file, the source code file in the target file format may be extracted from the project source code, then the extraction information matched with the target file format is obtained, and then the initial hard code is extracted from the source code file by using the extraction information and the target file format. The target file format may be a file format corresponding to a text document containing hard coding.
In specific implementation, for text documents in different file formats in a project file, a Document type can be returned by a FileDocumentManager # getunaveddocuments () interface, the Document type is converted into a PsiFile type, then a file type and a file name suffix corresponding to each text Document are obtained by a getFileType () method, and a file format corresponding to each text Document is obtained by identification, so that a source code file in a target file format can be further extracted. The source code file of the object file format may include one of a Java file, a Kotlin file, and an Xml file, and these files may include hard codes.
Specifically, in the process of extracting the hard code, text content edited in the source code file can be traversed, the regular expression is used for matching, if the matching is successful, the source code segment is judged to contain the hard code, the code block of the hard code is obtained, target identification information corresponding to the initial hard code is extracted from the code block, and the position of the initial hard code in the project source code is determined.
It should be noted that, for source code files of different file formats, different extraction information may be used to extract corresponding hard codes from the source code files so as to replace the hard codes, for example, for Java, Kotlin and Xml-type files commonly used in android development, different regular expressions may be used to match hard code blocks and obtain hard code contents, for example, the regular expressions "are used for Java and Kotlin files? Matching [ \\\ ] ", meaning to obtain the content between a pair of double quotation marks; xml files use the regular expression android ═ text? "meaning is to obtain the text content of the text attribute of a view. It is to be understood that, when the source code of other file types is targeted, a corresponding manner may be selected for extracting the content of the source code, which is not limited in the present invention.
The hard coding is a mode of replacing a variable with a fixed value, the mode of detecting the hard coding can match the hard coding characteristics through a regular expression, and the regular expression describes a character string matching mode and can be used for extracting a substring meeting a certain condition from a certain string. And traversing the edited text content line by line, matching each line of text by using a corresponding regular expression to obtain a hard coding target structure containing rules such as double quotation marks, and intercepting the text in the double quotation marks of the target structure to obtain the original hard coding content. For example, 1, one line of edited text content is: log.i (TAG, "this is a log"); 2. obtaining a hard coding target structure containing rules such as double quotation marks through regular formula matching: "this is a log"; 3. intercepting the text in the double quotation marks of the target structure to obtain the original hard-coded content: this is a log.
In an example, in the process of obtaining the tag information tag corresponding to the hard code, if the hard code content contains a set code (such as chinese, japanese, etc.), a corresponding translation interface may be called to obtain the english translation content of the full text, and then the translated content is judged to meet the conditions set by the tag information tag content character by character. The identification information tag can be composed of numbers, letters, underlines and the like, characters which do not meet the conditions can be abandoned or replaced by allowed characters according to the standard, and therefore the source code position information of the hard coding code block in the item source code and the identification information tag corresponding to the hard coding can be determined.
Specifically, because UTF-8 encoding is used for text editing in the android studio editor, a text encoding segment can be obtained according to an encoding table, for example, Chinese encoding is between 0x4E00 and 0x9FA5, if the encoding of characters in a segment of hard-coded original content is in the above interval, the segment of hard-coded original content can be judged to be Chinese content, an interface of a middle translation English is called to translate the hard-coded full text, then the hard-coded full text is judged one by one based on the English content, and if the code is a number or a letter, the hard-coded full text is reserved; if the characters are other characters, underlines are replaced, on the basis of the previous steps, meaningless words such as 'a', 'an', 'the', and the like are filtered and removed, continuous underlines are removed, all capital letters are replaced to be lower case, and then the source code position information of the hard coding code block in the item source code and the identification information tag corresponding to the hard coding are determined.
103, writing a mapping relation between the initial hard code and the target identification information in a preset initial resource file according to the project source code position to obtain a target resource file;
for the android project file, the corresponding resource file is provided, and can be stored in the fixed directory res/values/strings.xml, a fixed numerical value is defined as a mark and stored in a centralized manner through a uniform format, the variable name is replaced by the special mark, and when the mark name is changed, the variable name is not changed so as to change the variable. After all the hard codes corresponding to the project file and the identification information tag corresponding to each hard code are determined, the mapping relation between the hard codes and the identification information tag can be written into the resource file, so that the updating of the mapping relation between the hard codes and the corresponding identification information in the resource file is realized, the consistency between the related content of the hard codes in the resource file and the project file is ensured, and the effectiveness of the resource file is further ensured.
In a specific implementation, for a resource file, whether a corresponding resource file exists in a directory can be judged, and if not, an initial resource file corresponding to a project file is created; if the data exists, the data can be directly written. Specifically, the mapping relationship between the initial hard code and the target identification information corresponding to the initial hard code may be written in the initial resource file by using the position of the project source code, so as to obtain the target resource file.
For example, the project source code includes an initial hard code (I), an initial hard code (II), an initial hard code (III), and the like, and the corresponding identification information is tag (I), tag (III), and the like, so that the corresponding resource file position in the resource file can be determined according to the project source code position of each initial hard code, so as to ensure the accuracy of data calling during the process of calling the resource file, then the mapping relationship between the initial hard code (I) -tag (II), the initial hard code (II) -tag (III), the initial hard code (III) -tag (III), and the like can be written into the resource file according to the corresponding mapping relationship between the initial hard code (I) -tag (II), the initial hard code (III) -tag (III), and the initial hard code (III) -tag (III), so as to generate a corresponding target resource file, and the mapping relationship between the hard code (II) and the identification information can be written into the resource file, so that the accuracy of resource calling can be effectively ensured, and the subsequent maintenance of the project file can be facilitated, including updating, modifying, deleting variables, etc.
In one example, assume that the hard coding in the project source code is "publish content: "tag corresponding to" is somewhere _ publish _ content ", then the < string name > can be added to < resources > tag of the resource file strings. Entry, </string >, at this time, the corresponding text "release content" can be obtained by using r.id. ", the call to the resource file is realized.
Before the resource file is written into the mapping relationship between the initial hard code and the identification information, whether the resource file already contains the identification information tag with the same name or not can be checked, if so, the hard code corresponding to the identification information tag is obtained and compared with the initial hard code needing to be written, and then whether the corresponding mapping relationship is written or not is judged according to the comparison result. Specifically, the preset identification information may be searched for from the resource file by using the project source code position, and the preset identification information is compared with the target identification information to determine whether the preset identification information having the same name as the target identification information exists in the initial resource file, and if the preset identification information having the same name as the target identification information exists in the initial resource file, the preset hard code corresponding to the preset identification information is obtained; and if the preset hard code corresponding to the preset identification information is different from the initial hard code corresponding to the target identification information, writing the mapping relation between the initial hard code and the identification information corresponding to the initial hard code.
Wherein, in the process of writing the mapping relationship in the resource file, after writing the mapping relationship between the initial hard code and the target identification information corresponding to the initial hard code into the initial resource file, adding identification information to the target identification information to distinguish the target identification information from the preset identification information, and then returning to the step of judging whether the preset identification information with the same name as the target identification information exists in the initial resource file until the writing of the mapping relationship between the initial hard code and the target identification information corresponding to the initial hard code is completed, on one hand, the identification information is added to the target identification information corresponding to the written mapping relationship, so that the identification information can be effectively distinguished from the preset identification information existing in the resource file, thereby ensuring the storage validity of the identification information, on the other hand, the uniqueness of the written information can be ensured through the cyclic detection process, the disorder and redundancy of resource files caused by writing repeated information are avoided.
For example, before writing the mapping relationship between the initial hard code and the identification information tag in the resource file, it is sequentially checked whether the current file already contains the tag with the same name, and if so, it is checked whether the hard code mapped by the current file is the same: if the same, skipping the entry without repeatedly writing the resource file; if the mapping entries are different, a mark is added at the tail end of the entry, then the detection of the tag with the same name is continuously executed until all the mapping entries are written, and the corresponding target resource file is obtained.
In addition, in the process of writing the mapping relationship, if the hard code contains the special character, the resource file needs to be subjected to escape according to a corresponding rule before being written into the resource file, and then the resource file is written into the hard code after escape. Specifically, the escape character lookup table may be as follows:
original character
Escape character
<
<;
>
>;
&
&;
"
";
'
&apos;
Before writing in the resource file, each initial hard code can be traversed, whether the initial hard code has a specific character or not is detected, if yes, escape information for the specific character is obtained, then the specific character is matched with the escape information, an escape character corresponding to the specific character is determined, then the initial hard code is updated based on the escape character, and then the updated mapping relation between the initial hard code and the identification information tag is written in the resource file so as to establish the calling relation between the project file and the resource file. Alternatively, the escape information may be a mapping relationship between a specific character and an escape character.
And 104, updating the initial hard code according to preset replacement information and the target identification information to generate a target project file.
In the embodiment of the invention, the mapping relation in the resource file needs to be written, and the hard code in the project file needs to be updated, so that the hard code replacement is realized, the hard code is automatically retrieved when the project file is edited, the automatic replacement of the hard code is realized, the efficiency of hard code replacement is effectively improved, the coding process does not need to be interrupted, and the continuity of editing the source code is enhanced.
In a specific implementation, the replacement information for the initial hard code may be obtained first, then the target source code for the initial hard code is generated by using the replacement information and the target identification information, and then the initial hard code in the initial project file is replaced by the corresponding target source code to generate the target project file. The replacement information can be a preset rule aiming at hard code conversion, and the replacement of hard codes in the project file can be realized through the rule and the identification information, so that the automatic replacement of the hard codes is realized, and the efficiency of the hard code replacement is improved.
In an example, after all the initial hard codes in the project file and the identification information tag corresponding to each initial hard code are obtained, the corresponding replacement rule may be obtained, and based on the replacement rule and the identification information, the corresponding character string (i.e., the target hard code) is generated, and then the target character string is replaced with the original hard code in the project file, so as to implement replacement of the hard code. For example, assume that the block of hard-coded code in the project file is "release content: ", the corresponding identification information tag is somewhere _ publish _ content, and the set replacement rule is context. The "$ id" in the replacement rule represents the reference r.string.tag of the resource file strings.xml, so that based on the replacement rule and tag, a character string context.getstring (r.string.uniform _ publish _ content) can be obtained, and then the character string is replaced by the hard code in the project file, so that in the process of editing the project file, the hard code replacement is automatically completed, the efficiency of hard code replacement is effectively ensured, the coding process does not need to be interrupted, and the operation of replacing the hard code is additionally performed.
In addition, a set header file can be introduced according to needs, for example, if the type com.a.b.r of the resource file is introduced, the header file "import com.a.b.r" is inserted into the source code file; ". Specifically, a path for storing a tag and a hardcoded mapped string.xml file, usually "package name. R", needs to be introduced to establish a call relationship between the project file and the resource file, so as to implement that the project file calls the resource information in the resource file. In addition, the commonly used getString () method is actually a disclosure method of a Context object, if a code for performing hard-code replacement cannot directly refer to the Context object with the same name, a class of the Context object needs to be additionally introduced, a set packet name is added at a header file, and a Context in a replacement rule is changed into a method for acquiring the Context object, so that the hard-code replacement is automatically completed in the process of editing a project file.
It should be noted that the embodiments of the present invention include, but are not limited to, the above examples, and it is understood that, under the guidance of the idea of the present invention, those skilled in the art may also set the embodiments according to actual needs, and the present invention is not limited to these.
In the embodiment of the invention, in the process of editing a project file, after a developer finishes editing, a project source code of the project file and a file format corresponding to the project source code can be acquired, then an initial hard code is extracted from the project source code based on the file format, target identification information corresponding to the initial hard code and a project source code position in the project source code are acquired, then, on one hand, a mapping relation between the initial hard code and the target identification information can be written in a preset resource file according to the project source code position to realize updating of the resource file and ensure the validity of the resource file, on the other hand, the initial hard code of the initial project file can be updated according to preset replacement information and target identification information to generate a target project file, so that the hard code in the project file can be replaced in the process of project development, the method reduces additional operation in the development process, improves the efficiency of hard code replacement, does not need to interrupt hard code replacement in the editing process, and enhances the continuity of editing source codes.
It should be noted that, for simplicity of description, the method embodiments are described as a series of acts or combination of acts, but those skilled in the art will recognize that the present invention is not limited by the illustrated order of acts, as some steps may occur in other orders or concurrently in accordance with the embodiments of the present invention. Further, those skilled in the art will appreciate that the embodiments described in the specification are presently preferred and that no particular act is required to implement the invention.
Referring to fig. 2, a block diagram of a processing apparatus for a project file provided in the embodiment of the present invention is shown, and specifically, the processing apparatus may include the following modules:
a project source code obtaining module 201, configured to respond to end of an editing operation on an initial project file, and obtain a project source code of the initial project file and a file format corresponding to the project source code;
a hard code information extraction module 202, configured to extract an initial hard code from the project source code based on the file format, and obtain target identification information corresponding to the initial hard code and a project source code position of the initial hard code in the project source code;
the resource file processing module 203 is configured to write a mapping relationship between the initial hard code and the target identification information in a preset initial resource file according to the project source code position, so as to obtain a target resource file;
and the project file generation module 204 is configured to update the initial hard code according to preset replacement information and the target identification information, and generate a target project file.
In an optional embodiment of the present invention, the hard-coded information extraction module 202 includes:
the source code file extraction submodule is used for extracting a source code file in a target file format from the project source codes;
the extraction information acquisition submodule is used for acquiring extraction information matched with the target file format;
and the initial hard code extraction submodule is used for extracting initial hard codes from the source code file by adopting the extraction information and the target file format.
In an optional embodiment of the present invention, the extraction information includes a regular expression, and the initial hard-coded extraction sub-module is specifically configured to:
traversing the source code file, and extracting source codes meeting the regular expression as initial hard codes corresponding to the source code file;
the source code files at least comprise one of Java files, Kotlin files and Xml files, and different source code files correspond to different regular expressions.
In an optional embodiment of the present invention, the resource file processing module 203 includes:
an initial resource file obtaining sub-module, configured to obtain an initial resource file matched with the initial project file;
and the target resource file acquisition submodule is used for writing the mapping relation between the initial hard code and the target identification information corresponding to the initial hard code in the initial resource file by adopting the project source code position to acquire the target resource file.
In an optional embodiment of the present invention, the target resource file obtaining sub-module is specifically configured to:
searching preset identification information from the resource file by adopting the project source code position;
comparing the preset identification information with the target identification information, and judging whether preset identification information with the same name as the target identification information exists in the initial resource file;
if preset identification information which is the same as the target identification information exists in the initial resource file, acquiring a preset hard code corresponding to the preset identification information;
and if the preset hard code corresponding to the preset identification information is different from the initial hard code corresponding to the target identification information, writing the mapping relation between the initial hard code and the target identification information corresponding to the initial hard code.
In an optional embodiment of the present invention, the target resource file obtaining sub-module is specifically configured to:
writing the mapping relation between the initial hard code and the target identification information corresponding to the initial hard code into the initial resource file;
adding identification information to the target identification information to distinguish the target identification information from the preset identification information;
and returning to the step of judging whether preset identification information with the same name as the target identification information exists in the initial resource file or not until the writing of the mapping relation between the initial hard code and the target identification information corresponding to the initial hard code is completed.
In an optional embodiment of the present invention, the target resource file obtaining sub-module is specifically configured to:
if the initial hard code has a specific character, converting the specific character into an escape character, and updating the initial hard code;
and writing the mapping relation between the converted initial hard code and the target identification information in the initial resource file.
In an optional embodiment of the present invention, the project file generating module 204 includes:
a replacement information acquisition sub-module for acquiring replacement information for the initial hard code;
a target source code generating submodule, configured to generate a target source code for the initial hard coding by using the replacement information and the target identification information;
and the project file generation submodule is used for replacing the initial hard code in the initial project file with a corresponding target source code to generate a target project file.
For the device embodiment, since it is basically similar to the method embodiment, the description is simple, and for the relevant points, refer to the partial description of the method embodiment.
In addition, an electronic device is further provided in the embodiments of the present invention, as shown in fig. 3, and includes a processor 301, a communication interface 302, a memory 303, and a communication bus 304, where the processor 301, the communication interface 302, and the memory 303 complete mutual communication through the communication bus 304,
a memory 303 for storing a computer program;
the processor 301, when executing the program stored in the memory 303, implements the following steps:
responding to the end of the editing operation aiming at the initial project file, and acquiring a project source code of the initial project file and a file format corresponding to the project source code;
based on the file format, extracting an initial hard code from the project source code, and acquiring target identification information corresponding to the initial hard code and a project source code position of the initial hard code in the project source code;
writing a mapping relation between the initial hard code and the target identification information in a preset initial resource file according to the position of the project source code to obtain a target resource file;
and updating the initial hard code according to preset replacement information and the target identification information to generate a target project file.
In an optional embodiment of the present invention, the extracting the initial hard code from the project source code based on the file format comprises:
extracting a source code file in a target file format from the project source codes;
acquiring extraction information matched with the target file format;
and extracting initial hard codes from the source code file by adopting the extraction information and the target file format.
In an optional embodiment of the present invention, the extracting information includes a regular expression, and the extracting initial hard code from the source code file by using the extracting information and the target file format includes:
traversing the source code file, and extracting source codes meeting the regular expression as initial hard codes corresponding to the source code file;
the source code files at least comprise one of Java files, Kotlin files and Xml files, and different source code files correspond to different regular expressions.
In an optional embodiment of the present invention, the writing, according to the source code position of the project, a mapping relationship between the initial hard code and the target identification information in a preset initial resource file to obtain a target resource file includes:
acquiring an initial resource file matched with the initial project file;
and writing the mapping relation between the initial hard code and the target identification information corresponding to the initial hard code in the initial resource file by adopting the position of the project source code to obtain a target resource file.
In an optional embodiment of the present invention, the writing, by using the source code position of the project, a mapping relationship between the initial hard code and target identification information corresponding to the initial hard code in the initial resource file to obtain a target resource file includes:
searching preset identification information from the resource file by adopting the project source code position;
comparing the preset identification information with the target identification information, and judging whether preset identification information with the same name as the target identification information exists in the initial resource file;
if preset identification information which is the same as the target identification information exists in the initial resource file, acquiring a preset hard code corresponding to the preset identification information;
and if the preset hard code corresponding to the preset identification information is different from the initial hard code corresponding to the target identification information, writing the mapping relation between the initial hard code and the target identification information corresponding to the initial hard code to obtain a target resource file.
In an optional embodiment of the present invention, writing a mapping relationship between the initial hard code and target identification information corresponding to the initial hard code includes:
writing the mapping relation between the initial hard code and the target identification information corresponding to the initial hard code into the initial resource file;
adding identification information to the target identification information to distinguish the target identification information from the preset identification information;
and returning to the step of judging whether preset identification information with the same name as the target identification information exists in the initial resource file or not until the writing of the mapping relation between the initial hard code and the target identification information corresponding to the initial hard code is completed.
In an optional embodiment of the present invention, the writing, into the initial resource file, a mapping relationship between the initial hard code and target identification information corresponding to the initial hard code includes:
if the initial hard code has a specific character, converting the specific character into an escape character, and updating the initial hard code;
and writing the mapping relation between the converted initial hard code and the target identification information in the initial resource file.
In an optional embodiment of the present invention, the updating the initial hard code according to preset replacement information and the target identification information to generate a target project file includes:
obtaining replacement information for the initial hard-coding;
generating a target source code for the initial hard coding by adopting the replacement information and the target identification information;
and replacing the initial hard code in the initial project file with a corresponding target source code to generate a target project file.
The communication bus mentioned in the above terminal may be a Peripheral Component Interconnect (PCI) bus, an Extended Industry Standard Architecture (EISA) bus, or the like. The communication bus may be divided into an address bus, a data bus, a control bus, etc. For ease of illustration, only one thick line is shown, but this does not mean that there is only one bus or one type of bus.
The communication interface is used for communication between the terminal and other equipment.
The Memory may include a Random Access Memory (RAM) or a non-volatile Memory (non-volatile Memory), such as at least one disk Memory. Optionally, the memory may also be at least one memory device located remotely from the processor.
The Processor may be a general-purpose Processor, and includes a Central Processing Unit (CPU), a Network Processor (NP), and the like; the Integrated Circuit may also be a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA) or other Programmable logic device, a discrete Gate or transistor logic device, or a discrete hardware component.
In yet another embodiment provided by the present invention, as shown in fig. 4, there is further provided a computer-readable storage medium 401, which stores instructions that, when run on a computer, cause the computer to execute the interaction method of the game described in the above embodiment.
In yet another embodiment provided by the present invention, there is also provided a computer program product containing instructions which, when run on a computer, cause the computer to perform the interaction method of the game described in the above embodiment.
In the above embodiments, the implementation may be wholly or partially realized by software, hardware, firmware, or any combination thereof. When implemented in software, may be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When loaded and executed on a computer, cause the processes or functions described in accordance with the embodiments of the invention to occur, in whole or in part. The computer may be a general purpose computer, a special purpose computer, a network of computers, or other programmable device. The computer instructions may be stored in a computer readable storage medium or transmitted from one computer readable storage medium to another, for example, from one website site, computer, server, or data center to another website site, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, Digital Subscriber Line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.). The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device, such as a server, a data center, etc., that incorporates one or more of the available media. The usable medium may be a magnetic medium (e.g., floppy Disk, hard Disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., Solid State Disk (SSD)), among others.
It is noted that, herein, relational terms such as first and second, and the like may be used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. Also, the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising an … …" does not exclude the presence of other identical elements in a process, method, article, or apparatus that comprises the element.
All the embodiments in the present specification are described in a related manner, and the same and similar parts among the embodiments may be referred to each other, and each embodiment focuses on the differences from the other embodiments. In particular, for the system embodiment, since it is substantially similar to the method embodiment, the description is simple, and for the relevant points, reference may be made to the partial description of the method embodiment.
The above description is only for the preferred embodiment of the present invention, and is not intended to limit the scope of the present invention. Any modification, equivalent replacement, or improvement made within the spirit and principle of the present invention shall fall within the protection scope of the present invention.