Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
node-sass
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
楚学文
node-sass
Commits
edead4ca
Commit
edead4ca
authored
May 31, 2012
by
Aaron Leung
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Figuring out inheritance for selector groups.
parent
a0657826
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
30 additions
and
6 deletions
+30
-6
eval_apply.cpp
eval_apply.cpp
+30
-6
No files found.
eval_apply.cpp
View file @
edead4ca
...
@@ -647,12 +647,32 @@ namespace Sass {
...
@@ -647,12 +647,32 @@ namespace Sass {
// Resolve selector extensions.
// Resolve selector extensions.
void
extend_selectors
(
vector
<
pair
<
Node
,
Node
>
>&
pending
,
Node_Factory
&
new_Node
)
void
extend_selectors
(
vector
<
pair
<
Node
,
Node
>
>&
pending
,
multimap
<
Node
,
Node
>
extensions
,
Node_Factory
&
new_Node
)
{
{
for
(
size_t
i
=
0
,
S
=
pending
.
size
();
i
<
S
;
++
i
)
{
for
(
size_t
i
=
0
,
S
=
pending
.
size
();
i
<
S
;
++
i
)
{
Node
extender
(
pending
[
i
].
second
[
2
]);
Node
extender
(
pending
[
i
].
second
[
2
]);
Node
ruleset_to_extend
(
pending
[
i
].
first
);
Node
ruleset_to_extend
(
pending
[
i
].
first
);
Node
selector_to_extend
(
ruleset_to_extend
[
2
]);
Node
selectors_to_extend
(
ruleset_to_extend
[
2
]);
// if (selectors_to_extend.type() != Node::selector_group) {
// Node ext(generate_extension(selectors_to_extend, extender, new_Node));
// ext.push_front(selectors_to_extend);
// ruleset_to_extend[2] = ext;
// }
// else {
// Node new_group(new_Node(Node::selector_group,
// selectors_to_extend.path(),
// selectors_to_extend.line(),
// selectors_to_extend.size()));
// for (size_t i = 0, S = selectors_to_extend.size(); i < S; ++i) {
// Node sel_i(selectors_to_extend[i]);
// if (extensions.count(sel_i)) {
// new_group << sel_i;
// Node ext(generate_extension(sel_i, extender, new_Node));
// new_group += ext;
// }
if
(
selector_to_extend
.
type
()
!=
Node
::
selector
)
{
if
(
selector_to_extend
.
type
()
!=
Node
::
selector
)
{
switch
(
extender
.
type
())
switch
(
extender
.
type
())
{
{
...
@@ -722,8 +742,9 @@ namespace Sass {
...
@@ -722,8 +742,9 @@ namespace Sass {
// Helper for generating selector extensions; called for each extendee in a
// Helper for generating selector extensions; called for each extendee in a
// selector group.
// selector group.
pair
<
Node
,
Node
>
generate_extension
(
Node
extendee
,
Node
extender
,
Node_Factory
&
new_Node
)
Node
generate_extension
(
Node
extendee
,
Node
extender
,
Node_Factory
&
new_Node
)
{
{
Node
new_group
(
new_Node
(
Node
::
selector_group
,
extendee
.
path
(),
extendee
.
line
(),
1
));
if
(
extendee
.
type
()
!=
Node
::
selector
)
{
if
(
extendee
.
type
()
!=
Node
::
selector
)
{
switch
(
extender
.
type
())
switch
(
extender
.
type
())
{
{
...
@@ -732,7 +753,8 @@ namespace Sass {
...
@@ -732,7 +753,8 @@ namespace Sass {
case
Node
:
:
simple_selector_sequence
:
case
Node
:
:
simple_selector_sequence
:
case
Node
:
:
selector
:
{
case
Node
:
:
selector
:
{
cerr
<<
"EXTENDING "
<<
extendee
.
to_string
()
<<
" WITH "
<<
extender
.
to_string
()
<<
endl
;
cerr
<<
"EXTENDING "
<<
extendee
.
to_string
()
<<
" WITH "
<<
extender
.
to_string
()
<<
endl
;
return
pair
<
Node
,
Node
>
(
extender
,
Node
());
new_group
<<
extender
;
return
new_group
;
}
break
;
}
break
;
default:
{
default:
{
// handle the other cases later
// handle the other cases later
...
@@ -750,7 +772,8 @@ namespace Sass {
...
@@ -750,7 +772,8 @@ namespace Sass {
new_ext
<<
extendee
[
i
];
new_ext
<<
extendee
[
i
];
}
}
new_ext
<<
extender
;
new_ext
<<
extender
;
return
pair
<
Node
,
Node
>
(
new_ext
,
Node
());
new_group
<<
new_ext
;
return
new_group
;
}
break
;
}
break
;
case
Node
:
:
selector
:
{
case
Node
:
:
selector
:
{
...
@@ -761,7 +784,8 @@ namespace Sass {
...
@@ -761,7 +784,8 @@ namespace Sass {
new_ext2
+=
selector_prefix
(
extender
,
new_Node
);
new_ext2
+=
selector_prefix
(
extender
,
new_Node
);
new_ext2
+=
selector_prefix
(
extendee
,
new_Node
);
new_ext2
+=
selector_prefix
(
extendee
,
new_Node
);
new_ext2
<<
extender
.
back
();
new_ext2
<<
extender
.
back
();
return
pair
<
Node
,
Node
>
(
new_ext1
,
new_ext2
);
new_group
<<
new_ext1
<<
new_ext2
;
return
new_group
;
}
break
;
}
break
;
default:
{
default:
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment