- 插件输入框的宽度太固定,当输入内容较多时,可用空间不足
- 输入框高度限制较小,无法显示大量文本内容
- 位置:
.message-input-container - 变更:
- 左右padding从
12px减少到8px - 增加了
4px的可用输入空间
- 左右padding从
- 添加
width: 100%;确保容器占据全宽 - 添加
box-sizing: border-box;确保padding包含在宽度计算内
- 位置:
.lexical-content-editable - 变更:
- padding从
12px 16px减少到10px 12px - 垂直方向减少
2px,水平方向减少4px - 总共增加了约
8px的水平编辑空间
- padding从
- 添加
word-break: break-word;确保长单词也能正确换行 - 避免因为单词过长导致的水平溢出
- 位置:
.lexical-placeholder - 变更:
top: 12px→top: 10pxleft: 16px→left: 12px- 与新的padding保持一致
- 位置:
.messages-container - 变更:
- 左右padding从
8px减少到6px - 为整个聊天界面提供更多宽度
- 左右padding从
- 位置:
MAX_HEIGHT常量 - 变更:
- 从
400px增加到600px - 提供
50%更多的垂直显示空间 - 支持显示更长的文本内容
- 从
- 位置:
.lexical-content-editable::-webkit-scrollbar - 新增:
- 8px宽度的滚动条
- 圆角设计,更加美观
- 与输入框背景融合的边框效果
- 悬停和激活状态的视觉反馈
- 输入框容器左右各增加
4px(总计8px) - 编辑器内部左右各增加
4px(总计8px) - 消息容器左右各增加
2px(总计4px) - 总计增加约
20px的可用编辑宽度
- 最大高度从
400px增加到600px - 增加
200px(50%) 的显示空间 - 可以显示约
25行文本(按24px行高计算)
- ✅ 更大的可编辑区域,能够显示更多内容
- ✅ 支持输入和显示长篇文本(如您截图中的内容)
- ✅ 更好的视觉平衡,减少不必要的留白
- ✅ 长文本和长单词的换行更加智能
- ✅ 输入框高度自动扩展,无需手动调整
- ✅ 美观的滚动条,提升视觉体验
- ✅ 保持了良好的视觉层次和间距
/* 容器占据全宽 */
width: 100%;
max-width: 100%;
/* 确保padding计算正确 */
box-sizing: border-box;
/* 智能换行处理 */
white-space: pre-wrap; /* 保留换行和空格 */
word-wrap: break-word; /* 长词自动换行 */
word-break: break-word; /* 确保长单词也能换行 */
/* 滚动控制 */
overflow-x: hidden !important;
overflow-y: auto !important;
/* 美化滚动条 */
.lexical-content-editable::-webkit-scrollbar {
width: 8px;
border-radius: 4px;
}// 高度自动扩展配置
const MIN_HEIGHT = 140; // 最小高度(约3行)
const MAX_HEIGHT = 600; // 最大高度(约25行)
const LINE_HEIGHT = 24; // 单行高度
// 输入框会根据内容自动在MIN_HEIGHT和MAX_HEIGHT之间调整- 检测内容高度: 监听编辑器的
scrollHeight - 计算所需高度:
scrollHeight + padding + toolbar - 应用限制: 确保在
MIN_HEIGHT和MAX_HEIGHT之间 - 平滑过渡: 使用CSS
transition实现动画效果
- ✅ 支持所有现代浏览器
- ✅ 在不同窗口尺寸下自适应
- ✅ 编辑模式和撰写模式均受益
- ✅ 支持超长文本内容显示
- 最大宽度受限,左右padding过大
- 最大高度400px,约16-17行
- 滚动条样式简单
- 增加20px可用宽度
- 最大高度600px,约25行(增加50%显示空间)
- 美观的滚动条设计
- 可以像截图中那样显示大量文本内容
packages/vscode-ui-plugin/webview/src/components/MessageInput/MessageInput.csspackages/vscode-ui-plugin/webview/src/components/MessageInput.tsxpackages/vscode-ui-plugin/webview/src/components/ChatInterface.css
2025-10-23