Skip to content

Commit 2c25403

Browse files
author
Peter Rosconi
committed
* Improved intellisense experience
* More consistent **ctrl+space** behavior * **#r** intellisense * **#load** intellisense
1 parent 5a36462 commit 2c25403

File tree

13 files changed

+233
-46
lines changed

13 files changed

+233
-46
lines changed

IfSharp.sln

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "img", "img", "{7B100429-EB1
8080
docs\files\img\intellisense-1.png = docs\files\img\intellisense-1.png
8181
docs\files\img\intellisense-2.png = docs\files\img\intellisense-2.png
8282
docs\files\img\intellisense-3.png = docs\files\img\intellisense-3.png
83+
docs\files\img\intellisense-4.png = docs\files\img\intellisense-4.png
84+
docs\files\img\intellisense-5.png = docs\files\img\intellisense-5.png
8385
docs\files\img\logo.png = docs\files\img\logo.png
8486
docs\files\img\math-1.png = docs\files\img\math-1.png
8587
docs\files\img\toaster.png = docs\files\img\toaster.png

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,12 @@ See our [release repository](https://github.com/BayardRock/IfSharp/releases). Al
2828
![Intellisense Example #3 With Chart](https://raw.github.com/BayardRock/IfSharp/master/docs/files/img/intellisense-3.png "Intellisense Example #3 With Chart")
2929
***
3030

31+
![Intellisense Example #4 #r Directive](https://raw.github.com/BayardRock/IfSharp/master/docs/files/img/intellisense-4.png "Intellisense Example #3 #r Directive")
32+
***
33+
34+
![Intellisense Example #5 #load Directive](https://raw.github.com/BayardRock/IfSharp/master/docs/files/img/intellisense-5.png "Intellisense Example #load Directive")
35+
***
36+
3137
## Integrated NuGet
3238
![NuGet Example](https://raw.github.com/BayardRock/IfSharp/master/docs/files/img/NuGet-1.png "NuGet example")
3339

RELEASE_NOTES.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
### New in 2.0.2 Beta (Released 2014/10/08)
2+
* Improved intellisense experience
3+
* More consistent **ctrl+space** behavior
4+
* **#r** intellisense
5+
* **#load** intellisense
6+
17
### New in 2.0.1 Beta (Released 2014/06/02)
28
* Added gcAllowVeryLargeObjects to the app.config
39
* The `--install` command line argument no longer supported. File system is automatically copied if no command line arguments are supplied

docs/files/img/intellisense-4.png

9.4 KB
Loading

docs/files/img/intellisense-5.png

9.16 KB
Loading

ipython-profile/static/custom/custom.css

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,14 @@ th {
168168
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACO0lEQVR4Xo2SS0hUURiAv3PunWFMMinNiijG3BQ9wIykh6skU2xji2gTSFEY1EJyYWHLqEURBaY9wGVBBC3KMsIEGUmLGi1RRs0YnPH9Gu80cx+nWVhckgG/xVkc+D5+zvmFUgoAIQShx8cPOY7VqWwLlu8RIKREaB6E1CiobhUAfz0dF0vxeOWWwr3kHLiEYxlgG0jPOqxEjJFn9bzujl7GxYqALpwKX+52knPfiY/eB+klc0cdU59eYSTMwStNvS38h8SFx6v2+HL8WIs/ENpavOuPYhtzLIR6KGvoOQUspJ0g9Kik0LchC9BRZhjpycSTtYuJwBuCo7Hb0dlEH0DagPHbrMrO86OSU+AkEPoaJgPNLA5Nsm+br26w8WCdkBpC0xFSAgh3AF04lRl5m3DsaaSeAcDGI7XklSgUFkItoZCMtTYxHom15wMA/74x1Fys8k9fwIr9AnMRx7FIHSAEUtNQShENfCUaWXpXXNtdk/KG3BMgpCDS9hzHtlFWkq0nGzDnO5DKxDQMJnuC9Idmmk/cCN4Chle8QcH5riKAu+f8xVWl/gdCgqZJzJhFpCNAR99cffW9gRZgLN0efAYoK8y+6cvNRTCFHU8y9rGdzv756yn5ITCbZg9cRZ3SjM27MWd/Ev7wlqtPhsrP3hlodMnpA8NP95+RQqTkMOG2F1xrGal4GZh+D8yQBh0XSUvVeDUYD3ZN7Lz4rRzoBUyAVQW8OodtRy2k5GPLsotVBPKrvxQB9mplgD9z7vSpojdyCgAAAABJRU5ErkJggg==)
169169
}
170170

171+
.icon-glyph-1000 {
172+
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAASklEQVR42mNkgIKGhob/DAQAUA0juhgjsgH19fU4NTc2NmI1hCQDQPIgGtkQkg2AsWGGkOwF9DAh2gBsBo4aMGoAbQwgWjdCDyMAjqlwEfGZXsQAAAAASUVORK5CYII=);
173+
}
174+
175+
.icon-glyph-1001 {
176+
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAoklEQVR4XsXTPQ6CQBCG4Q8ksTAbrb2BB6CioLT0Cl7Bxmt4Bc9gZwmJieEChsKCUkMFFT9hCJspiAVxGRKeevPObDZrEREkbAg5AJDfTwS2UNvbyjsfMKC/dXcFHVD+DjoWvPAvtb9YDn5waFB/kA5USYjs8YGJOok5wJauZxZ4x5O9AiOSBaguhYGqmHmDJv3CXm9GB45l9LzCjD4//29sAVazOELv0oQIAAAAAElFTkSuQmCC);
177+
}
178+
171179
.cm-s-neat span.cm-comment { color: #008000; }
172180
.cm-s-neat span.cm-keyword { line-height: 1em; font-weight: bold; color: blue; }
173181
.cm-s-neat span.cm-string { color: #B21543; }

ipython-profile/static/custom/custom.js

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,9 +82,12 @@ $([IPython.events]).on('app_initialized.NotebookApp', function ()
8282

8383
intellisense.addDeclarationTrigger({ keyCode: 190 }); // `.`
8484
intellisense.addDeclarationTrigger({ keyCode: 32, ctrlKey: true, preventDefault: true, type: 'down' }); // `ctrl+space`
85+
intellisense.addDeclarationTrigger({ keyCode: 191 }); // `/`
86+
intellisense.addDeclarationTrigger({ keyCode: 220 }); // `\`
87+
intellisense.addDeclarationTrigger({ keyCode: 222 }); // `"`
88+
intellisense.addDeclarationTrigger({ keyCode: 222, shiftKey: true }); // `"`
8589
intellisense.addMethodsTrigger({ keyCode: 57, shiftKey: true }); // `(`
8690
intellisense.addMethodsTrigger({ keyCode: 48, shiftKey: true });// `)`
87-
intellisense.addMethodsTrigger({ keyCode: 8 }); // `backspace`
8891
intellisense.onMethod(function (item, position)
8992
{
9093

@@ -95,11 +98,32 @@ $([IPython.events]).on('app_initialized.NotebookApp', function ()
9598
var codes = cells.codes;
9699
var cursor = cells.selectedCell.code_mirror.doc.getCursor();
97100
var callbacks = { shell: {}, iopub: {} };
101+
var line = editor.getLine(cursor.line);
102+
var isSlash = item.keyCode === 191 || item.keyCode === 220;
103+
var isQuote = item.keyCode === 222;
104+
105+
var isLoadOrRef = line.indexOf('#load') === 0
106+
|| line.indexOf('#r') === 0;
107+
108+
var isStartLoadOrRef = line === '#load "'
109+
|| line === '#r "'
110+
|| line === '#load @"'
111+
|| line === '#r @"';
112+
113+
if (isSlash && !isLoadOrRef)
114+
{
115+
return;
116+
}
117+
if (isQuote && !isStartLoadOrRef)
118+
{
119+
return;
120+
}
98121

99122
// v2
100123
callbacks.shell.reply = function (msg)
101124
{
102125
intellisense.setDeclarations(msg.content.matches);
126+
intellisense.setStartColumnIndex(data.filter_start_index);
103127
};
104128

105129
callbacks.iopub.output = function (msg)
@@ -111,6 +135,7 @@ $([IPython.events]).on('app_initialized.NotebookApp', function ()
111135
callbacks.complete_reply = function (data)
112136
{
113137
intellisense.setDeclarations(data.matches);
138+
intellisense.setStartColumnIndex(data.filter_start_index);
114139
};
115140

116141
callbacks.output = function (msgType, content, metadata)

ipython-profile/static/custom/webintellisense-codemirror.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,17 @@ var CodeMirrorIntellisense = function (editor)
6262
{
6363
if (decls.isVisible())
6464
{
65+
// backspace
6566
if (evt.keyCode === 8)
6667
{
6768
decls.setFilter(getFilterText());
69+
70+
// hide if we go too far left
71+
var cursor = editor.getCursor();
72+
if (cursor.ch <= autoCompleteStart.columnIndex)
73+
{
74+
decls.setVisible(false);
75+
}
6876
}
6977
else
7078
{
@@ -223,7 +231,11 @@ var CodeMirrorIntellisense = function (editor)
223231
* @param {int} i - The index to set
224232
* @function setStartColumnIndex
225233
*/
226-
this.setStartColumnIndex = function (i) { autoCompleteStart.columnIndex = i; };
234+
this.setStartColumnIndex = function (i)
235+
{
236+
autoCompleteStart.columnIndex = i;
237+
decls.setFilter(getFilterText());
238+
};
227239

228240
/**
229241
* Gets the text after startColumnIndex but before caret offset.

ipython-profile/static/custom/webintellisense.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -765,9 +765,10 @@ var DeclarationsIntellisense = function ()
765765
}
766766

767767
var ret = [];
768+
var lowerFilter = filterText.toLowerCase();
768769
declarations.forEach(function (item)
769770
{
770-
if (filterMode(item, filterText))
771+
if (filterMode(item, lowerFilter))
771772
{
772773
ret.push(item);
773774
}

src/IfSharp.Kernel/AssemblyInfo.fs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ open System.Reflection
44
[<assembly: AssemblyTitleAttribute("IfSharp.Kernel")>]
55
[<assembly: AssemblyProductAttribute("IfSharp.Kernel")>]
66
[<assembly: AssemblyDescriptionAttribute("A short summary of your project.")>]
7-
[<assembly: AssemblyVersionAttribute("2.0")>]
8-
[<assembly: AssemblyFileVersionAttribute("2.0")>]
7+
[<assembly: AssemblyVersionAttribute("2.0.2")>]
8+
[<assembly: AssemblyFileVersionAttribute("2.0.2")>]
99
do ()
1010

1111
module internal AssemblyVersionInformation =
12-
let [<Literal>] Version = "2.0"
12+
let [<Literal>] Version = "2.0.2"

0 commit comments

Comments
 (0)