fix:添加ish修正。
This commit is contained in:
parent
ce813baf04
commit
715c9155bf
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
@ -88,6 +88,7 @@
|
||||
"xlocmon": "cpp",
|
||||
"xloctime": "cpp",
|
||||
"xtree": "cpp",
|
||||
"deque": "cpp"
|
||||
"deque": "cpp",
|
||||
"array": "cpp"
|
||||
}
|
||||
}
|
@ -6,14 +6,19 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
if (MSVC)
|
||||
add_compile_options(/source-charset:utf-8)
|
||||
add_definitions(-DSTRCODE_GBK)
|
||||
add_definitions(-DBINARY_GBK)
|
||||
endif()
|
||||
|
||||
if(DEFINED IOS_ISH)
|
||||
add_definitions(-DIOS_ISH)
|
||||
add_definitions(-DMFLUSH_STDOUT)
|
||||
endif()
|
||||
|
||||
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND CMAKE_SYSTEM_NAME MATCHES "Windows")
|
||||
MESSAGE(STATUS "Add MinGW Param.")
|
||||
add_compile_options(-finput-charset=utf-8)
|
||||
add_compile_options(-fexec-charset=gbk)
|
||||
add_definitions(-DSTRCODE_GBK)
|
||||
add_definitions(-DBINARY_GBK)
|
||||
endif()
|
||||
|
||||
set(CMAKE_DEBUG_POSTFIX "d")
|
||||
@ -26,10 +31,12 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin/${CMAKE_BUILD_TYPE}
|
||||
add_library(filecomplete STATIC filecomplete.h filecomplete.cpp)
|
||||
target_include_directories(filecomplete PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
add_executable(key_value key_value.cxx)
|
||||
|
||||
if(DEFINED GEN_EXAMPLE)
|
||||
message(STATUS "USE TEST")
|
||||
add_executable(example main.cpp)
|
||||
target_link_libraries(example PRIVATE filecomplete)
|
||||
endif()
|
||||
endif()
|
||||
if(DEFINED GEN_KEYVALUE)
|
||||
message(STATUS "USE GEN_KEYVALUE")
|
||||
add_executable(key_value key_value.cxx)
|
||||
endif()
|
||||
|
@ -4,4 +4,9 @@
|
||||
|
||||
`tab`键补全仅命中唯一项时可以直接补全,所以需要配合补全提示,两者配合能达到一个基本够用的状态(本项目达到此目标即结束,不开发更复杂的补全和提示)。
|
||||
|
||||
本项目修改自 [https://github.com/DieTime/cli-autocomplete](https://github.com/DieTime/cli-autocomplete) 。
|
||||
本项目修改自 [https://github.com/DieTime/cli-autocomplete](https://github.com/DieTime/cli-autocomplete) 。
|
||||
|
||||
# 编译
|
||||
|
||||
- `iSh`的`enter`键位是与`win`相同,需要定义`IOS_ISH`宏。
|
||||
- 部分终端,需要每个字符添删都主动调用`fflush`,如有需要定义`MFLUSH_STDOUT`宏。
|
@ -60,7 +60,11 @@ namespace fs = std::filesystem;
|
||||
#define DEFAULT_PREDICT_COLOR 8
|
||||
#define DEFAULT_MAIN_COLOR 7
|
||||
#elif defined(OS_UNIX)
|
||||
#ifdef IOS_ISH
|
||||
#define ENTER 13
|
||||
#else
|
||||
#define ENTER 10
|
||||
#endif
|
||||
#define BACKSPACE 127
|
||||
#define LEFT 68
|
||||
#define RIGHT 67
|
||||
@ -231,7 +235,7 @@ size_t get_u8_len(unsigned char ch)
|
||||
|
||||
void supply(std::vector<char>& wch, char ch)
|
||||
{
|
||||
#if defined(STRCODE_GBK)
|
||||
#if defined(BINARY_GBK)
|
||||
wch.push_back(ch);
|
||||
if (ch >= 0 && ch < 128) {
|
||||
return;
|
||||
@ -437,8 +441,8 @@ char* fc_readline()
|
||||
}
|
||||
// Move cursor
|
||||
size_t cur_pos{};
|
||||
#if defined(STRCODE_GBK)
|
||||
for (int i = 0; i < buf.size() && i < wo; ++i) {
|
||||
#if defined(BINARY_GBK)
|
||||
for (size_t i = 0; i < buf.size() && i < wo; ++i) {
|
||||
cur_pos += buf[i].size();
|
||||
}
|
||||
#else
|
||||
@ -485,7 +489,7 @@ char* fc_readline()
|
||||
temp.push_back(b);
|
||||
++i;
|
||||
} else {
|
||||
#if defined(STRCODE_GBK)
|
||||
#if defined(BINARY_GBK)
|
||||
size_t length = 2;
|
||||
#else
|
||||
size_t length = get_u8_len(curch);
|
||||
@ -638,5 +642,8 @@ void color_print(const char* text, const COLOR_TYPE color)
|
||||
}
|
||||
// Resets the text to default color
|
||||
printf("\033[0m");
|
||||
#if defined(MFLUSH_STDOUT)
|
||||
fflush(stdout);
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
@ -2,8 +2,8 @@
|
||||
#define FILE_COMPLETE_H
|
||||
|
||||
/* ***************************************************
|
||||
如果编译的结果的【执行】环境为GBK, 请手动定义宏
|
||||
STRCODE_GBK
|
||||
如果编译的结果的【执行】环境为GBK, 请手动定义宏
|
||||
BINARY_GBK
|
||||
否则默认是 UTF-8 编码。
|
||||
******************************************************
|
||||
添加截止符号,提示路径时,以此截断,比如当前输入为:
|
||||
|
Loading…
x
Reference in New Issue
Block a user