Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit8991d8a

Browse files
committed
Pre-release 0.44.149
1 parentd76757f commit8991d8a

File tree

90 files changed

+4342
-850
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

90 files changed

+4342
-850
lines changed

‎Copilot for Xcode.xcodeproj/project.pbxproj‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
5EC511E42C90CE9800632BAB /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C8189B1D2938973000C9DCDA /* Assets.xcassets */; };
1919
5EC511E52C90CFD600632BAB /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C861E6142994F6080056CB02 /* Assets.xcassets */; };
2020
5EC511E62C90CFD700632BAB /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C861E6142994F6080056CB02 /* Assets.xcassets */; };
21+
7E6CEC912EAB6774005F2076 /* RejectNESSuggestionCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E6CEC902EAB6774005F2076 /* RejectNESSuggestionCommand.swift */; };
22+
7E856FF72E9F6D24005751CB /* AcceptNESSuggestionCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E856FF62E9F6D1D005751CB /* AcceptNESSuggestionCommand.swift */; };
2123
C8009BFF2941C551007AA7E8 /* ToggleRealtimeSuggestionsCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8009BFE2941C551007AA7E8 /* ToggleRealtimeSuggestionsCommand.swift */; };
2224
C8009C032941C576007AA7E8 /* SyncTextSettingsCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8009C022941C576007AA7E8 /* SyncTextSettingsCommand.swift */; };
2325
C800DBB1294C624D00B04CAC /* PrefetchSuggestionsCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = C800DBB0294C624D00B04CAC /* PrefetchSuggestionsCommand.swift */; };
@@ -193,6 +195,8 @@
193195
3E5DB74F2D6B88EE00418952 /* ReleaseNotes.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = ReleaseNotes.md; sourceTree = "<group>"; };
194196
424ACA202CA4697200FA20F2 /* Credits.rtf */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; path = Credits.rtf; sourceTree = "<group>"; };
195197
427C63272C6E868B000E557C /* OpenSettingsCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenSettingsCommand.swift; sourceTree = "<group>"; };
198+
7E6CEC902EAB6774005F2076 /* RejectNESSuggestionCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RejectNESSuggestionCommand.swift; sourceTree = "<group>"; };
199+
7E856FF62E9F6D1D005751CB /* AcceptNESSuggestionCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AcceptNESSuggestionCommand.swift; sourceTree = "<group>"; };
196200
C8009BFE2941C551007AA7E8 /* ToggleRealtimeSuggestionsCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToggleRealtimeSuggestionsCommand.swift; sourceTree = "<group>"; };
197201
C8009C022941C576007AA7E8 /* SyncTextSettingsCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SyncTextSettingsCommand.swift; sourceTree = "<group>"; };
198202
C800DBB0294C624D00B04CAC /* PrefetchSuggestionsCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrefetchSuggestionsCommand.swift; sourceTree = "<group>"; };
@@ -330,8 +334,10 @@
330334
C8520300293C4D9000460097 /* Helpers.swift */,
331335
C81458952939EFDC00135263 /* GetSuggestionsCommand.swift */,
332336
C87B03A4293B261200C77EAE /* AcceptSuggestionCommand.swift */,
337+
7E856FF62E9F6D1D005751CB /* AcceptNESSuggestionCommand.swift */,
333338
C80FFB952A95F58200704A25 /* AcceptPromptToCodeCommand.swift */,
334339
C87B03A6293B261900C77EAE /* RejectSuggestionCommand.swift */,
340+
7E6CEC902EAB6774005F2076 /* RejectNESSuggestionCommand.swift */,
335341
C87B03A8293B262600C77EAE /* NextSuggestionCommand.swift */,
336342
C87B03AA293B262E00C77EAE /* PreviousSuggestionCommand.swift */,
337343
C8009BFE2941C551007AA7E8 /* ToggleRealtimeSuggestionsCommand.swift */,
@@ -734,12 +740,14 @@
734740
C8758E7029F04BFF00D29C1C /* CustomCommand.swift in Sources */,
735741
C8758E7229F04CF100D29C1C /* SeparatorCommand.swift in Sources */,
736742
C861A6A329E5503F005C41A3 /* PromptToCodeCommand.swift in Sources */,
743+
7E6CEC912EAB6774005F2076 /* RejectNESSuggestionCommand.swift in Sources */,
737744
C8520301293C4D9000460097 /* Helpers.swift in Sources */,
738745
C8009BFF2941C551007AA7E8 /* ToggleRealtimeSuggestionsCommand.swift in Sources */,
739746
C80FFB962A95F58200704A25 /* AcceptPromptToCodeCommand.swift in Sources */,
740747
427C63282C6E868B000E557C /* OpenSettingsCommand.swift in Sources */,
741748
C87B03A5293B261200C77EAE /* AcceptSuggestionCommand.swift in Sources */,
742749
C87B03A9293B262600C77EAE /* NextSuggestionCommand.swift in Sources */,
750+
7E856FF72E9F6D24005751CB /* AcceptNESSuggestionCommand.swift in Sources */,
743751
C87B03AB293B262E00C77EAE /* PreviousSuggestionCommand.swift in Sources */,
744752
C87B03A7293B261900C77EAE /* RejectSuggestionCommand.swift in Sources */,
745753
C8009C032941C576007AA7E8 /* SyncTextSettingsCommand.swift in Sources */,

‎Copilot for Xcode/App.swift‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,17 @@ struct CopilotForXcodeApp: App {
213213
hostAppStore.send(.setActiveTab(.byok))
214214
}
215215
}
216+
217+
DistributedNotificationCenter.default().addObserver(
218+
forName:.openAdvancedSettingsWindowRequest,
219+
object:nil,
220+
queue:.main
221+
){ _in
222+
DispatchQueue.main.async{
223+
activateAndOpenSettings()
224+
hostAppStore.send(.setActiveTab(.advanced))
225+
}
226+
}
216227
}
217228

218229
varbody:someScene{

‎Core/Package.swift‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,7 @@ let package = Package(
264264
.target(
265265
name:"KeyBindingManager",
266266
dependencies:[
267+
"SuggestionWidget",
267268
.product(name:"Workspace",package:"Tool"),
268269
.product(name:"Preferences",package:"Tool"),
269270
.product(name:"Logger",package:"Tool"),

‎Core/Sources/ChatService/ToolCalls/InsertEditIntoFileTool.swift‎

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -194,8 +194,6 @@ public class InsertEditIntoFileTool: ICopilotTool {
194194
)
195195

196196
Task{
197-
// Force to notify the CLS about the new change within the document before edit_file completion.
198-
try?await contextProvider.notifyChangeTextDocument(fileURL: fileURL, content: newContent, version:0)
199197
iflet completion= completion{completion(newContent,nil)}
200198
}
201199
}catch{

‎Core/Sources/ConversationTab/ChatPanel.swift‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ struct ChatPanelMessages: View {
151151
Group{
152152

153153
ChatHistory(chat: chat)
154+
.fixedSize(horizontal:false, vertical:true)
154155

155156
ExtraSpacingInResponding(chat: chat)
156157

@@ -302,11 +303,13 @@ struct ChatPanelMessages: View {
302303

303304
structExtraSpacingInResponding:View{
304305
letchat:StoreOf<Chat>
306+
307+
@AppStorage(\.fontScale)privatevarfontScale:Double
305308

306309
varbody:someView{
307310
WithPerceptionTracking{
308311
if chat.isReceivingMessage{
309-
Spacer(minLength:12)
312+
Spacer(minLength:12* fontScale)
310313
}
311314
}
312315
}

‎Core/Sources/ConversationTab/CodeBlockHighlighter.swift‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,13 +86,13 @@ struct AsyncCodeBlockView: View {
8686
Group{
8787
iflet highlighted= storage.highlighted{
8888
Text(highlighted)
89-
.frame(maxWidth:.infinity, alignment:.leading)
9089
}else{
9190
Text(content).font(.init(font))
92-
.frame(maxWidth:.infinity, alignment:.leading)
9391
}
9492
}
95-
.frame(maxWidth:.infinity)
93+
.lineLimit(nil)
94+
.fixedSize(horizontal:false, vertical:true)
95+
.frame(maxWidth:.infinity, alignment:.leading)
9696
.onAppear{
9797
storage.highlight(debounce:false, for:self)
9898
}

‎Core/Sources/ConversationTab/TerminalViews/RunInTerminalToolView.swift‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,10 +121,12 @@ struct RunInTerminalToolView: View {
121121
.scaledFrame(width:16, height:16)
122122

123123
Text(command!)
124+
.lineLimit(nil)
124125
.textSelection(.enabled)
125126
.scaledFont(size: chatFontSize, design:.monospaced)
126127
.scaledPadding(8)
127128
.frame(maxWidth:.infinity, alignment:.leading)
129+
.fixedSize(horizontal:false, vertical:true)
128130
.foregroundStyle(codeForegroundColor)
129131
.background(codeBackgroundColor)
130132
.clipShape(RoundedRectangle(cornerRadius:6))
@@ -141,7 +143,7 @@ struct RunInTerminalToolView: View {
141143
terminalSession: terminalSession,
142144
onTerminalInput: terminalSession.handleTerminalInput
143145
)
144-
.frame(minHeight:200, maxHeight:400)
146+
.scaledFrame(minHeight:200, maxHeight:400)
145147
}elseif tool.status==.waitForConfirmation{
146148
ThemedMarkdownText(text: explanation??"", chat: chat)
147149
.frame(maxWidth:.infinity, alignment:.leading)

‎Core/Sources/ConversationTab/Views/BotMessage.swift‎

Lines changed: 80 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -140,99 +140,101 @@ struct BotMessage: View {
140140
}
141141

142142
varbody:someView{
143-
HStack{
144-
VStack(alignment:.leading, spacing:8){
145-
if !references.isEmpty{
146-
WithPerceptionTracking{
147-
ReferenceButton(
148-
references: references,
149-
chat: chat,
150-
isReferencesPresented: $isReferencesPresented
151-
)
143+
WithPerceptionTracking{
144+
HStack{
145+
VStack(alignment:.leading, spacing:8){
146+
if !references.isEmpty{
147+
WithPerceptionTracking{
148+
ReferenceButton(
149+
references: references,
150+
chat: chat,
151+
isReferencesPresented: $isReferencesPresented
152+
)
153+
}
152154
}
153-
}
154-
155-
// progress step
156-
if steps.count>0{
157-
ProgressStep(steps: steps)
155+
156+
// progress step
157+
if steps.count>0{
158+
ProgressStep(steps: steps)
158159

159-
}
160-
161-
if !panelMessages.isEmpty{
162-
WithPerceptionTracking{
163-
ForEach(panelMessages.indices, id: \.self){ indexin
164-
FunctionMessage(text:panelMessages[index].message, chat: chat)
160+
}
161+
162+
if !panelMessages.isEmpty{
163+
WithPerceptionTracking{
164+
ForEach(panelMessages.indices, id: \.self){ indexin
165+
FunctionMessage(text:panelMessages[index].message, chat: chat)
166+
}
165167
}
166168
}
167-
}
168-
169-
if editAgentRounds.count>0{
170-
ProgressAgentRound(rounds: editAgentRounds, chat: chat)
171-
}
172-
173-
if !text.isEmpty{
174-
Group{
175-
ThemedMarkdownText(text: text, chat: chat)
169+
170+
if editAgentRounds.count>0{
171+
ProgressAgentRound(rounds: editAgentRounds, chat: chat)
176172
}
177-
.scaledPadding(.leading,2)
178-
.scaledPadding(.vertical,4)
179-
}
180-
181-
iflet codeReviewRound= codeReviewRound{
182-
CodeReviewMainView(
183-
store: chat, round: codeReviewRound
184-
)
185-
.frame(maxWidth:.infinity)
186-
}
187-
188-
if !errorMessages.isEmpty{
189-
VStack(spacing:4){
190-
ForEach(errorMessages.indices, id: \.self){ indexin
191-
iflet attributedString=try?AttributedString(markdown:errorMessages[index]){
192-
NotificationBanner(style:.warning){
193-
Text(attributedString)
173+
174+
if !text.isEmpty{
175+
Group{
176+
ThemedMarkdownText(text: text, chat: chat)
177+
}
178+
.scaledPadding(.leading,2)
179+
.scaledPadding(.vertical,4)
180+
}
181+
182+
iflet codeReviewRound= codeReviewRound{
183+
CodeReviewMainView(
184+
store: chat, round: codeReviewRound
185+
)
186+
.frame(maxWidth:.infinity)
187+
}
188+
189+
if !errorMessages.isEmpty{
190+
VStack(spacing:4){
191+
ForEach(errorMessages.indices, id: \.self){ indexin
192+
iflet attributedString=try?AttributedString(markdown:errorMessages[index]){
193+
NotificationBanner(style:.warning){
194+
Text(attributedString)
195+
}
194196
}
195197
}
196198
}
199+
.scaledPadding(.vertical,4)
200+
}
201+
202+
HStack{
203+
ifshouldShowTurnStatus(){
204+
TurnStatusView(message: message)
205+
}
206+
207+
Spacer()
208+
209+
ResponseToolBar(id: id, chat: chat, text: text)
210+
.conditionalFontWeight(.medium)
211+
.opacity(shouldShowToolBar()?1:0)
212+
.scaledPadding(.trailing,-20)
197213
}
198-
.scaledPadding(.vertical,4)
199214
}
200-
201-
HStack{
202-
ifshouldShowTurnStatus(){
203-
TurnStatusView(message: message)
215+
.shadow(color:.black.opacity(0.05), radius:6)
216+
.contextMenu{
217+
Button("Copy"){
218+
NSPasteboard.general.clearContents()
219+
NSPasteboard.general.setString(text, forType:.string)
204220
}
221+
.scaledFont(.body)
205222

206-
Spacer()
223+
Button("Set as Extra System Prompt"){
224+
chat.send(.setAsExtraPromptButtonTapped(id))
225+
}
226+
.scaledFont(.body)
207227

208-
ResponseToolBar(id: id, chat: chat, text: text)
209-
.conditionalFontWeight(.medium)
210-
.opacity(shouldShowToolBar()?1:0)
211-
.scaledPadding(.trailing,-20)
212-
}
213-
}
214-
.shadow(color:.black.opacity(0.05), radius:6)
215-
.contextMenu{
216-
Button("Copy"){
217-
NSPasteboard.general.clearContents()
218-
NSPasteboard.general.setString(text, forType:.string)
219-
}
220-
.scaledFont(.body)
221-
222-
Button("Set as Extra System Prompt"){
223-
chat.send(.setAsExtraPromptButtonTapped(id))
228+
Divider()
229+
230+
Button("Delete"){
231+
chat.send(.deleteMessageButtonTapped(id))
232+
}
233+
.scaledFont(.body)
224234
}
225-
.scaledFont(.body)
226-
227-
Divider()
228-
229-
Button("Delete"){
230-
chat.send(.deleteMessageButtonTapped(id))
235+
.onHover{
236+
isHovering= $0
231237
}
232-
.scaledFont(.body)
233-
}
234-
.onHover{
235-
isHovering= $0
236238
}
237239
}
238240
}

‎Core/Sources/ConversationTab/Views/ChatPanelInputArea/InputAreaTextEditor.swift‎

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -79,12 +79,9 @@ struct InputAreaTextEditor: View {
7979
returnfalse
8080
}
8181

82-
vartypedMessage:String{
83-
chat.state.getChatContext(of: editorMode).typedMessage
84-
}
85-
8682
varbody:someView{
8783
WithPerceptionTracking{
84+
lettypedMessage= chat.state.getChatContext(of: editorMode).typedMessage
8885
VStack(spacing:0){
8986
chatContextView
9087

‎Core/Sources/HostApp/AdvancedSettings/SuggestionSection.swift‎

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ struct SuggestionSection: View {
44
@AppStorage(\.realtimeSuggestionToggle)varrealtimeSuggestionToggle
55
@AppStorage(\.suggestionFeatureEnabledProjectList)varsuggestionFeatureEnabledProjectList
66
@AppStorage(\.acceptSuggestionWithTab)varacceptSuggestionWithTab
7+
@AppStorage(\.realtimeNESToggle)varrealtimeNESToggle
78
@StatevarisSuggestionFeatureDisabledLanguageListViewOpen=false
89
@StateprivatevarshouldPresentTurnoffSheet=false
910

@@ -23,10 +24,15 @@ struct SuggestionSection: View {
2324
varbody:someView{
2425
SettingsSection(title:"Suggestion Settings"){
2526
SettingsToggle(
26-
title:"Request suggestions while typing",
27+
title:"Enable completions while typing",
2728
isOn: realtimeSuggestionBinding
2829
)
2930
Divider()
31+
SettingsToggle(
32+
title:"Enable Next Edit Suggestions (NES)",
33+
isOn: $realtimeNESToggle
34+
)
35+
Divider()
3036
SettingsToggle(
3137
title:"Accept suggestions with Tab",
3238
isOn: $acceptSuggestionWithTab

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp